Сравнение версий
Ключ
- Эта строка добавлена.
- Эта строка удалена.
- Изменено форматирование.
Тип статьи | Инструкция | ||||||||
---|---|---|---|---|---|---|---|---|---|
Компетенции | Администратор | ||||||||
Необходимые права | root | ||||||||
Версия компонентов | python 3.8.8 | ||||||||
Статус |
| ||||||||
Сложность | легко | ||||||||
Полезные ссылки | https://github.com/jupyterhub/ldapauthenticator - плагин ldap аутентификации | ||||||||
Дополнительные сведения | Ubuntu 18.04 |
Введение
Данная инструкция поможет настроить LDAP аутентификацию в Jupiterhub через ваш LDAP сервер. Конкретно тут будет рассматриваться интеграция с Active Directory.
1. Вводные данные
Настройка происходит на виртуальной машине Ubuntu Server 18.04.5 со свеже-установленным ViXtract.
LDAP сервер находится в той же подсети, что и наш Jupiterhub. Адрес LDAP сервера - 192.168.1.66.
2. Установка плагина jupyterhub-ldapauthenticator и расширения для него
Выполняем следующие команды:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo /opt/jupyterhub/bin/pip install --target=/opt/jupyterhub/lib/python3.8/site-packages jupyterhub-ldapauthenticator sudo /opt/jupyterhub/bin/pip install --target=/opt/jupyterhub/lib/python3.8/site-packages jupyterhub-ldapcreateusers |
Расширение jupyterhub-ldapcreateusers необходимо для создания локальных пользователей в ОС. Без них войти в Jupyterhub не получится.
После установки открываем конфиг jupyterhub_config.py для редактирование:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo vim /opt/jupyterhub/etc/jupyterhub/jupyterhub_config.py |
И в конец файла добавляем следующие строки:
Блок кода | ||||
---|---|---|---|---|
| ||||
#LDAP authentication config c.JupyterHub.authenticator_class = 'ldapcreateusers.LocalLDAPCreateUsers' c.LocalLDAPCreateUsers.server_address = 'ldap://192.168.1.66' c.LocalLDAPCreateUsers.server_port = 389; c.LocalLDAPCreateUsers.use_ssl = True c.LocalLDAPCreateUsers.lookup_dn = True c.LocalLDAPCreateUsers.lookup_dn_search_filter = '({login_attr}={login})' c.LocalLDAPCreateUsers.lookup_dn_search_user = 'cn=adm,cn=Users,dc=example,dc=lan' c.LocalLDAPCreateUsers.lookup_dn_search_password = 'XXXXXX' c.LocalLDAPCreateUsers.user_search_base = 'dc=example,dc=lan' c.LocalLDAPCreateUsers.user_attribute = 'sAMAccountName' c.LocalLDAPCreateUsers.lookup_dn_user_dn_attribute = 'cn' c.LocalLDAPCreateUsers.escape_userdn = True c.LocalLDAPCreateUsers.bind_dn_template = '{username}' c.LocalLDAPCreateUsers.use_lookup_dn_username = False # create system users that don't exist yet c.LocalLDAPCreateUsers.create_system_users = True |
Описание всех опций можно посмотреть на странице пакета https://github.com/jupyterhub/ldapauthenticator. Данный конфиг работает с AD, но с другим LDAP сервер скорее всего будут проблемы. Также тут есть некоторая интересная особенность. Несмотря на то, что LDAP сервер не был настроен на использование SSL, а в конфиге прописан не SSL порт (389) и протокол указан ldap, а не ldaps, опцию .use_ssl необходимо было определить в True. Иначе аутентификация не проходила.
Перезапускаем jupiterhub:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo service jupyterhub restart |
После этого LDAP аутентификация должна заработать. Если пользователя нет в ОС, он будет создан автоматически.