Utilizzo di AD come autenticazione per Django
-
03-07-2019 - |
Domanda
Sto lavorando su un'applicazione basata su Django in un ambiente aziendale e vorrei utilizzare il sistema Active Directory esistente per l'autenticazione degli utenti (in modo che non ottengano ancora un'altra combinazione di login / password). Vorrei anche continuare a utilizzare il sistema di autorizzazione / autorizzazione dell'utente di Django per gestire le capacità dell'utente.
Qualcuno ha un buon esempio di questo?
Soluzione
Ecco un altro frammento più recente (luglio 2008, aggiornato a dicembre 2015):
Altri suggerimenti
Il collegamento fornito da Jeff funziona davvero anche se presuppone che tu abbia un gruppo predefinito in cui gli utenti vengono aggiunti. Ho semplicemente sostituito:
group=Group.objects.get(pk=1)
da
group,created=Group.objects.get_or_create(name="everyone")
Se vuoi una maggiore integrazione & amp; più funzioni c'è anche django-auth-ldap che ti dà più controllo su come Gli utenti / gruppi di lapap sono mappati su utenti / gruppi di django.
Per il debug della connessione ldap ho trovato questo blog post utile, in particolare il comando per testare la connessione 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
Se usi ssl c'è anche il problema di ottenere un certificato. O lo estrai dal server o puoi seguire queste istruzioni per generare le tue.
Che ne dici? Hai provato quello?
Ho avuto lo stesso problema e ho notato che django-auth-ldap non supporta affatto SASL - > password in chiaro sulla connessione se TSL non è disponibile.
Ecco cosa ho fatto per il problema: https://github.com/susundberg/django-auth-ldap-ad
Puoi eseguire la sottoclasse del backend django-auth-ldap
per aggiungere funzionalità AD con SASL o Kerberos o altro. Ecco un esempio del 2018 che funziona in Django 2.1: