Projet

Général

Profil

Scénario #31221

Implémenter le changement de mot de passe dans LemonLDAP::NG

Ajouté par Laurent Flori il y a plus de 3 ans. Mis à jour il y a environ 3 ans.

Statut:
Partiellement Réalisé
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
21/12/2020
Echéance:
21/12/2020
% réalisé:

100%

Points de scénarios:
2.0
Restant à faire (heures):
0.00 heure
Estimation basée sur la vélocité:
Release:
Liens avec la release:
Auto

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

Tâche #31258: Ajouter l'option de changement de mot de passe dans LemonLdapFerméPhilippe Caseiro

Tâche #31345: Utiliser l'annuaire de l'AD et pas l'OpenLDAPFerméPhilippe Caseiro

Tâche #31346: Faire fonctionner la réinitialisation du mot de passe par mailNe sera pas résoluPhilippe Caseiro

Tâche #31347: Faire fonctionner le changement de mot de passe avec l'ADFerméPhilippe Caseiro

Tâche #31349: eole-sso : remonter la raison de la non authentification de l'utilisateurNe sera pas résoluMatthieu Lamalle


Demandes liées

Lié à eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASL Terminé (Sprint) 14/04/2020 30/04/2020
Lié à Distribution EOLE - Tâche #31298: Valider le scénario Implémenter le changement de mot de passe dans LemonLDAP::NG Ne sera pas résolu 03/12/2020
Lié à Distribution EOLE - Tâche #31383: Correction SCRIBE-T03-001 - Validation de l'envoi de mail sur le domaine interne - ETB1 (2.8.0-RC1) Fermé 10/12/2020

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

#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 utilise saslauthd
  • saslauthd cherche l’utilisateur dans l’annuaire de l’active directory
  • saslauthd tente de se connecter à l’annuaire de l’active directory avec le DN et le mot 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

Formats disponibles : Atom PDF