Аутентификация воздушного потока LDAP с функциями RBA C - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь включить аутентификацию Airflow LDAP с функциями RBA C и внес следующие изменения:

  1. Удален раздел LDAP из airflow.cfg
  2. Изменен airflow.cfg: добавлен rbac = true и удален authentication = True в разделе [webserver]
  3. Создайте файл webserver_config.py в каталоге AIRFLOW_HOME

Файл webserver_config.py содержит:

import os

from airflow import configuration as conf

from flask_appbuilder.security.manager import AUTH_LDAP

basedir = os.path.abspath(os.path.dirname(__file__))

SQLALCHEMY_DATABASE_URI = conf.get(‘core’, ‘SQL_ALCHEMY_CONN’)

CSRF_ENABLED = True

AUTH_TYPE = AUTH_LDAP

AUTH_ROLE_ADMIN = ‘Admin’

AUTH_USER_REGISTRATION = True

AUTH_USER_REGISTRATION_ROLE = “Admin”

AUTH_LDAP_SERVER = ‘ldaps://ldap.xxx.yyy.net:636‘

AUTH_LDAP_SEARCH = “ou=Users,o=corp”

AUTH_LDAP_BIND_USER = ‘cn=ldap-proxy,ou=Users,o=corp’

AUTH_LDAP_BIND_PASSWORD = ‘YOUR_PASSWORD’

AUTH_LDAP_UID_FIELD = ‘uid’

AUTH_LDAP_USE_TLS = False

AUTH_LDAP_ALLOW_SELF_SIGNED = False

AUTH_LDAP_TLS_CACERTFILE = ‘/etc/ssl/certs/ldap.crt’

После вышеуказанных изменений мы можем войти в Airflow с учетными данными LDAP. Но проблема в том, что все пользователи имеют роль Admin после самостоятельной регистрации, потому что мы дали это значение в AUTH_USER_REGISTRATION_ROLE = “Admin”.

Как мы можем динамически назначить AUTH_USER_REGISTRATION_ROLE на основе роли LDAP пользователей ? У нас есть разные пользователи, такие как тестировщик, разработчик и пользователь эксплуатации, но с указанным выше конфигурационным файлом веб-сервера всем пользователям автоматически назначается роль Admin через Flask_appbuilder.security в файле manager.py.

Есть ли способ создать файл менеджера настройки и при входе в систему используйте этот файл настройки вместо файла Flask_appbuilder.security.manager.py.

...