Как настроить аутентификацию LDAP в Airflow 2.0

В настоящее время я пытаюсь настроить интеграцию LDAP с существующим сервером LDAP в Airflow. Раньше я пытался создать cacert (ldap_ca.crt) и следовал этому руководству и этому руководству .

Когда я запускаю Airflow, мне предоставляется экран входа в систему, который не принимает пользователей на сервере LDAP и просто очищает поле имени пользователя / пароля при попытке входа в систему.

Это текущий код в моем webserver_config.py (я также безуспешно пытался внести изменения в airflow.cfg):

      # The authentication type
# AUTH_OID : Is for OpenID
# AUTH_DB : Is for database
# AUTH_LDAP : Is for LDAP
# AUTH_REMOTE_USER : Is for using REMOTE_USER from web server
# AUTH_OAUTH : Is for OAuth
AUTH_TYPE = AUTH_LDAP

# Uncomment to setup Full admin role name
# AUTH_ROLE_ADMIN = 'Admin'

# Uncomment to setup Public role name, no authentication needed
# AUTH_ROLE_PUBLIC = 'Public'

# Will allow user self registration
AUTH_USER_REGISTRATION = True

# The default user self registration role
AUTH_USER_REGISTRATION_ROLE = "Viewer"

# When using LDAP Auth, setup the ldap server
# AUTH_LDAP_SERVER = "ldap://ldapserver.new"

AUTH_LDAP_SERVER = "ldap://ldap-server-name.org.com:999"
AUTH_LDAP_BIND_USER = "CN=p_biaas,OU=Unix,OU=ServiceAccounts,OU=AAA,OU=AAA,DC=ms,DC=ds,DC=aaa,DC=com"
AUTH_LDAP_BIND_PASSWORD = "password"
#AUTH_LDAP_SEARCH = "CN=Users,DC=ms,DC=ds,DC=aaa,DC=com"
#AUTH_LDAP_SEARCH= "OU=Unix,OU=ServiceAccounts,OU=AAA,OU=AAA,DC=ms,DC=ds,DC=aaa,DC=com"
AUTH_LDAP_SEARCH = "DC=ms,DC=ds,DC=aaa,DC=com"
AUTH_LDAP_UID_FIELD = "sAMAccountName"
#AUTH_LDAP_USE_TLS = False

AUTH_LDAP_FIRSTNAME_FIELD = "givenName"
AUTH_LDAP_LASTTNAME_FIELD = "sn"

4 ответа

Я только что снял видео по настройке Airflow 2.0 с LDAP. Думаю, это вам очень поможет :)

Настройте AIRFLOW 2.0 с LDAP

Два руководства, которым вы следовали, предназначены для воздушного потока v1.10.1 и v1.10.12. Airflow 2.0 вносит множество изменений в провайдеров (сродни python 2 до python 3).

Для начала обратитесь к текущей версии документации по воздушному потоку по контролю доступа.

Если у вас есть рабочая конфигурация LDAP в 1.10.12, попробуйте выполнить обновление до версии 1.10.14, а затем установить поставщиков резервного копирования, прежде чем следовать рекомендуемому пути обновления.

Airflow выпустила руководство по обновлению до Airflow 2.0.

У меня была такая же проблема ... вы используете файлы конфигурации, созданные предыдущей версией Airflow?

У меня была аналогичная конфигурация LDAP (как и у вас), но она не работала со старыми файлами конфигурации. Затем я создал новую конфигурацию Airflow 2.0.1, передал свою старую конфигурацию LDAP, и она сработала.

Может это та же проблема.

Eсть webserver_config.pyконфигурация Airflow 2.2.2 для подключения IBM Bluepages LDAP. Он основан на ответе Марка.

Единственная разница заключается в том, чтобы установить роль по умолчанию на Viewerдля новых пользователей. Пользователь с Publicроль только после входа в систему видит странную страницу, которая выглядит так, как будто что-то идет не так.

      import os
from airflow import configuration as conf
from airflow.www.fab_security.manager import AUTH_LDAP

basedir = os.path.abspath(os.path.dirname(__file__))
# The SQLAlchemy connection string.
SQLALCHEMY_DATABASE_URI = conf.get('core', 'SQL_ALCHEMY_CONN')
# Flask-WTF flag for CSRF
CSRF_ENABLED = True
# AUTH_TYPE = AUTH_OAUTH
AUTH_TYPE = AUTH_LDAP
AUTH_LDAP_SERVER = 'ldaps://bluepages.ibm.com:636'

# search configs
AUTH_LDAP_SEARCH = 'ou=bluepages,o=ibm.com'
AUTH_LDAP_UID_FIELD = 'mail'
AUTH_LDAP_ALLOW_SELF_SIGNED = True
# username and password to login IBM Bluepages 
AUTH_LDAP_BIND_USER = 'uid=<<ibm user uid>>,c=us,ou=bluepages,o=ibm.com'
AUTH_LDAP_BIND_PASSWORD = '<<ibm user password>>'

# Will allow user self registration
AUTH_USER_REGISTRATION = True
AUTH_USER_REGISTRATION_ROLE = 'Viewer'
AUTH_LDAP_FIRSTNAME_FIELD = "givenName"
AUTH_LDAP_LASTNAME_FIELD = "sn"
AUTH_LDAP_EMAIL_FIELD = "mail"


# ----------------------------------------------------
# Theme CONFIG
# ----------------------------------------------------
# Flask App Builder comes up with a number of predefined themes
# that you can use for Apache Airflow.
# http://flask-appbuilder.readthedocs.io/en/latest/customizing.html#changing-themes
# Please make sure to remove "navbar_color" configuration from airflow.cfg
# in order to fully utilize the theme. (or use that property in conjunction with theme)
# APP_THEME = "bootstrap-theme.css"  # default bootstrap
# APP_THEME = "amelia.css"
# APP_THEME = "cerulean.css"
# APP_THEME = "cosmo.css"
# APP_THEME = "cyborg.css"
# APP_THEME = "darkly.css"
# APP_THEME = "flatly.css"
# APP_THEME = "journal.css"
# APP_THEME = "lumen.css"
# APP_THEME = "paper.css"
# APP_THEME = "readable.css"
# APP_THEME = "sandstone.css"
# APP_THEME = "simplex.css"
# APP_THEME = "slate.css"
# APP_THEME = "solar.css"
# APP_THEME = "spacelab.css"
# APP_THEME = "superhero.css"
# APP_THEME = "united.css"
# APP_THEME = "yeti.css"
Другие вопросы по тегам