migration d’annuaires propriétaires vers openldap : retours d’expérience et bonnes pratiques
TRANSCRIPT
Migration d'annuaires propriétaires vers OpenLDAP
Clément OUDOTRMLL 12 juillet 2012–
2
Sommaire● SUN/Oracle DS et standard LDAP● Organiser sa migration vers OpenLDAP● Retours d'expérience● Présentation de LinID OpenLDAP Manager
3
Présentation
4
Clément OUDOT● Administrateur LDAP depuis 2003 à LINAGORA● LinID Dream Team Manager : http://linid.org ● Leader du projet LDAP Tool Box :
http://ltb-project.org ● Leader du projet LemonLDAP::NG :
http://lemonldap-ng.org
5
SUN/Oracle DS et standard LDAP
6
Libertés prises avec le schéma● Non respect de contraintes sur les classes d'objet
structurelles :● Plusieurs classes structurelles de hiérarchie différente
peuvent cohabiter● Une entrée peut n'avoir aucune classe structurelle
7
Libertés prises avec le schéma● Règles de comparaison incohérentes avec les
syntaxes (cf. par exemple l'attribut icsDomainNames)
● Divergences par rapport aux schémas standards des RFC, par exemple :● l'attribut « membre d'un groupe » est facultatif dans
SUN/Oracle DS● SUN/Oracle DS autorise la recherche partielle sur les
DN● SUN/Oracle DS autorise les recherches d'ordre sur
l'attribut « name »
8
Libertés prises avec les données● Attributs vides autorisés● Encodages différents de UTF-8 autorisés dans une
syntaxe Directory String● Chaînes de caractères diverses dans une syntaxe
Distingushed Name● Plusieurs valeurs pour les booléens (true, TRUE,
1, ...)● Aucun contrôle sur les données binaires
9
Politique des mots de passe● La politique des mots de passe n'est pas une RFC
mais un draft● SUN/Oracle DS implémente la politique avec des
attributs différents de ceux définis dans le draft● SUN/Oracle DS implémente des fonctions
supplémentaires par rapport au draft (contrôle sur les majuscules, minuscules, etc.)
10
Droits d'accès● SUN/Oracle DS utilise des ACI (droits définis
directement dans les entrées LDAP)● SUN/Oracle DS permet d'utiliser « accept » ou
« deny »● Attention également :
● Aux relations parent (gestion de la hiérarchie)● Au dé-référencement d'attribut
11
Organiser son projet de migration
12
Les grandes étapes 1/2● Analyse de l'existant :
● Logs● Schéma, données● Applications clientes (avec les extensions LDAP
utilisées)● ACI● Modules activés
● Installation d'une plate-forme cible● Conversion des données, des schémas, des ACI
en ACL
13
Les grandes étapes 2/2● Activation des overlays correspondant aux
modules activés● Conversion des données● Import des données● Bascule des applications
14
Analyse des logs● Les logs SUN/Oracle sont très proches du format
de logs OpenLDAP (même souche logicielle)● Des scripts existent (voir lien de téléchargement
sur http://linid.org) pour analyser ces logs et fournir des statistiques :● Types d'opération utilisées● Volumétrie (pics et moyennes)
● L'analyse de ces chiffres permet de dimensionner correctement l'architecture cible
15
20/08/11 21/08/11 22/08/11 23/08/11 24/08/11 25/08/11 26/08/11 27/08/11 28/08/110,0
0,5
1,0
1,5
2,0
2,5
3,0
3,5
Étendue
Déconnexion
Authentification
Renommage
Ajout
Modification
Suppression
RechercheOpé
ratio
ns
par
sec
ond
eExemple de graphique obtenu
16
Conversion des données● Les données doivent être retravaillées avant d'être
injectées dans OpenLDAP (classes d'objet, attributs, encodage des caractères, respect des syntaxes, etc.)
● Un script Perl est disponible sur LTB project (http://ltb-project.org), nommé convertldif.pl :● Exclusion de branches● Exclusion d'attributs ou de valeurs d'attributs● Mapping d'attributs
17
La théorie du big bang● Une bascule en mode big bang est très risquée et
donc fortement déconseillée● Il est possible de faire vivre les deux systèmes en
parallèle le temps de ma migration :● Première phase : plate-forme SUN/Oracle maître avec
synchronisation des données vers OpenLDAP● Deuxième phase : plate-forme OpenLDAP maître avec
synchronisation des données vers SUN/Oracle● Troisième phase : fin de la bascule de toutes les
applications, suppression de la plate-forme SUN/Oracle
18
Retours d'expérience
19
Ministère des Finances (ex-DGCP)● 150000 entrées● Migration big-bang des
applications d'écriture● Migration progressive des
applications de lecture● Développements
spécifiques dans OpenLDAP pour la gestion de la politique des mots de passe (avant l'existence de l'overlay ppolicy)
20
Ministère de l'Agriculture● Migration d'annuaire
incluse dans un projet plus vaste de refonte du système annuaire et messagerie
● Plusieurs centaines de milliers d'entrées
● Synchronisation temps réel des mots de passe d'OpenLDAP vers SUN pendant la durée de la migration (LSC project –http://lsc-project.org)
22
LinID OpenLDAP Manager
De slapd.conf à cn=config● slapd.conf :
● Depuis la création d'OpenLDAP, la configuration est faite dans slapd.conf
● Toute modification de configuration nécessite un arrêt/relance d'OpenLDAP
● cn=config :● Depuis OpenLDAP 2.4, la configuration peut être
stockée en LDAP, c'est le backend cn=config● Modifier un paramètre de configuration revient à faire
une modification LDAP● La configuration est prise en compte automatiquement
Avantages/inconvénients de cn=config● Avantages :
● Configuration prise en compte sans redémarrage● Réplication● Administration à distance
● Inconvénients :● Peu intuitif● Pas de commentaire● Pas de suppression (pour l'instant)● Sauvegarde/restauration de la configuration plus
complexe
Exemple : changer le niveau de log● Avec slapd.conf :Loglevel 256● Avec cn=config :echo "dn: cn=config changetype: modifyreplace: olcLogLevelolcLogLevel: 256" | ldapmodify -x -D cn=manager,cn=config -W
LinID OpenLDAP Manager● LinID OpenLDAP Manager (LinID OM) est basé
sur LinID Directory Manager (LinID DM)● Principales fonctionnalités :
● Gestion des backends● Gestion des overlays● Auto détection de la version d'OpenLDAP● Gestion du cn=monitor● Configuration de plusieurs instances d'OpenLDAP● Gestion du schéma
Création d'une connexion
Liste des connexions
Édition du schéma
Configuration d'un overlay
31
La fin est proche...
32
Merci● Merci :
● RMLL et les organisateurs de la session● Société LINAGORA
● Restons en contact :● Identica: @coudot● Twitter: @clementoudot @LinID_FOSS ● IRC: KPTN #LinID@freenode
33
Questions ?
Merci de votre attention
http://www.linid.org
Logiciels et services Open Source80 rue Roque de Fillol l 92800 PUTEAUXTel : 0810 251 251 l Fax : +33 1 46 96 63 64www.linagora.com