Usando AD como autenticación para Django
-
03-07-2019 - |
Pregunta
Estoy trabajando en una aplicación basada en Django en un entorno corporativo y me gustaría usar el sistema Active Directory existente para la autenticación de los usuarios (para que no obtengan otro combo de inicio de sesión / contraseña). También me gustaría seguir utilizando el sistema de autorización / permiso de usuario de Django para administrar las capacidades del usuario.
¿Alguien tiene un buen ejemplo de esto?
Solución
Aquí hay otro fragmento más reciente (julio de 2008, actualizado en diciembre de 2015):
Otros consejos
El enlace proporcionado por Jeff realmente funciona aunque asume que tienes un grupo predeterminado donde se agregan usuarios. Simplemente reemplacé:
group=Group.objects.get(pk=1)
por
group,created=Group.objects.get_or_create(name="everyone")
Si desea una integración más estrecha & amp; más características también hay django-auth-ldap que le da más control sobre cómo Los usuarios / grupos de ldap se asignan a usuarios / grupos de django.
Para depurar la conexión ldap encontré este blog post útil, en particular el comando para probar la conexión ldap con ldap-utils:
ldapsearch -H ldaps://ldap-x.companygroup.local:636 -D "CN=Something LDAP,OU=Random Group,DC=companygroup,DC=local" -w "p4ssw0rd" -v -d 1
Si está usando ssl, también existe el problema de obtener un certificado con el que jugará bien. Puede extraerlo del servidor o puede seguir estas instrucciones para generar las suyas propias.
¿Qué tal eso? ¿Intentaste eso?
Tuve el mismo problema y noté que django-auth-ldap no es compatible con SASL en absoluto - > contraseñas de texto sin formato a través de la conexión si TSL no está disponible.
Esto es lo que hice para el problema: https://github.com/susundberg/django-auth-ldap-ad
Puede crear una subclase del backend django-auth-ldap
para agregar capacidades AD a través de SASL o Kerberos o lo que sea. Aquí hay un ejemplo de 2018 trabajando en Django 2.1: