Django ldap身份验证,多值DN组存在问题

Django ldap身份验证,多值DN组存在问题,django,authentication,ldap,Django,Authentication,Ldap,因为Django LDAP身份验证,我快疯了。 我可以连接到LDAP服务器(MS Active Directory),搜索用户,但无法根据组进行验证(使用配置参数AUTH\u LDAP\u REQUIRE\u GROUP) 在询问有关广告结构的更多细节时,我发现该组使用多值DN存储用户,名为member 在研究文档时,我发现许多管理该属性的AUTH\u LDAP\u GROUP\u TYPE,如: MemberDNGroupType NestedMemberDNGroupType 和它们的子类

因为Django LDAP身份验证,我快疯了。 我可以连接到LDAP服务器(MS Active Directory),搜索用户,但无法根据组进行验证(使用配置参数
AUTH\u LDAP\u REQUIRE\u GROUP

在询问有关广告结构的更多细节时,我发现该组使用多值DN存储用户,名为
member

在研究文档时,我发现许多管理该属性的
AUTH\u LDAP\u GROUP\u TYPE
,如:

  • MemberDNGroupType
  • NestedMemberDNGroupType
    和它们的子类,但没有一个可以在两个组中找到用户
成员
属性的屏幕截图:

这是与LDAP相关的Django配置

AUTH_LDAP_CONNECTION_OPTIONS ={
    ldap.OPT_PROTOCOL_VERSION:ldap.VERSION3,
    ldap.OPT_REFERRALS:0
}
AUTH_LDAP_GROUP_TYPE = NestedActiveDirectoryGroupType()

# Baseline configuration.
AUTH_LDAP_SERVER_URI = 'ldap://ldap.xxxx.com'

AUTH_LDAP_BIND_DN = 'auth_user@xxxx.com'
AUTH_LDAP_BIND_PASSWORD = 'qwerty'

AUTH_LDAP_REQUIRE_GROUP = (
        LDAPGroupQuery('cn=group_1,ou=group_container,dc=xxxx,dc=com') |
        LDAPGroupQuery('cn=group_2,ou=group_container,dc=xxxx,dc=com'))

AUTH_LDAP_USER_SEARCH = LDAPSearch(
    'ou=user_container,dc=xxxx,dc=com',
    ldap.SCOPE_SUBTREE,
    '(UserPrincipalName=%(user)s)',
 )

AUTH_LDAP_GROUP_SEARCH = LDAPSearch(
    'ou=group_container,dc=xxxx,dc=com',
    ldap.SCOPE_SUBTREE,
    '(objectClass=nestedActiveDirectoryGroup)',
 )

AUTH_LDAP_ALWAYS_UPDATE_USER = True

AUTH_LDAP_CACHE_TIMEOUT = 3600

AUTHENTICATION_BACKENDS = (
    'django_auth_ldap.backend.LDAPBackend',
    'django.contrib.auth.backends.ModelBackend',
)
DN、OU、DC对于用户和组都是正确的

问题可能与
成员
属性类型有关吗

知道怎么解决吗?

我发现了错误。 这一切都是由于AUTH_LDAP_REQUIRE_组中的属性OU输入错误造成的。 修复了此问题,并将AUTH\u LDAP\u GROUP\u类型更改为ActiveDirectoryGroupType一切都开始工作。

我发现了错误。 这一切都是由于AUTH_LDAP_REQUIRE_组中的属性OU输入错误造成的。 修复了此问题,并将AUTH_LDAP_GROUP_类型更改为ActiveDirectoryGroupType一切开始工作