Je travaille sur un projet d'intégration de l'authentification LDAP dans une application Django existante. En utilisant ce site et d'autres, j'ai finalement réussi à tout configurer correctement en utilisant le backend django_auth_ldap. Y compris:Python, Django LDAP: détection L'échec de l'authentification a échoué
AUTH_LDAP_REQUIRE_GROUP = "CN=myGroup,CN=groups [...] "
utilisateurs Alors que dans le groupe « myGroup » peut se connecter
Tout est configuré correctement maintenant dans le settings.py et dans la vue user_login il y a juste.
...
user = authenticate(username=username, password=password)
if user:
if user.is_active:
login(request, user)
return redirect('index')
else:
message = "Your account is disabled."
else:
message = "Invalid username or password supplied."
...
Maintenant, la dernière étape doit être une notification à l'utilisateur pourquoi son login a échoué. maintenant le message d'échec sera toujours: "Nom d'utilisateur ou mot de passe invalide fourni." Cela devrait être:
- Mauvais nom d'utilisateur/mot de passe
- Pas dans le bon groupe
Quelque chose comme:
if user:
...
else:
if (LDAP auth failed reason == user does not satisfy AUTH_LDAP_REQUIRE_GROUP):
message = "You are not in the right user group."
else:
message = "Invalid username or password supplied."
...
Comment puis-je savoir, dans mon user_login voir la raison de LDAP Authentification échouée?
P.S .: dans le journal django_auth_ldap je ne vois « DEBUG Echec de l'authentification pour nom d'utilisateur: l'utilisateur ne satisfait pas AUTH_LDAP_REQUIRE_GROUP »
Mais comment savoir cela dans la vue user_login?