当所有人都是超级用户和数据探查器时,我已经成功设置了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 )吗? >
答案 0 :(得分:1)
我还努力在Airflow中设置LDAP。
第一个:配置中的group_filter = objectclass=group
是什么?我在文档或ldap_auth.py
中找不到它。
然后,您的group_member_attr
设置为member
,但是在过滤器查询中,您使用的是memberOf
,所以我想memberOf
应该是您的{{1 }}(通常是,如果您使用的是Active Directory)。
您的group_member_attr
和superuser_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)"
的问题:我想,您可以指定用户过滤器以过滤常规用户组中的人员,然后为超级用户和数据探查器指定管理组。但这仅在管理员组是常规用户组的子集的情况下有效。
希望有帮助。