我想创建一个使用自定义重定向来验证用户身份的jupyterhub安装。用户将输入我们的Jupyterhub的网址,将其重定向到单独的身份验证系统,然后绕过login.html返回到应用程序。似乎最初需要在实际的Jupyterhub源代码上进行大量修改才能使其正常工作。

根据我目前的了解,我们需要自定义jupyterhub/jupyterhub/handlers/login.py jupyterhub/auth.py。我们希望避免这种情况,并使用官方支持的机制。我以为也许我可以创建自己的身份验证器以在配置文件中使用,如下所示

c = get_config()
c.Authenticator.stuffGoesHere

并实现我自己的:
class LoginHandler(BaseHandler)  // login.py

此外
class Authenticator(LoggingConfigurable):  // auth.py

但是我什至没有清楚地知道该怎么做,因为我不知道在哪里
 get_config()

实现以及如何覆盖它。我在想这个吗?希望有一个单独的系统来处理登录名的解决方案(我们可以从此外部系统获取用户名,以进行docker Provisioning等操作,以获取dockerspawner的解决方案)。顺便说一句,get_config实际定义在哪里?

最佳答案

此处定义了get_config:https://github.com/ipython/traitlets/blob/c5c9166373041dd561d8ad86e8990ae844d26306/traitlets/config/loader.py#L483-L501

而无需先导入即可直接使用它的原因是py3compat.execfile

回到您的需求,您应该做的是创建CustomizedAuthenticator类,该类扩展了jupyterhub.auth.Authenticator。并用于:

c.JupyterHub.authenticator_class = CustomizedAuthenticator

关于python - Jupyterhub : where is get_config defined and how do I create a custom Authenticator?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32102059/

10-10 14:31