Projet

Général

Profil

Actions

Evolution #72

fermé

Regénération de l'annuaire LDAP à partir de la BdD EpnAdmin

Ajouté par Grégory MARIGOT - TEICEE il y a plus de 14 ans. Mis à jour il y a presque 14 ans.

Statut:
Fermé
Priorité:
Normal
Version cible:
Début:
15/07/2010
Echéance:
% réalisé:

100%

Temps estimé:
Version ProxyEPN:
1.0

Description

Il serait pratique de pouvoir regénérer tout le contenu de l'annuaire Ldap à partir des contacts enregistrés dans la base de données, particulièrement dans les cas suivants :
  • utilisation d'un annuaire dans un second temps, si EpnAdmin avait d'abord été déployé seul ;
  • regénération des fiches de l'annuaire pour cause de migration (ajout d'attributs, changement de formats) ;
  • recréation de l'annuaire en cas de perte des données de celui-ci ;
  • remise au propre de l'annuaire par rapport à la base de données en s'assurant de la cohérence entre les deux ;

Demandes liées 4 (0 ouverte4 fermées)

Lié à Anomalie #64: Cohérence entre base Contacts et annuaire LDAPFerméGrégory MARIGOT - TEICEE29/06/2010

Actions
Lié à Anomalie #69: Révision du support LDAP pour les fiches contactsFerméGrégory MARIGOT - TEICEE12/07/2010

Actions
Lié à Evolution #30: epnadmin -> Ldap email utilisateurFerméGrégory MARIGOT - TEICEE28/04/201031/05/2010

Actions
Lié à Evolution #93: Révision de tâches Symfony de l'applicationFerméGrégory MARIGOT - TEICEE10/03/2011

Actions

Mis à jour par Grégory MARIGOT - TEICEE il y a plus de 14 ans

  • Statut changé de Nouveau à In Progress
  • Assigné à mis à Grégory MARIGOT - TEICEE
  • % réalisé changé de 0 à 50

Modifications publiées sur le svn (r295) :

En étant connecté en admin, il est possible de lancer la regénération de l'annuaire LDAP via /user/ldapRegen
Cette action commence par traiter la liste des GEPN, puis la liste de tous les contacts (sauf les anonymisés) se trouvant dans la base de données EpnAdmin. Pour chaque objet, l'entité correspondant dans l'annuaire sera sauvegardée avec les valeurs venant de la BdD. Si l'annuaire contient toujours les fiches, alors elles seront modifiées, sinon ajoutées.

Mais...
Il n'est actuellement pas possible de regénérer entièrement l'annuaire Ldap : le mot de passe ne peut être récupéré depuis la base de données pour alimenter la fiche du Ldap (y compris en recopiant la forme cryptée).

Dans la BdD EpnAdmin, les mots de passe sont stockés en SSHA1, soit du SHA1 + grain de sel. De l'autre côté OpenLdap sait aussi stocker les mots de passe en SSHA1, mais cette méthode à le défaut de ne pas être standart... Et nous tombons dans le cas de non-interoperabilité :
  • EpnAdmin utilise le salt en préfixe avant de crypter en SHA1
  • OpenLdap utilise le salt en suffixe

Il devient donc impossible de convertir les mots de passe cryptés d'EpnAdmin vers OpenLdap, et bien entendu impossible de revenir à la forme en clair.

Conclusion : la génération totale du Ldap, mot de passe compris, ne serait possible qu'à condition d'utiliser un algo de stockage des mots de passe compatible entre les 2 applications.

Mis à jour par Grégory MARIGOT - TEICEE il y a presque 14 ans

  • Version cible mis à EpnAdmin-CTN 1.1.3

Plan de modification du stockage des mots de passe :

  • Dans un premier temps, récupérer les mots de passe depuis l'annuaire LDAP, sous leur forme cryptée par l'algorithme MD5, pour les affecter dans la BDD EpnAdmin. En renseignant l'algoryhtme et en supprimant le grain de sel, l'applicatif EpnAdmin devrait pouvoir les utiliser.
  • Une fois que la BDD et l'annuaire partagent les mots de passe dans cet algorithme commun, il devient possible de mettre en place une regénération complète de l'annuaire LDAP à partir de la BDD (pourra être tester avec la migration en version 1.1.3, celle-ci contenant de nombreuses modifications sur le contenu de l'annuaire)
  • Par la suite, si le stockage en MD5 n'est pas le choix préféré, un autre algorithme est envisageable, y compris le SSHA1 à condition de modifier la méthode dans EpnAdmin pour utiliser le grain de sel en suffixe. Dans ce cas, tout nouveau mot de passe (ou modification) utilisera ce nouvel algo. Les anciens resteront en md5 mais la cohabitation ne devrait pas gêner puisque les algo sont toujours spécifié pour chaque mot de passe stocké.

Mis à jour par Grégory MARIGOT - TEICEE il y a presque 14 ans

  • % réalisé changé de 50 à 80

Modifications publiées sur le svn (r301) :

Les méthodes setPassword() et checkPassword() de l'objet sfGuardUser ont été surchargées pour appliquer un algorithme de cryptage des mots de passe en SSHA1 qui soit compatible avec celui utilisé par OpenLdap (salt en suffixe).

Grâce à ceci, il est possible de garder l'algorithme SSHA1 tout en ayant des mots de passe stockés dans la BDD EpnAdmin directement exportables vers les fiches LDAP. Les fonctions d'export LDAP ont été adaptées en conséquence.

Par contre, tous les mots de passe déjà enregistrés dans la base ne sont plus exploitables. Ils seront écrasés par leurs versions MD5 récupérées depuis l'annuaire LDAP.

Mis à jour par Grégory MARIGOT - TEICEE il y a presque 14 ans

  • Statut changé de In Progress à Fermé
  • % réalisé changé de 80 à 100
Actions

Formats disponibles : Atom PDF