【问题标题】:Airflow Configuring AD/LDAP Admin Users And Regular Users气流配置 AD/LDAP 管理员用户和普通用户
【发布时间】:2019-02-22 15:47:10
【问题描述】:

当每个人都是超级用户和数据分析器时,我已成功设置 Airflow 以使用我的 AD/LDAP。但现在我想定义一个管理员组和一个普通用户组。我有以下设置,

每个人都是管理员的工作配置:

# set a connection without encryption: uri = ldap://<your.ldap.server>:<port>
uri = ldap://123.456.789:123
user_filter = objectClass=*
# in case of Active Directory you would use: user_name_attr = sAMAccountName
user_name_attr = sAMAccountName
# group_member_attr should be set accordingly with *_filter
# eg :
#     group_member_attr = groupMembership
#     superuser_filter = groupMembership=CN=airflow-super-users...
group_member_attr = member
group_name_attr = CN
group_filter = objectclass=group
bind_user = CN=blah,OU=foo,DC=us,DC=bar,DC=com
bind_password = yahoo
basedn = DC=us,DC=bar,DC=com
# Set search_scope to one of them:  BASE, LEVEL , SUBTREE
# Set search_scope to SUBTREE if using Active Directory, and not specifying an Organizational Unit
search_scope = SUBTREE

具有特定管理员组集的新配置:

# set a connection without encryption: uri = ldap://<your.ldap.server>:<port>
uri = ldap://123.456.789:123
user_filter = objectclass=*
# in case of Active Directory you would use: user_name_attr = sAMAccountName
user_name_attr = sAMAccountName
# group_member_attr should be set accordingly with *_filter
# eg :
#     group_member_attr = groupMembership
#     superuser_filter = groupMembership=CN=airflow-super-users...

superuser_filter = memberOf=CN=MyAdminGroupName,OU=foo,DC=us,DC=bar,DC=com
data_profiler_filter = memberOf=CN=MyAdminGroupName,OU=foo,DC=us,DC=bar,DC=com

group_member_attr = member
group_name_attr = CN
group_filter = objectclass=group
bind_user = CN=blah,OU=foo,DC=us,DC=bar,DC=com
bind_password = yahoo
basedn = DC=us,DC=bar,DC=com
# Set search_scope to one of them:  BASE, LEVEL , SUBTREE
# Set search_scope to SUBTREE if using Active Directory, and not specifying an Organizational Unit
search_scope = SUBTREE

资源:https://airflow.apache.org/security.html

使用此新配置,我可以登录 Airflow UI,但无法再查看“管理”选项卡。我 100% 确定我是管理员组 MyAdminGroupName 的一员。我也不确定在哪里放置我的常规用户组名称 MyRegularGroupName

谁能指导我如何配置我的管理员组 (MyAdminGroupName) 和我的常规用户组 (MyRegularGroupName)? p>

【问题讨论】:

  • 我认为这与您的 LDAP 结构密切相关,该结构不包含在问题中。提供尽可能多的信息可能是个好主意。
  • 你找到答案了吗?
  • 在 1.10.3 中仍然面临同样的问题,这个问题解决了吗?

标签: active-directory ldap airflow


【解决方案1】:

我还在 Airflow 中设置 LDAP 时遇到了困难。

首先:您的配置中的group_filter = objectclass=group 是什么?我在文档或ldap_auth.py 中找不到它。

然后,您的group_member_attr 设置为member,但在过滤查询中您使用的是memberOf,所以我猜memberOf 应该是您的group_member_attr(通常是,如果您使用活动目录)。

您的superuser_filterdata_profiler_filter 对我来说看起来不错。 对于阅读此内容的人:过滤器被插入到代码中这样的字符串中:(&amp;(&lt;FILTER_HERE&gt;)),因此,如果您想构建更复杂的过滤器,请考虑到这一点。 例如。我只想给三个用户超级用户权限(使用环境变量进行配置):

AIRFLOW__LDAP__SUPERUSER_FILTER: "&(objectCategory=Person)(|(sAMAccountName=user1)(sAMAccountName=user2)(sAMAccountName=user3))(memberOf=CN=MyDepartment,OU=Departments,OU=UserGroup,DC=MyCompany,DC=local)"

关于您关于MyRegularUserGroup 的问题:我想,您可以指定用户过滤器来过滤常规用户组中的人员,然后为超级用户和数据分析器指定管理员组。但这只有在管理员组是常规用户组的子集时才有效。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-14
    • 2021-05-27
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    相关资源
    最近更新 更多