Project

General

Profile

Scénario #31221

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

Added by Laurent Flori 10 months ago. Updated 8 months ago.

Status:
Partiellement Réalisé
Priority:
Normal
Assigned To:
Category:
-
Start date:
12/21/2020
Due date:
12/21/2020
% Done:

100%

Story points:
2.0
Remaining (hours):
0.00 hour
Velocity based estimate:
Release:
Release relationship:
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


Subtasks

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


Related issues

Related to eole-saslauthd - Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASL Terminé (Sprint) 04/14/2020 04/30/2020
Related to 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 12/03/2020
Related to 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é 12/10/2020

History

#1 Updated by Gilles Grandgérard 10 months ago

  • Due date set to 01/06/2021
  • Target version set to Prestation Cadoles MEN 52-01 (Noël)
  • Start date set to 12/21/2020
  • Release set to EOLE 2.8.0

#2 Updated by Joël Cuissinat 10 months ago

  • Target version changed from Prestation Cadoles MEN 52-01 (Noël) to Prestation Cadoles MEN 49-51
  • Story points set to 2.0

#3 Updated by Emmanuel GARETTE 10 months ago

  • Assigned To set to Matthieu Lamalle

#5 Updated by Joël Cuissinat 10 months ago

  • Subject changed from 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 to Implémenter le changement de mot de passe dans LemonLDAP::NG
  • Description updated (diff)

#6 Updated by Daniel Dehennin 10 months ago

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 Updated by Daniel Dehennin 10 months ago

  • Related to Scénario #29695: Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASL added

#8 Updated by Joël Cuissinat 10 months ago

  • Related to Tâche #31298: Valider le scénario Implémenter le changement de mot de passe dans LemonLDAP::NG added

#9 Updated by Daniel Dehennin 10 months ago

  • Related to Tâche #31383: Correction SCRIBE-T03-001 - Validation de l'envoi de mail sur le domaine interne - ETB1 (2.8.0-RC1) added

#10 Updated by Philippe Caseiro 10 months ago

  • Status changed from Nouveau to En cours
  • Assigned To changed from Matthieu Lamalle to 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 Updated by Daniel Dehennin 8 months ago

  • Release changed from EOLE 2.8.0 to EOLE 2.8.0.1

#12 Updated by Joël Cuissinat 8 months ago

  • Status changed from En cours to 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

Also available in: Atom PDF