/
LDAP в Jupyter

LDAP в Jupyter

Тип статьиИнструкция
КомпетенцииАдминистратор
Необходимые праваroot
Версия компонентов

python 3.8.8
jupyter core 4.6.1
pip 21.0.1

Статус
БЕТА
Сложность легко
Полезные ссылки

https://github.com/jupyterhub/ldapauthenticator - плагин ldap аутентификации
https://github.com/benhosmer/jupyterhub-ldapcreateusers - расширение для плагина, помогает в создании локальных юзеров

Дополнительные сведенияUbuntu 18.04

Введение


Данная инструкция поможет настроить LDAP аутентификацию в Jupyterhub через ваш LDAP сервер. Конкретно тут будет рассматриваться интеграция с Active Directory.

1. Вводные данные


Настройка происходит на виртуальной машине Ubuntu Server 18.04.5 со свеже-установленным ViXtract.

LDAP сервер находится в той же подсети, что и наш Jupyterhub. Адрес 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. Иначе аутентификация не проходила.

Перезапускаем Jupyterhub:

sudo service jupyterhub restart


После этого LDAP аутентификация должна заработать. Если пользователя нет в ОС, он будет создан автоматически.

Related content

Запуск Vixtract с Visiology Platform
Запуск Vixtract с Visiology Platform
Read with this
Авторизация по протоколу LDAP
Авторизация по протоколу LDAP
More like this
Авторизация по протоколу LDAP
Авторизация по протоколу LDAP
More like this
Авторизация по протоколу LDAP
Авторизация по протоколу LDAP
More like this
Авторизация по протоколу LDAP
Авторизация по протоколу LDAP
More like this
Авторизация по протоколу LDAP
Авторизация по протоколу LDAP
More like this