Django-Auth-LDAP с MemberUid - PullRequest
       35

Django-Auth-LDAP с MemberUid

0 голосов
/ 28 декабря 2018

Я пытаюсь настроить django-auth-ldap для работы с очень старой схемой LDAP, которую я унаследовал.Я сталкиваюсь с 2 проблемами с запросами для групп LDAP.Во-первых, моя схема LDAP использует атрибут memberUid вместо атрибута member.Во-вторых, моя схема LDAP имеет прописную букву OU, которая, кажется, срабатывает django-auth-ldap.

Моя django-auth-ldap установка довольно проста, в основном взяты из официальной документации.Вот несколько важных строк.Обратите внимание на заглавную букву «G» в моем OU.

    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

А вот особенно интересная строка из моего системного журнала.

    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, но моя группа не имеет такого атрибута.Вторая проблема заключается в том, что по какой-то причине буква «G» в моем OU не прописна в запросе.

Есть ли способ заставить django-auth-ldap искать memberUid вместо member, и есть ли способ заставить его следовать примеру групп, указанных в файле конфигурации?

...