我LDAP_MATCHING_RULE_IN_CHAIN在https://msdn.microsoft.com/en-us/library/aa746475(v=vs.85).aspx上读过几次,然后用谷歌搜索,但我无法理解它的作用。
这就是 MSDN 所说的,但我不明白。“走血统”是什么意思?
此规则仅限于应用于 DN 的过滤器。这是一个特殊的“扩展”匹配运算符,它沿着对象中的祖先链一直走到根,直到找到匹配项。
无论我做什么,我的所有搜索都会返回相同的数据。
<GC://DC=company,DC=com>;(&(objectClass=user)(memberof=CN=one,DC=some,DC=company,DC=com));name;subtree
Run Code Online (Sandbox Code Playgroud)
或者
<GC://DC=company,DC=com>;(&(objectClass=user)(memberof:1.2.840.113556.1.4.1941:=CN=one,DC=some,DC=company,DC=com));name;subtree
Run Code Online (Sandbox Code Playgroud)
我知道他们都会在 GC 的子树中搜索属于组成员的所有用户CN=one,DC=some,DC=company,DC=com。我无法弄清楚的是第二个有什么不同?
我已经使用 ldap 身份验证在气流中工作,但它允许我们目录中的任何用户登录。虽然它只显示气流管理员 AD 组成员的管理员权限,但我希望不是气流管理员或气流分析器组成员的用户被拒绝访问,但事实并非如此。这是我的配置:
[webserver]
authenticate = True
auth_backend = airflow.contrib.auth.backends.ldap_auth
[ldap]
uri = ldaps://ldaps.mydomain.com:636
user_filter = objectClass=person
user_name_attr = sAMAccountName
group_member_attr = memberOf
superuser_filter = memberOf=CN=airflow-admin,OU=Users,DC=mydomain,DC=com
data_profiler_filter = memberOf=CN=airflow-profiler,OU=Users,DC=mydomain,DC=com
bind_user = cn=ldapadmin,ou=Admins,dc=mydomain,dc=com
bind_password = ******
basedn = dc=mydomain,dc=com
cacert = /usr/local/share/ca-certificates/mydomain.crt
search_scope = SUBTREE
Run Code Online (Sandbox Code Playgroud)
我看到其他几个类似的帖子没有解决,我开始怀疑这是否有效。这是 ldap 上的气流文档部分的链接。 https://airflow.apache.org/security.html?#ldap