Я пытаюсь интегрировать аутентификацию Airflow Webserver с RBAC Flask-AppBuilder, доступным в Airflow 1.10.0, но независимо от настроек конфигурации, которые я пробую, я получаю AttributeError: 'AnonymousUserMixin' object has no attribute 'roles'
.
Ранее я получил серверную часть аутентификации Airflow LDAP для работы с сервером LDAP Microsoft AD моей организации, но я не могу правильно настроить параметры конфигурации, чтобы он мог работать с FAB RBAC. В документации Airflow и FAB очень мало говорится о LDAP или его устранении.
В ${AIRFLOW_HOME}/webserver_config.py
файле у меня
# The authentication type
AUTH_TYPE = AUTH_LDAP
AUTH_ROLE_PUBLIC = "Public"
AUTH_USER_REGISTRATION = True
AUTH_USER_REGISTRATION_ROLE = "Public"
AUTH_LDAP_SERVER = "ldaps://ldaps.myorg.org:636"
AUTH_LDAP_BIND_USER = "CN=myuser,OU=Service Accounts,DC=myorg,DC=org"
AUTH_LDAP_BIND_PASSWORD = "relevant_password"
AUTH_LDAP_SEARCH = "DC=myorg,DC=org"
AUTH_LDAP_UID_FIELD = "sAMAccountName"
# AUTH_LDAP_ALLOW_SELF_SIGNED = True
AUTH_LDAP_USE_TLS = False
AUTH_LDAP_APPEND_DOMAIN = "myorg.org"
AUTH_ROLE_ADMIN = "Admin"
И в {AIRFLOW_HOME}/airflow.cfg
у меня
[webserver]
authenticate = True
rbac = True
Я уже обновил серверную базу данных Postgres, чтобы в ней было ab_
таблиц.
Когда я развертываю все через Docker Swarm и перехожу на соответствующий URL-адрес веб-сервера, я просто получаю указанную выше ошибку с трассировкой стека. Он никогда не дает мне возможности войти в систему (и я попытался очистить файл cookie), поэтому я не понимаю, как заставить его позволить «анонимному» пользователю даже попытаться аутентифицироваться с помощью LDAP AD.
Проблема
webserver_config.py
настройки LDAP?- кавычки вокруг этих настроек?
airflow.cfg
настройки?- что-то о сервере LDAP моей организации?
- что-то другое?
Пожалуйста, дайте мне знать, если я упустил какую-либо информацию. Спасибо!