获取所有LDAP组成员身份的列表

时间:2017-09-12 07:45:23

标签: flask ldap openldap freeipa

我正在使用FreeIPA作为我的flask-app的LDAP后端。到目前为止,我已经使用了flask-simpleldap和OpenLDAP来获取用户的组成员资格,这可以通过以下选项正常工作:

LDAP_BASE_DN="dc=myrealm,dc=com"
LDAP_REALM_NAME="MyFunRealm"
LDAP_OBJECTS_DN="dn"
LDAP_USER_OBJECT_FILTER="(&(objectclass=inetorgperson)(uid=%s))"
LDAP_GROUP_MEMBERS_FIELD="member"
LDAP_GROUP_OBJECT_FILTER="(&(objectclass=groupofnames)(member=%s))"
LDAP_GROUP_MEMBER_FILTER="member=%s"
LDAP_GROUP_MEMBER_FILTER_FIELD="cn"

我想更改用户的LDAP结构以将组放在组中,但上述设置仅提供用户的“第一级”组。 (对不起,我不熟悉LDAP及其术语)。

如何通过群组成员身份更改查询/过滤器以获取用户所属的所有群组的列表?

1 个答案:

答案 0 :(得分:0)

我不认为可以考虑你的设置(即烧瓶+ openldap)

OpenLDAP没有(据我所知)内置机制来对嵌套组执行过滤。 而flask会为您提出请求,因此您无法轻松实现递归搜索。

在其他目录(例如AD)中,您可以指定用于过滤嵌套组的可扩展匹配规则,沿此行:

(&(objectclass=groupofnames)(member:1.2.840.113556.1.4.1941:=%s))

但OpenLDAP

中不存在这种特定的可扩展匹配规则