具有MemberUid

时间:2018-12-28 04:20:28

标签: django ldap django-auth-ldap

我正在尝试将django-auth-ldap配置为与继承的非常旧的LDAP模式一起使用。我在查询LDAP组时遇到2个问题。首先,我的LDAP模式使用memberUid属性而不是member属性。其次,我的LDAP模式有一个大写的OU,似乎在跳动django-auth-ldap

我的django-auth-ldap设置非常简单,通常直接从官方文档中获取。以下是几行重要内容。注意我的OU中的大写字母'G'。

    AUTH_LDAP_GROUP_SEARCH = LDAPSearch('ou=Group,dc=school,dc=edu',
        ldap.SCOPE_SUBTREE,'(objectClass=groupOfNames)',)
    AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr='cn')

    AUTH_LDAP_USER_FLAGS_BY_GROUP = {
        "is_staff":"cn=org-staff,ou=Group,dc=school,dc=edu"
    }

这是我的ldap转储的抢夺者。

    cn: cn=org-staff,ou=Group,dc=school,dc=edu
    objectClass: posixGroup
    objectClass: top
    cn: org-staff
    gidNumber: 999
    memberUid: someuser

这是我的syslog中的一个特别有说服力的行。

    Dec 27 22:56:47 server slapd[45950]: conn=1467 op=4 CMP dn="cn=org-staff,ou=group,dc=school,dc=edu" attr="member"
    Dec 27 22:56:47 server slapd[45950]: conn=1467 op=4 RESULT tag=111 err=16 text= 

LDAP错误16是LDAP_NO_SUCH_ATTRIBUTE,在这种情况下,假设查询正在寻找member属性,但我的组没有任何这样的属性,这是有意义的。这里的第二个问题是由于某种原因,我的OU中的'G'在查询中没有大写。

是否有任何方法可以使django-auth-ldap查找memberUid而不是member,并且有什么方法可以强制其遵循配置文件中指定的组的情况?

0 个答案:

没有答案