气流配置AD / LDAP管理员用户和普通用户

时间:2018-06-27 17:22:48

标签: active-directory ldap airflow

当所有人都是超级用户和数据探查器时,我已经成功设置了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 )吗?

1 个答案:

答案 0 :(得分:1)

我还努力在Airflow中设置LDAP。

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

然后,您的group_member_attr设置为member,但是在过滤器查询中,您使用的是memberOf,所以我想memberOf应该是您的{{1 }}(通常是,如果您使用的是Active Directory)。

您的group_member_attrsuperuser_filter对我来说很好。 对于任何阅读此书的人:过滤器都会插入代码data_profiler_filter这样的字符串中,因此,如果您要构建更复杂的过滤器,请考虑到这一点。 例如。我只想给三个用户超级用户权限(使用环境变量进行配置):

(&(<FILTER_HERE>))

关于AIRFLOW__LDAP__SUPERUSER_FILTER: "&(objectCategory=Person)(|(sAMAccountName=user1)(sAMAccountName=user2)(sAMAccountName=user3))(memberOf=CN=MyDepartment,OU=Departments,OU=UserGroup,DC=MyCompany,DC=local)" 的问题:我想,您可以指定用户过滤器以过滤常规用户组中的人员,然后为超级用户和数据探查器指定管理组。但这仅在管理员组是常规用户组的子集的情况下有效。

希望有帮助。