0

在我的 LDAP 目录中,用户被添加到组织单位而不是组。如何使用 Django LDAP 检查用户是否是组织单位的一部分?

我的 settings.py 文件:

AUTH_LDAP_SERVER_URI = 'ldap://qwery'
AUTH_LDAP_BIND_AS_AUTHENTICATING_USER = True
AUTH_LDAP_BIND_DN = 'dndndn'
AUTH_LDAP_BIND_PASSWORD = 'pwdpwd'
AUTH_LDAP_USER_SEARCH = LDAPSearchUnion(
    LDAPSearch('ou=abbb,dc=xxx,dc=net', ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)"),
    LDAPSearch('ou=ammmm,dc=xxx,dc=net', ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)"),
    LDAPSearch('ou=addddd,dc=xxx,dc=net', ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)"),
    LDAPSearch('ou=ahhhhh,dc=xxx,dc=net', ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)"),
)
AUTH_LDAP_CACHE_TIMEOUT = 0

AUTHENTICATION_BACKENDS = [
    'django_auth_ldap.backend.LDAPBackend',
    'django.contrib.auth.backends.ModelBackend',
]


# Populate the Django user from the LDAP directory.
AUTH_LDAP_USER_ATTR_MAP = {
    "name": "cn",
    "username": "sAMAccountName",
    "department":"distinguishedName"
}
AUTH_LDAP_GROUP_SEARCH = LDAPSearch(
    "OU=addddd,DC=xxx,DC=net",
    ldap.SCOPE_SUBTREE,
    "(objectClass=*)")
    
AUTH_LDAP_FIND_GROUP_PERMS = True  

AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
AUTH_LDAP_ALWAYS_UPDATE_USER = True

AUTH_USER_MODEL = 'login.Account'

AUTH_LDAP_USER_FLAGS_BY_GROUP= {
    "is_it": "OU=IT,OU=ahhhh,DC=xxx,DC=net",

 }

谢谢

4

1 回答 1

0

您需要将 FDN 确定为 RDN 部分,以确定用户在哪个 OU 中。

您可以查看以下示例:https ://www.python-ldap.org/en/python-ldap-3.3.0/reference/ldap-dn.html#examples

于 2022-01-06T12:05:23.237 回答