是否可以在Apache Airflow中将RBAC与LDAP结合使用?

时间:2019-12-01 07:00:13

标签: python ldap airflow rbac

我正在尝试对Active Directory中的用户在Airflow中强制使用精细权限。是否可以通过LDAP向Active Directory进行身份验证并通过RBAC来实现安全性/权限(通过将RBAC角色映射到AD组/用户)?我知道LDAP集成提供了通过过滤器配置(LDAP Documentation)将组映射到超级用户和数据分析器的能力。但是我对RBAC提供的更精细的控件感兴趣。

我已经可以将Active Directory连接到Airflow。但是,当我尝试添加RBAC时,我无法登录。似乎RBAC配置会覆盖LDAP配置。有人能做到吗?

1 个答案:

答案 0 :(得分:1)

您需要在气流根目录文件夹中添加webserver_config.py,在该文件夹中应进行以下设置:

# Uncomment this line
flask_appbuilder.security.manager import AUTH_LDAP
....
AUTH_TYPE = AUTH_LDAP
AUTH_LDAP_SERVER = "ldap://localhost:389"

AUTH_LDAP_SEARCH=ou=users,dc=example,dc=org
AUTH_LDAP_BIND_USER=cn=user,ou=app,dc=example,dc=org
AUTH_LDAP_BIND_PASSWORD=pwd

https://airflow.apache.org/docs/stable/_modules/airflow/configuration.html中,您可以看到启用RBAC后,网络服务器设置被覆盖

WEBSERVER_CONFIG = AIRFLOW_HOME + '/webserver_config.py'

if conf.getboolean('webserver', 'rbac'):
    if not os.path.isfile(WEBSERVER_CONFIG):
        log.info('Creating new FAB webserver config file in: %s', WEBSERVER_CONFIG)
        DEFAULT_WEBSERVER_CONFIG, _ = _read_default_config_file('default_webserver_config.py')
        with open(WEBSERVER_CONFIG, 'w') as file:
            file.write(DEFAULT_WEBSERVER_CONFIG)