auth django active-directory ldap django-auth-ldap

django auth ldap== 1.3 0



Autenticación LDAP de Django a través de Active Directory 2008 (1)

El primer error que está recibiendo es LDAP 49 con un subcódigo de 525 que significa Usuario no encontrado. Es decir, su DN de enlace no es correcto.

Su segundo intento, utilizando el formato userPrincipalName fallará, como lo indica su configuración: AUTH_LDAP_USER_SEARCH = LDAPSearch(''dc=exemple,dc=com'', ldap.SCOPE_SUBTREE, ''(SAMAccountName=%(user)s)'')

Por lo tanto, intenta utilizar el nombre de usuario pasado en el filtro de: (SAMAccountName=%(user)s)

Me pregunto si eso es un extra s en cada final? Es decir, ¿ (SAMAccountName=%(user)) sería más correcto?

Lo que está haciendo es decir, para la variable $ (usuario), encontrar el objeto en AD cuyo atributo sAMAccountName coincide con ese valor, y luego usar ese DN devuelto como el DN de enlace. Pero no obtiene un DN correcto y, por lo tanto, el error LDAP 49 - 525.

Estoy intentando autenticar a mi usuario a través del servidor corporativo de Active Directory. No puedo configurarlo correctamente, sé que LDAP funciona. Tengo un MediaWiki configurado y que funciona para autenticarse en el servidor de Active Directory.

sistema:

Active Directory 2008 Django (1, 3, 0, ''final'', 0) django-auth-ldap 1.0.9

Aquí está mi configuración en settings.py

from django_auth_ldap.config import LDAPSearch import logging # makes sure this works in Active Directory ldap.set_option(ldap.OPT_REFERRALS, 0) LDAP_SERVER_URI = ''ldap://ad.exemple.com'' AUTH_LDAP_BIND_DN = ''my_user'' AUTH_LDAP_BIND_PASSWORD = ''my_pass'' AUTH_LDAP_USER_SEARCH = LDAPSearch(''dc=exemple,dc=com'', ldap.SCOPE_SUBTREE, ''(SAMAccountName=%(user)s)'') # Populate the Django user from the LDAP directory. AUTH_LDAP_USER_ATTR_MAP = { "first_name": "givenName", "last_name": "sn", "email": "mail" } # This is the default, but I like to be explicit. AUTH_LDAP_ALWAYS_UPDATE_USER = True AUTHENTICATION_BACKENDS = ( ''django_auth_ldap.backend.LDAPBackend'', ''django.contrib.auth.backends.ModelBackend'', )

También probé la manera ssl agregando el nuevo URI

LDAP_SERVER_URI = ''ldaps://ad.exemple.com:636''

Utilicé el usuario del grupo principal para buscar No necesito ningún grupo en particular que quiera autenticar.

El mensaje de error devuelve el error:

WARNING 2011-05-31 16:50:19,429 backend 3968 140632428340992 Caught LDAPError while authenticating my_user: INVALID_CREDENTIALS({''info'': ''80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 525, v1772'', ''desc'': ''Invalid credentials''},) [31/May/2011 16:50:19] "POST /admin/ HTTP/1.1" 200 9648

Al ver este error y buscar el error LDAP DSID-0C0903AA, descubrí que debería intentar establecer el nombre de usuario así

[email protected]

No funcionó, devuelve el error:

ERROR 2011-05-31 16:55:38,947 config 6505 139868662060800 search_s(''dc=ubilium,dc=loc'', 2, ''(SAMAccountName=my_user)'') raised OPERATIONS_ERROR({''info'': ''000004DC: LdapErr: DSID-0C0906DD, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1772'', ''desc'': ''Operations error''},) DEBUG 2011-05-31 16:55:38,947 backend 6505 139868662060800 Authentication failed for my_user

¿Alguien tiene alguna pista de cómo lograr que se conecte?