Я немного застрял с написанием собственного аутентификатора для 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