THÈME TECHNIQUE - ADMINISTRATION SYSTÈME                  OpenLDAP          Astuces pour en faire      lannuaire dentrepri...
Qui suis-je ?●   Jonathan Clarke     ●   Job : Co-fondateur et directeur technique de Normation     ●   Métier :          ...
De quoi parle-t-on ?Gestion des identités électroniques en entreprise                                                    N...
De quoi parle-t-on ?Annuaire LDAP central●   LDAP = Lightweight Directory Access Protocol●   Standard pour communiquer ave...
De quoi parle-t-on ?Source : Wikipedia              Normation – CC-BY-SA                                normation.com     ...
De quoi parle-t-on ?Problématique      Authentification   Gestion des droits   Création de comptes       dapplications    ...
De quoi parle-t-on ?Objectifs ●   Montrer quelques fonctionnalités pas forcément connues ●   Donner des exemples concrets ...
Sommaire 1. De quoi parle-t-on ? 2. OpenLDAP: présentation et principes 3. Intégrité des données 4. Architecture réseau et...
OpenLDAP●   Implémentation LDAP de référence●   Open source (licence propre, de type BSD)●   Multi-plateforme●   Écrit en ...
OpenLDAP●   Un annuaire LDAP parmi dautres...                                         Normation – CC-BY-SA                ...
OpenLDAP●   Contient 3 composants :    ●   Un serveur LDAP : slapd         –   Outils dadministration côté serveur : slap*...
OpenLDAP : architecture du serveur                  Requête entrante                                     FrontendOverlay 1...
OpenLDAP : configuration●   Deux formats de configuration :    ●   slapd.conf – Fichier de configuration « traditionnel » ...
OpenLDAP : configuration●   slapd.conf – Structure et format    # comment - these options apply to every database    <glob...
OpenLDAP : configuration●   slapd.conf mappé vers cn=config                                                   cn=config# o...
Sommaire 1. De quoi parle-t-on ? 2. OpenLDAP : présentation et principes 3. Intégrité des données 4. Architecture réseau e...
Intégrité des donnéesCe quon veut éviter                             Normation – CC-BY-SA                             norm...
Intégrité des données●   LDAP impose nécessaire un contrôlé des données grace à son    schéma :    ●   ObjectClasses : déf...
Intégrité des données●   “unique” overlay    ●   Principe : interdire de créer des valeurs identiques à dautres déjà exist...
Intégrité des données●   “refint” overlay    ●   Principe : liens entre objets (attributs de type DN) mis à jour en cas de...
Intégrité des données●   “memberof” overlay    ●   Principe : lien dans les fiches personne vers les groupes dont ils sont...
Intégrité des données●   “constraint” overlay    ●   Principe :         –   Impose des règles plus strictes que le schéma ...
Intégrité des données●   “constraint” overlay    ●   Configuration :         –   Activation + définition des règles    ●  ...
Intégrité des données●   Attention !●   Limitation de cette approche :    ●   Les overlays ninterceptent que les nouvelles...
Sommaire 1. De quoi parle-t-on ? 2. OpenLDAP : présentation et principes 3. Intégrité des données 4. Architecture réseau e...
Réplication●   Cest quoi la réplication ?    ●   Reproduire à lidentique tout ou partie du contenu dun annuaire, de manièr...
Réplication●   Le mécanisme historique : slurpd    ●   Présent jusquen OpenLDAP 2.3, déprécié en 2.4    ●   Le serveur Ope...
Réplication●   Le mécanisme syncrepl    ●   Officiellement "LDAP Sync Replication"    ●   Syncrepl est normalisé par lIETF...
Réplication●   Réplication simple maître-esclave●   Réplication maître-maître    ●   Depuis OpenLDAP 2.4 avec syncrepl    ...
Réplication serveur-client                             Normation – CC-BY-SA                             normation.com     ...
Sommaire 1. De quoi parle-t-on ? 2. OpenLDAP : présentation et principes 3. Intégrité des données 4. Architecture réseau e...
Monitoring●   Supervision à plusieurs niveaux :    ●   Supervision spécifique LDAP    ●   Supervision système standard (no...
Monitoring●   Supervision spécifique LDAP    ●   Disponibilité du service LDAP par vérification LDAP         –   Recherche...
Monitoring●   Supervision spécifique LDAP    ●   Temps de réponse du service LDAP par vérification LDAP         –   Calcul...
Monitoring●   Supervision spécifique LDAP    ●   État de la réplication LDAP entre plusieurs serveurs         –   Validati...
Monitoring●   Supervision spécifique LDAP    ●   Statistiques dutilisation obtenues dans cn=monitor         –   cn=monitor...
Monitoring●   Résumé supervision :    ●   La disponibilité du service est un minimum         –   Disponibilité au sens LDA...
Récapitulons●   Nombreuses fonctionnalités via des overlays     –   Souvent simples à configurer●   Des outils hors du pro...
Questions ?              Normation – CC-BY-SA              normation.com
Prochain SlideShare
Chargement dans…5
×

OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal

4 440 vues

Publié le

OpenLDAP est un annuaire libre puissant, performant et stable qui est déjà bien connu et largement utilisé. Pourtant, il existe de nombreux modules, configurations et bonnes pratiques qui permettent d’en faire l’annuaire d’entreprise idéal qui ne sont pas toujours évidents au premier abord. Cette session présentera quelques unes de ces astuces - intégrité de données, sécurité, architectures pour disponibilité et montée en charge, monitoring - et sera illustrée de nombreux retours d’expériences des annuaires petits et grands sur lesquels l’orateur a eu l’occasion de travailler.

Publié dans : Technologie
1 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
4 440
Sur SlideShare
0
Issues des intégrations
0
Intégrations
53
Actions
Partages
0
Téléchargements
116
Commentaires
1
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal

  1. 1. THÈME TECHNIQUE - ADMINISTRATION SYSTÈME OpenLDAP Astuces pour en faire lannuaire dentreprise idéalJonathan CLARKE - jcl@normation.com Normation – CC-BY-SA normation.com
  2. 2. Qui suis-je ?● Jonathan Clarke ● Job : Co-fondateur et directeur technique de Normation ● Métier : – Dabord administration système, gestion dinfrastructures… – Projets LDAP et gestion didentités – Maintenant un peu de tout !! ● Logiciel libre : Contributeur OpenLDAP, CFEngine, LSC, LTB... Contacts Mail : jcl@normation.com Twitter : @jooooooon42 (ca fait 7 o, mais cest pas ma faute...) Normation – CC-BY-SA normation.com 2
  3. 3. De quoi parle-t-on ?Gestion des identités électroniques en entreprise Normation – CC-BY-SA normation.com 3
  4. 4. De quoi parle-t-on ?Annuaire LDAP central● LDAP = Lightweight Directory Access Protocol● Standard pour communiquer avec et stocker des données dans des annuaires● Annuaires ? Sorte de base de données objet, hierarchique...● Bref, « LDAP, cest compliqué... » Normation – CC-BY-SA normation.com 4
  5. 5. De quoi parle-t-on ?Source : Wikipedia Normation – CC-BY-SA normation.com 5
  6. 6. De quoi parle-t-on ?Problématique Authentification Gestion des droits Création de comptes dapplications (administrateurs) (RH) ● Source unique de « vérité » ● Origines des mises à jours LDAP multiples et variées ● Point central → critique Normation – CC-BY-SA normation.com 6
  7. 7. De quoi parle-t-on ?Objectifs ● Montrer quelques fonctionnalités pas forcément connues ● Donner des exemples concrets de configuration, pour slapd.conf et cn=config ● Retours dexpériences et idées sur la gestion dun service LDAP en production Normation – CC-BY-SA normation.com 7
  8. 8. Sommaire 1. De quoi parle-t-on ? 2. OpenLDAP: présentation et principes 3. Intégrité des données 4. Architecture réseau et réplication 5. MonitoringJonathan CLARKE - jcl@normation.com Normation – CC-BY-SA normation.com 8
  9. 9. OpenLDAP● Implémentation LDAP de référence● Open source (licence propre, de type BSD)● Multi-plateforme● Écrit en C● Version majeure actuelle : 2.4● Contributeurs : ● Créé en 1998 par Kurt Zeilenga ● Core team actuelle : – Howard Chu, Pierangelo Maserati et Kurt Zeilenga ● Engineering team actuelle : – 14 membres officiels ● De nombreux contributeurs occasionnels Normation – CC-BY-SA normation.com 9
  10. 10. OpenLDAP● Un annuaire LDAP parmi dautres... Normation – CC-BY-SA normation.com 10
  11. 11. OpenLDAP● Contient 3 composants : ● Un serveur LDAP : slapd – Outils dadministration côté serveur : slap* ● Des clients LDAP : ldap* – Lecture : ldapsearch, ldapcompare – Écriture : ldapadd, ldapmodify, ldapmodrdn, ldapdelete – Divers : ldappasswd, ldapwhoami, ldapexop – Utilitaire : ldapurl ● Une librairie LDAP : libldap – Librairie standard en C Normation – CC-BY-SA normation.com 11
  12. 12. OpenLDAP : architecture du serveur Requête entrante FrontendOverlay 1 Overlay 2 ... Overlay nBackend Backend Backend Backend Backend Backendbdb/hdb ldif ldap/meta shell/perl SQL monitor Normation – CC-BY-SA normation.com 12
  13. 13. OpenLDAP : configuration● Deux formats de configuration : ● slapd.conf – Fichier de configuration « traditionnel » ● cn=config – Base de configuration accessible via LDAP● Comparaison : ● Édition : – slapd.conf: éditeur texte (vim, emacs, etc) – cn=config: client LDAP (ldapsearch/ldapmodify, Apache Directory Studio...) ● Prise en compte des changements : – slapd.conf: redémarrage du serveur obligatoire – cn=config: prise en compte à chaud de tous les changements ● Replication : – slapd.conf: partage de la configuration manuelle seulement – cn=config: synchronisation possible entre serveurs via syncrepl (clusters, haute-dispo) ● Compatibilité : – slapd.conf: pourrait être déprécié à lavenir – cn=config: considéré comme standard depuis OpenLDAP 2.4 Normation – CC-BY-SA normation.com 13
  14. 14. OpenLDAP : configuration● slapd.conf – Structure et format # comment - these options apply to every database <global configuration options> # first database definition & configuration options database <database 1 backend type> <configuration options specific to database 1> # subsequent database definitions & configuration options database <database 2 backend type> # add an overlay to database 2 overlay <overlay type> <configuration options specific to overlay on database 2> Normation – CC-BY-SA normation.com 14
  15. 15. OpenLDAP : configuration● slapd.conf mappé vers cn=config cn=config# options apply to every database<global configuration options># first databasedatabase <database 1 type> olcDatabase={-1}frontend<configuration for database 1> olcDatabase={0}config# subsequent databasesdatabase <database 2 type> olcDatabase={1}bdb# add an overlay to database 2overlay <overlay type><configuration for overlay> olcDatabase={2}hdb olcOverlay={0]type Normation – CC-BY-SA normation.com 15
  16. 16. Sommaire 1. De quoi parle-t-on ? 2. OpenLDAP : présentation et principes 3. Intégrité des données 4. Architecture réseau et réplication 5. MonitoringJonathan CLARKE - jcl@normation.com Normation – CC-BY-SA normation.com 16
  17. 17. Intégrité des donnéesCe quon veut éviter Normation – CC-BY-SA normation.com 17
  18. 18. Intégrité des données● LDAP impose nécessaire un contrôlé des données grace à son schéma : ● ObjectClasses : définit les types dattributs autorisés dans chaque objet ● Attributs : définit les valeurs autorisées dans un attribut● Mais ce nest pas toujours suffisant !● Aller plus loin : ● Imposer lunicité de valeurs à travers lannuaire (UID, mail...) ● Mettre à jour les références (retirer un utilisateur supprimé de ses groupes...) ● Affiner les valeurs autorisées par attribut (liste de choix...) Normation – CC-BY-SA normation.com 18
  19. 19. Intégrité des données● “unique” overlay ● Principe : interdire de créer des valeurs identiques à dautres déjà existantes ● Rappel : LDAP URIs – ldap:///[base dn]?[attributes...]?scope[?filter] – Base DN defaults to current database baseDN ● Configuration : – Définir une recherche par URI qui renvoie les attributs censés être uniques ● Exemples : overlay unique unique_uri ldap:///?uid?sub? dn: olcOverlay={0}unique,olcDatabase={1}bdb,cn=config objectClass: olcOverlayConfig objectClass: olcUniqueConfig olcUniqueURI: ldap:///ou=people,o=training?mail?sub? Normation – CC-BY-SA normation.com 19
  20. 20. Intégrité des données● “refint” overlay ● Principe : liens entre objets (attributs de type DN) mis à jour en cas de changement de lobjet pointé ● Configuration : – Définir les attributs dans lesquels on cherche lors des renommage ou suppression ● Exemples : overlay refint refint_attribute manager refint_attribute secretary dn: olcOverlay=refint,olcDatabase={1}bdb,cn=config objectClass: olcOverlayConfig objectClass: olcRefintConfig OlcRefintAttribute: manager OlcRefintAttribute: secretary Normation – CC-BY-SA normation.com 20
  21. 21. Intégrité des données● “memberof” overlay ● Principe : lien dans les fiches personne vers les groupes dont ils sont membres ● Configuration : – Minimum : activation + inclusion schéma – Optionnel : changement des types de groupes, nom de lattribut memberOf, etc... ● Exemples : overlay memberof dn: olcOverlay=memberof,olcDatabase={1}bdb,cn=config objectClass: olcOverlayConfig objectClass: olcMemberofConfig Normation – CC-BY-SA normation.com 21
  22. 22. Intégrité des données● “constraint” overlay ● Principe : – Impose des règles plus strictes que le schéma sur les valeurs dattributs ● Possibilités : – Par expression régulière (mail ~= ^[[:alnum:]]+@mydomain.com$) – Limites de longeur (photo de 100 ko max) – Limite de nombre de valeurs (userPassword multi-valué mais limité à 1 password) – Par recherche de valeurs dans lannuaire (service = un des services définis) – Par règles de correspondance (cn = givenName + " " + sn) ● Syntaxe « set » des ACL Normation – CC-BY-SA normation.com 22
  23. 23. Intégrité des données● “constraint” overlay ● Configuration : – Activation + définition des règles ● Exemples :dn: olcOverlay=constraint,olcDatabase={1}bdb,cn=configobjectClass: olcOverlayConfigobjectClass: olcConstraintConfigOolcConstraintAttribute: jpegPhoto size 131072olcConstraintAttribute: userPassword count 1overlay constraintconstraint_attribute mail regex ^[[:alnum:]]+@mydomain.com$constraint_attribute service uri ldap:///ou=services,dc=example,dc=com?cn?sub?(objectClass=service) restrict="ldap:///ou=People,dc=example,dc=com??sub?(objectClass=person)" Normation – CC-BY-SA normation.com 23
  24. 24. Intégrité des données● Attention !● Limitation de cette approche : ● Les overlays ninterceptent que les nouvelles opérations... ● Ils ne corrigeront pas les donneés déjà présentes dans lannuaire ! Normation – CC-BY-SA normation.com 24
  25. 25. Sommaire 1. De quoi parle-t-on ? 2. OpenLDAP : présentation et principes 3. Intégrité des données 4. Architecture réseau et réplication 5. MonitoringJonathan CLARKE - jcl@normation.com Normation – CC-BY-SA normation.com 25
  26. 26. Réplication● Cest quoi la réplication ? ● Reproduire à lidentique tout ou partie du contenu dun annuaire, de manière périodique ou en continu ● Aucune modification ni transformation des données ne peut être apportée lors dune réplication – Il sagit là de synchronisation – Pour les annuaires LDAP, voir le projet Ldap Synchronization Connector (LSC) Normation – CC-BY-SA normation.com 26
  27. 27. Réplication● Le mécanisme historique : slurpd ● Présent jusquen OpenLDAP 2.3, déprécié en 2.4 ● Le serveur OpenLDAP était configuré pour écrire toutes les modifications dans un journal ● Le démon slurpd tournait en parallèle et prenait chaque modification et lappliquait à chaque esclave, grace à un compte administrateur ● Plusieurs inconvénients : – Mécanisme fragile : désynchronisations régulières et difficiles à détecter – Fort couplage de configuration maîtres-esclaves Normation – CC-BY-SA normation.com 27
  28. 28. Réplication● Le mécanisme syncrepl ● Officiellement "LDAP Sync Replication" ● Syncrepl est normalisé par lIETF : RFC 4533 ● Plusieurs implémentations : – Serveurs LDAP : OpenLDAP et ApacheDS – Clients : outils de synchronisation, API Java UnboundID ● Fonctionnement nominal par entrée complète : – Si un attribut a changé, lentrée complète est répliquée ● delta-syncrepl : réplication par attribut – Nécessite une base externe pour stocker les modifications – Spécifique OpenLDAP – Non-compatible avec les modes multi-maître Normation – CC-BY-SA normation.com 28
  29. 29. Réplication● Réplication simple maître-esclave● Réplication maître-maître ● Depuis OpenLDAP 2.4 avec syncrepl ● Aucun avantage de répartition de charge ! ● Utile pour la haute disponibilité ● Aucune garantie de réplication !● Synchronicité des changements – Avec syncrepl, les entrées sont répliquées entièrement – Avec syncrepl, lentrée la plus récemment modifiée "gagne" – Si deux changements sur une même entrée sont réalisées en "peu de temps" (avant que la réplication ait pu se faire), un changement sera perdu ! ● Acceptable ou non selon le fonctionnement de votre application... Normation – CC-BY-SA normation.com 29
  30. 30. Réplication serveur-client Normation – CC-BY-SA normation.com 30
  31. 31. Sommaire 1. De quoi parle-t-on ? 2. OpenLDAP : présentation et principes 3. Intégrité des données 4. Architecture réseau et réplication 5. MonitoringJonathan CLARKE - jcl@normation.com Normation – CC-BY-SA normation.com 31
  32. 32. Monitoring● Supervision à plusieurs niveaux : ● Supervision spécifique LDAP ● Supervision système standard (non spécifique LDAP) – Indicateurs classiques du serveur : ● ping ● espace disque ● charge ● mémoire disponible ● etc... – Indicateurs système pertinents pour OpenLDAP : ● Disponiblité du service LDAP (vérification simple sur port TCP 389) ● Tracer lévolution de la taille sur disque du répertoire de données ● Tracer lévolution du nombre de connexions TCP ouvertes Normation – CC-BY-SA normation.com 32
  33. 33. Monitoring● Supervision spécifique LDAP ● Disponibilité du service LDAP par vérification LDAP – Recherche simple pour valider que le serveur répond – Recherche avec authentification pour valider le service dauthentification – Modification dun attribut de test sur une entrée de test pour valider le service décriture – Compte du nombre dentrées modifiées dans la dernière heure/journée pour valider les services très sollicités – Plugins Nagios disponibles sur LTB Project : ● http://ltb-project.org/wiki/documentation/nagios-plugins/check_ldap_dn ● http://ltb-project.org/wiki/documentation/nagios-plugins/check_ldap_query http://ltb-project.org Normation – CC-BY-SA normation.com 33
  34. 34. Monitoring● Supervision spécifique LDAP ● Temps de réponse du service LDAP par vérification LDAP – Calcul du temps de réponse moyen dune recherche simple – Plugin Nagios disponible sur LTB Project : ● http://ltb-project.org/wiki/documentation/nagios-plugins/check_ldap_time – Plugin Cacti disponible sur LTB Project : ● http://ltb-project.org/wiki/documentation/cacti-plugins/ldap_response_time Normation – CC-BY-SA normation.com 34
  35. 35. Monitoring● Supervision spécifique LDAP ● État de la réplication LDAP entre plusieurs serveurs – Validation que les serveurs esclaves ont le même niveau de synchronisation que le maître ● Adaptable au multi-maître avec des vérifications croisées – Plugin Nagios disponible sur LTB Project : – http://ltb-project.org/wiki/documentation/nagios-plugins/check_ldap_syncrepl_status Normation – CC-BY-SA normation.com 35
  36. 36. Monitoring● Supervision spécifique LDAP ● Statistiques dutilisation obtenues dans cn=monitor – cn=monitor est un backend spécial qui rend accessible des statistiques sur lutilisation et la configuration dOpenLDAP par une interface LDAP ● Opérations effectuées (tracer dans le temps) – Recherches, Ajouts, Modifications, Suppressions... – Plugin Cacti disponible sur LTB Project : ● http://ltb-project.org/wiki/documentation/cacti-plugins/openldap_operations ● Taille des caches BerkeleyDB (backend bdb, hdb) Normation – CC-BY-SA normation.com 36
  37. 37. Monitoring● Résumé supervision : ● La disponibilité du service est un minimum – Disponibilité au sens LDAP (pas que TCP) car OpenLDAP a souvent souffert de bugs où le port TCP est ouvert mais non fonctionnel... ● Les statistiques dutilisations (graphiques dévolution au cours du temps) sont très utiles pour analyser et prévoir les problèmes – Lorsquun incident survient, pouvoir voir lévolution récente de lusage – Prévoir les dépassements de capacité Normation – CC-BY-SA normation.com 37
  38. 38. Récapitulons● Nombreuses fonctionnalités via des overlays – Souvent simples à configurer● Des outils hors du projet OpenLDAP http://ltb-project.org● Architecture réseau et supervision à adapter... comme pour tout service critique Normation – CC-BY-SA normation.com 38
  39. 39. Questions ? Normation – CC-BY-SA normation.com

×