python - 有没有办法在 Apache Airflow 中将 RBAC 与 LDAP 结合起来?

标签 python ldap airflow rbac

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

我已经能够将我的 Active Directory 连接到 Airflow。但是,当我尝试添加 RBAC 时,我无法登录。似乎 RBAC 配置覆盖了 LDAP 配置。有没有人能够做到这一点?

最佳答案

您需要在 Airflow 根文件夹中添加 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 设置被覆盖
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)

关于python - 有没有办法在 Apache Airflow 中将 RBAC 与 LDAP 结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59123277/

相关文章:

python - Pandas - 为分组数据中的每个组分配唯一 ID

python - 艰难地学习 Python,练习 20,对函数感到困惑

apache-spark - Airflow SparkKubernetes运算符(operator)日志记录

mysql - 如何在本地将 Airflow 连接到 SQLite?

kubernetes - Cloud Composer 实例节点和自动缩放

python - 为什么 "B"不等于 "B"?

python - 在 Python 中对由一个列表索引的列表列表进行排序的更简单方法

java - 获取 LDAP 对象的内部属性

gradle - 在 Gradle 中扩展属性会破坏 LDAP 配置

powershell - PowerShell 中 Active-Directory Get-ADComputer 的 LDAP 查询