Scénario #31221
Implémenter le changement de mot de passe dans LemonLDAP::NG
100%
Description
N'ayant a priori pas de solution pour contourner la demande de changement de mot de passe obligatoire via EoleSSO, nous souhaitons, comme proposé l'intégration du changement de mot de passe via LemonLDAP::NG sur EOLE >= 2.8.0.
Solutions à mettre en œuvre¶
- pour EOLE >= 2.8.0
- tester et valider le plugin de changement de mot de passe, en particulier dans le cas où le changement est obligatoire
- intégrer les modifications au paquet eole-lemonldap-ng (ajouter une variable ?)
Critères d'acceptation¶
- le plugin est activé et fonctionnel
Point d'attention¶
- vérifier la cohérence des politiques de mots de passe entre LemonLDAP::NG et AD
Demande originale :¶
Les utilisateurs doivent changer leur mot de passe à la première connexion.
Cela pose un problème dans le cas d'un utilisateur qui n'a jamais ouvert de session sur une station intégrée au domaine tente de s'authentifier sur le SSO ou sur le serveur imap (cas d'une connexion depuis un poste non intégré avec thunderbird).
L'authentification échoue sur les deux services.Logs de eole-sso pour l'utilisateur prenom.eleve112:
> 2020-11-25T10:07:43.951358+01:00 scribe.dompedago.etb1.lan eole-sso[1424]: 2020-11-25T10:07:43+0100 [LDAPClient,client] 'invalidCredentials' > 2020-11-25T10:07:43.951514+01:00 scribe.dompedago.etb1.lan eole-sso[1424]: 2020-11-25T10:07:43+0100 [LDAPClient,client] ! Echec de l'authentification : prenom.eleve112 ! > 2020-11-25T10:07:44.001433+01:00 scribe.dompedago.etb1.lan eole-sso[1424]: 2020-11-25T10:07:44+0100 [HTTPChannel (TLSProtocolWrapper),10,127.0.0.1] ! Session utilisateur non reconnue : TGC-etb1ac-testfr-5013690db9ac2112a0455f2ee821f14acec90b4b742d3fb4e5bcc71d ! >et ceux de courier-imap:
> nov. 25 10:16:55 scribe imapd[755]: Connection, ip=[::ffff:10.1.2.51] > nov. 25 10:16:57 scribe imapd[755]: LOGIN FAILED, method=PLAIN, ip=[::ffff:10.1.2.51] > nov. 25 10:16:57 scribe imapd[755]: authentication error: Input/output error >Dès que l'utlisateur prenom.eleve112 a ouvert une session sur une machine intégrée au domaine et changé son mot de passe. Toutes les applications acceptent les connexions
logs de courier-imap:
> nov. 25 10:26:09 scribe imapd[755]: Connection, ip=[::ffff:10.1.2.51] > nov. 25 10:26:09 scribe imapd[755]: LOGIN, user=prenom.eleve112@i-etb1.ac-test.fr, ip=[::ffff:10.1.2.51], port=[43874], protocol=IMAP >log de eole-sso:
> 2020-11-25T10:28:37.746059+01:00 scribe.dompedago.etb1.lan eole-sso[1424]: 2020-11-25T10:28:37+0100 [HTTPPageGetter (TLSMemoryBIOProtocol),client] ** Réponse du proxy valide : 200 > 2020-11-25T10:28:37.748814+01:00 scribe.dompedago.etb1.lan eole-sso[1424]: 2020-11-25T10:28:37+0100 [twisted.web.client.HTTPClientFactory#info] Stopping factory <HTTPClientFactory: https://etb1.ac-test.fr/sso/login?service=https%3A%2F%2Fetb1.ac-test.fr%2Froundcube%2F%3F_task%3Dmail%26_action%3Dlogin> > 2020-11-25T10:28:37.810709+01:00 scribe.dompedago.etb1.lan eole-sso[1424]: 2020-11-25T10:28:37+0100 [HTTPChannel (TLSProtocolWrapper),15,127.0.0.1] TGC-etb1ac-testfr-edae1fd1925232fbb051560d65d0a7eda62d05b6a967feed7f7b7e78 -- ticket proxy délivré pour imap://10.1.3.5 > 2020-11-25T10:28:37.879613+01:00 scribe.dompedago.etb1.lan eole-sso[1424]: 2020-11-25T10:28:37+0100 [HTTPChannel (TLSProtocolWrapper),18,127.0.0.1] TGC-etb1ac-testfr-edae1fd1925232fbb051560d65d0a7eda62d05b6a967feed7f7b7e78 -- Demande d'un ticket PGT pour devenir proxy CAS auprès du service imap://10.1.3.5 > 2020-11-25T10:28:37.879728+01:00 scribe.dompedago.etb1.lan eole-sso[1424]: 2020-11-25T10:28:37+0100 [HTTPChannel (TLSProtocolWrapper),18,127.0.0.1] !! Url de proxy non valide (https obligatoire) !! > 2020-11-25T10:28:38.152866+01:00 scribe.dompedago.etb1.lan eole-sso[1424]: 2020-11-25T10:28:38+0100 [HTTPChannel (TLSProtocolWrapper),14,127.0.0.1] TGC-etb1ac-testfr-edae1fd1925232fbb051560d65d0a7eda62d05b6a967feed7f7b7e78 -- ticket proxy délivré pour imap://10.1.3.5 > 2020-11-25T10:28:39.303394+01:00 scribe.dompedago.etb1.lan eole-sso[1424]: 2020-11-25T10:28:39+0100 [HTTPChannel (TLSProtocolWrapper),17,127.0.0.1] TGC-etb1ac-testfr-edae1fd1925232fbb051560d65d0a7eda62d05b6a967feed7f7b7e78 -- ticket proxy délivré pour imap://10.1.3.5 2020-11-25T10:28:39.304026+01:00 scribe.dompedago.etb1.lan eole-sso[1424]: 2020-11-25T10:28:39+0100 [HTTPChannel (TLSProtocolWrapper),16,127.0.0.1] TGC-etb1ac-testfr-edae1fd1925232fbb051560d65d0a7eda62d05b6a967feed7f7b7e78 -- ticket proxy délivré pour imap://10.1.3.5 2020-11-25T10:29:39.324035+01:00 scribe.dompedago.etb1.lan eole-sso[1424]: 2020-11-25T10:29:39+0100 [HTTPChannel (TLSProtocolWrapper),20,127.0.0.1] TGC-etb1ac-testfr-edae1fd1925232fbb051560d65d0a7eda62d05b6a967feed7f7b7e78 -- ticket proxy délivré pour imap://10.1.3.5
Sous-tâches
Demandes liées
Historique
#1 Mis à jour par Gilles Grandgérard il y a plus de 3 ans
- Echéance mis à 06/01/2021
- Version cible mis à Prestation Cadoles MEN 52-01 (Noël)
- Début mis à 21/12/2020
- Release mis à EOLE 2.8.0
#2 Mis à jour par Joël Cuissinat il y a plus de 3 ans
- Version cible changé de Prestation Cadoles MEN 52-01 (Noël) à Prestation Cadoles MEN 49-51
- Points de scénarios mis à 2.0
#3 Mis à jour par Emmanuel GARETTE il y a plus de 3 ans
- Assigné à mis à Matthieu Lamalle
#4 Mis à jour par Emmanuel GARETTE il y a plus de 3 ans
#5 Mis à jour par Joël Cuissinat il y a plus de 3 ans
- Sujet changé de Impossible d'authentifier un utilisateur sur les services web,imap ... s'il n'a pas changé son mot de passe lors d'une première connexion à une session à Implémenter le changement de mot de passe dans LemonLDAP::NG
- Description mis à jour (diff)
#6 Mis à jour par Daniel Dehennin il y a plus de 3 ans
Le changement de comportement vient du passage à la délégation d'authentification OpenLDAP avec SASL (#29695).
OpenLDAP
utilisesaslauthd
saslauthd
cherche l’utilisateur dans l’annuaire de l’active directorysaslauthd
tente de se connecter à l’annuaire de l’active directory avec leDN
et lemot de passe
de l’utilisateur
J’ai donc commencé par tenter une connexion sasl
avec testsaslauthd
:
- avec un utilisateur qui a changé son mot de passe
root@scribe:~# testsaslauthd -u prenom.eleve112@dompedago.etb1.lan -p 'EoleMachin1!' 0: OK "Success."
- avec un utilisateur qui n’a pas changé son mot de passe
root@scribe:~# testsaslauthd -u prof.5a@dompedago.etb1.lan -p 'Eole12345!' 0: NO "authentication failed"
Ensuite, j’ai tenté une connection à l’annuaire de l’active directory directement:
- avec un utilisateur qui a changé son mot de passe
root@scribe:~# ldapsearch -LLL -x -H ldaps://addc.domscribe.ac-test.fr -b DC=domscribe,DC=ac-test,DC=fr -DCN=prenom.eleve112,CN=Users,DC=domscribe,DC=ac-test,DC=fr -w 'EoleMachin1!' cn=professeurs dn dn: CN=professeurs,CN=Users,DC=domscribe,DC=ac-test,DC=fr
- avec un utilisateur qui n’a pas changé son mot de passe
root@scribe:~# ldapsearch -LLL -x -H ldaps://addc.domscribe.ac-test.fr -b DC=domscribe,DC=ac-test,DC=fr -DCN=prof.5a,CN=Users,DC=domscribe,DC=ac-test,DC=fr -w 'Eole12345!' cn=professeurs dn ldap_bind: Invalid credentials (49) additional info: 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 773, v1db1
#7 Mis à jour par Daniel Dehennin il y a plus de 3 ans
- Lié à Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASL ajouté
#8 Mis à jour par Joël Cuissinat il y a plus de 3 ans
- Lié à Tâche #31298: Valider le scénario Implémenter le changement de mot de passe dans LemonLDAP::NG ajouté
#9 Mis à jour par Daniel Dehennin il y a plus de 3 ans
- Lié à Tâche #31383: Correction SCRIBE-T03-001 - Validation de l'envoi de mail sur le domaine interne - ETB1 (2.8.0-RC1) ajouté
#10 Mis à jour par Philippe Caseiro il y a plus de 3 ans
- Statut changé de Nouveau à En cours
- Assigné à changé de Matthieu Lamalle à Philippe Caseiro
Voici un petit état de la situation :
- Actuellement sur un scribe LemonLDAP utilise l'annuaire AD (celui de conteneur) car il est détenteur du mot de passe et si on souhaite pouvoir changer le mot de passe des utilisateurs depuis LemonLDAP, il faut en passer par là.
- Les utilisateurs peuvent changer leurs mots de passe depuis LemonLDAP.
- Lorsque le flag "changer au premier login" est activé, LemonLDAP redirige automatiquement les utilisateurs vers la page de modification du mot de passe et change le mot de passe dans l'annuaire.
Pour les comptes avec un mot de passe expiré, Il n'est pas possible pour l'utilisateur de changer son mot de passe si il est expiré, ni sur LemonLDAP ni avec un client Windows :
By default, the Windows domain user account is configured to expire passwords after a specific amount of time-based on the group policy and every user will be notified 2 to 3 weeks prior to the password expiring. If you miss this notification and don’t change your password, your account will be Locked Out.
Donc en mode "AD" LemonLDAP peut être configuré pour afficher des messages d'alertes, c'est le cas actuellement, mais uniquement en mode AD.
Pour le mode LDAP, pour pouvoir avoir une gestion identique au mode AD en mode LDAP il faut que l'annuaire implémente les LDAP PPolicy (ex:http://tutos.tangui.eu.org/2017/04/27/mise-en-place-politique-mot-de-passe-openldap/). L'annuaire OpenLDAP n'étant pas "maître" du mot de passe sur un scribe, nous ne pouvons rien faire de ce côté la.
Aujourd'hui le fonctionnement d'un Scribe 2.8 est incompatible avec la volonté de vouloir avoir une gestion des mots de passe dans LemonLDAP, en effet les deux annuaires sont utiles au serveur SSO, l'un offre le mot de passe et l'autre les attributs or LemonLDAP n'est en mesure d'utiliser qu'un seul et unique Annuaire.
Pour répondre à la demande nous avons donc fait le choix d'utiliser l'annuaire AD du scribe, un retour arrière est possible et simple a mettre en oeuvre.
Le mode AD fait également sens pour l'utilisation de lemonLDAP avec un contrôleur Seth.
#11 Mis à jour par Daniel Dehennin il y a environ 3 ans
- Release changé de EOLE 2.8.0 à EOLE 2.8.0.1
#12 Mis à jour par Joël Cuissinat il y a environ 3 ans
- Statut changé de En cours à Partiellement Réalisé
Daniel a écrit :
Ça fonctionne sur Seth, donc je pense qu'on peut fermer
En revanche, il faudra trier https://dev-eole.ac-dijon.fr/issues/31635