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
4
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
6
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 »
7
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
8
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.)
9
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
10
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
12
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
13
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
14
15. Exemple de graphique obtenu
3,5
3,0
2,5
Étendue
Opérations par seconde
Déconnexion
2,0 Authentification
Renommage
Ajout
1,5 Modification
Suppression
Recherche
1,0
0,5
0,0
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/11
15
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
16
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
17
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)
19
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)
20
22. 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
23. 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
24. Exemple : changer le niveau de log
● Avec slapd.conf :
Loglevel 256
● Avec cn=config :
echo "dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: 256" | ldapmodify -x -D
cn=manager,cn=config -W
25. 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
33. Merci de votre attention
http://www.linid.org
Logiciels et services Open Source
80 rue Roque de Fillol l 92800 PUTEAUX
Tel : 0810 251 251 l Fax : +33 1 46 96 63 64
www.linagora.com