我有点坚持为 jupyterhub 编写自定义身份验证器。很可能是因为我不了解可用REMOTE_USER 身份验证器的内部工作原理。我不确定它是否适用于我的情况......无论如何......这就是我想做的:
我的总体想法:我有一个服务器,可以通过用户的机构登录来验证用户。登录机构服务器/网站后,用户的数据被编码——只有一些细节来识别用户。然后通过以下方式将它们重定向到 jupyterhub 域
https://<mydomain>/hub/login?data=<here go the encrypted data>
现在,如果像这样向我的 jupyterhub 域发送请求,我想解密提交的数据,并对用户进行身份验证。
我的试验: 我用下面的代码试了一下。但似乎我太笨了......:D所以请,欢迎迂腐评论:D
from tornado import gen
from jupyterhub.auth import Authenticator
class MyAuthenticator(Authenticator):
login_service = "my service"
authenticator_login_url="authentication url"
@gen.coroutine
def authenticate(self,handler,data=None):
# some verifications go here
# if data is verified the username is returned
我的第一个问题...单击登录页面上的按钮,不会将我重定向到我的身份验证 URL...似乎authenticator_login_url
登录模板中的变量设置在其他地方...
第二个问题...向 .../hub/login?data=... 发出的请求未由身份验证器评估(似乎...)
所以:有人对我有什么建议吗?
如您所见,我在这里遵循了教程: https ://universe-docs.readthedocs.io/en/latest/authenticators.html