OpenLDAP. Astuces pour en faire l'annuaire d'entreprise idéal THÈME TECHNIQUE - ADMINISTRATION SYSTÈME. Jonathan CLARKE - jcl@normation.



Documents pareils
INSTALLATION ET CONFIGURATION DE OPENLDAP

OpenLDAP, un outil d administration Réseau. Une implémentation d OpenLDAP

LINUX Préparation à la certification LPIC-3 (examen LPI 300) - 2ième édition

Configuration d'un annuaire LDAP

LDAP : pour quels besoins?

Utiliser Améliorer Prêcher. Introduction à LDAP

Description de la maquette fonctionnelle. Nombre de pages :

Service d'authentification LDAP et SSO avec CAS

WebSSO, synchronisation et contrôle des accès via LDAP

A. À propos des annuaires

L'automatisation open source pour SI complexes

Le logiciel. OpenLDAP. Formation. Administration et sécurité. Auteurs : Clément OUDOT, Raphaël OUAZANA et Sébastien BAHLOUL

Gestion des utilisateurs dans un environnement hétérogène

Groupe Eyrolles, 2004 ISBN :

Annuaires LDAP et méta-annuaires

LDAP et carnet d'adresses mail

RTN / EC2LT Réseaux et Techniques Numériques. Ecole Centrale des Logiciels Libres et de Télécommunications

Exposé Nouvelles Technologies et Réseaux LDAP 22/01/ Exposé Nouvelle Technologies Réseaux - LDAP. Lightweight Directory Access Protocol

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Déploiement d'un serveur ENT

Introduction aux services de domaine Active Directory

Couplage openldap-samba

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

Outils Logiciels Libres

DUT. Vacataire : Alain Vidal - avidal_vac@outlook.fr

Windows Server Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

OpenLDAP au quotidien: trucs et astuces

Table des matières 1. Avant-propos. Chapitre 1 Virtualisation du poste de travail

Les infrastructures de clés publiques (PKI, IGC, ICP)

Gestion des utilisateurs et Entreprise Etendue

Sécurité en MAC OS X [Nom du professeur]

Introduction à la gestion d identité. Bruno Bonfils <asyd@asyd.net> RMLL, 10 Juillet 2009

Haute disponibilité avec PostgreSQL

Annuaire LDAP, SSO-CAS, ESUP Portail...

OpenLDAP, un outil d administration réseau. (Implémentation d openldap à l INRA de Rennes)


Introduction aux services Active Directory

Journée Josy/PLUME. Outils logiciels libres utiles à tout ASR SAMBA. Maurice Libes. Centre d'océanologie de Marseille UMS 2196 CNRS

Une unité organisationnelle (Staff) comporte une centaine d'utilisateur dans Active Directory.

La haute disponibilité de la CHAINE DE

Utilisation des services de noms et d'annuaire Oracle Solaris 11.2 : LDAP

LemonLDAP::NG / SAML2. Xavier GUIMARD (Gendarmerie Nationale) Clément OUDOT (Groupe LINAGORA)

Installation et configuration de Vulture Lundi 2 février 2009

Configuration Et Résolution Des Problèmes Des Services De Domaine Active Directory Windows Server Référence Cours : 6238B

Annuaire LDAP + Samba

M2-ESECURE Rezo TP3: LDAP - Mail

Déploiement de (Open)LDAP

LIVRE BLANC PRODUIT. Evidian SafeKit. Logiciel de haute disponibilité pour le clustering d application

Kerberos/AD/LDAP/Synchro

L'AAA, késako? Bruno Bonfils, fr.org>, Novembre Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

Architecture PKI en Java

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

L annuaire et le Service DNS

FORMATION WS0801. Centre de formation agréé

Retour d'expérience avec : OCS Inventory & GLP

Restriction sur matériels d impression

Windows serveur 2012 : Active Directory

Master d'informatique. Réseaux. Supervision réseaux

Open Source et gestion des identités (Annuaire Ldap, SSO et Provisionning) 11 Octobre 2011 TopTIC Pascal Flamand

SAML et services hors web

Phase 1 : Introduction 1 jour : 31/10/13

Authentification des utilisateurs avec OpenLDAP

StreamServe Persuasion SP3 StreamStudio

NFS Maestro 8.0. Nouvelles fonctionnalités

NIS / LDAP Virtualisation Apache serveurs virtuels

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Simplifier l authentification avec Kerberos

Environnements de Développement

Samson BISARO Christian MAILLARD

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Evidian IAM Suite 8.0 Identity Management

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Chap.9: SNMP: Simple Network Management Protocol

MEGA Advisor Front-End Architecture Overview HOPEX V1R1 FR. Révisé le : 5 novembre 2013 Créé le : 16 octobre Auteur : Jérôme Horber

Présentation de la solution Open Source «Vulture» Version 2.0

Préparer la synchronisation d'annuaires

Qu'est ce qu'une Fédération d'identités? Définitions Fonctionnement de base Fonctionnement détaillé Les principaux composants

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

Active Directory. Qu'est-ce qu'un service d'annuaire?

ORACLE TUNING PACK 11G

Exercices Active Directory (Correction)

Joomla! Création et administration d'un site web - Version numérique

Cours 420-KEG-LG, Gestion de réseaux et support technique. Laboratoire 06

Retour d expérience sur Prelude

Smart Notification Management

La fédération d identités, pourquoi et comment? Olivier Salaün, RENATER ANF Mathrice 2014

Service d'annuaire Active Directory

Intégration de Cisco CallManager IVR et Active Directory

Le Network File System de Sun (NFS)

InstallatIon et configuration d une Infrastructure réseau sans-fil. Avec. Interface de gestion utilisateurs

Module 9 : Installation d'active Directory

Windows Server 2012 R2 Administration

La replication dans PostgreSQL

Transcription:

THÈME TECHNIQUE - ADMINISTRATION SYSTÈME OpenLDAP Astuces pour en faire l'annuaire d'entreprise idéal Jonathan CLARKE - jcl@ Normation CC-BY-SA

Qui suis-je? Jonathan Clarke Job : Co-fondateur et directeur technique de Normation Métier : D'abord administration système, gestion d'infrastructures Projets LDAP et gestion d'identités Maintenant un peu de tout!! Logiciel libre : Contributeur OpenLDAP, CFEngine, LSC, LTB... Contacts Mail : jcl@ Twitter : @jooooooon42 (ca fait 7 'o', mais c'est pas ma faute...) Normation CC-BY-SA 2

De quoi parle-t-on? Gestion des identités électroniques en entreprise Normation CC-BY-SA 3

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, c'est compliqué...» Normation CC-BY-SA 4

De quoi parle-t-on? Source : Wikipedia Normation CC-BY-SA 5

De quoi parle-t-on? Problématique Authentification d'applications Gestion des droits (administrateurs) Création de comptes (RH) Source unique de «vérité» Origines des mises à jours multiples et variées Point central critique LDAP Normation CC-BY-SA 6

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 d'expériences et idées sur la gestion d'un service LDAP en production Normation CC-BY-SA 7

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. Monitoring Jonathan CLARKE - jcl@ Normation CC-BY-SA 8

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 : Engineering team actuelle : Howard Chu, Pierangelo Maserati et Kurt Zeilenga 14 membres officiels De nombreux contributeurs occasionnels Normation CC-BY-SA 9

OpenLDAP Un annuaire LDAP parmi d'autres... Normation CC-BY-SA 10

OpenLDAP Contient 3 composants : Un serveur LDAP : slapd Outils d'administration côté serveur : slap* Des clients LDAP : ldap* Lecture : ldapsearch, ldapcompare Écriture : ldapadd, ldapmodify, ldapmodrdn, ldapdelete Divers : Utilitaire : ldapurl ldappasswd, ldapwhoami, ldapexop Une librairie LDAP : libldap Librairie standard en C Normation CC-BY-SA 11

OpenLDAP : architecture du serveur Requête entrante Frontend Overlay 1 Backend bdb/hdb Overlay 2 Backend ldif... Overlay n Backend ldap/meta Backend shell/perl Backend SQL Backend monitor Normation CC-BY-SA 12

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é à l'avenir cn=config: considéré comme standard depuis OpenLDAP 2.4 Normation CC-BY-SA 13

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 14

OpenLDAP : configuration slapd.conf mappé vers cn=config cn=config # options apply to every database <global configuration options> # first database database <database 1 type> <configuration for database 1> # subsequent databases database <database 2 type> # add an overlay to database 2 overlay <overlay type> <configuration for overlay> olcdatabase={-1}frontend olcdatabase={0}config olcdatabase={1}bdb olcdatabase={2}hdb olcoverlay={0]type Normation CC-BY-SA 15

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. Monitoring Jonathan CLARKE - jcl@ Normation CC-BY-SA 16

Intégrité des données Ce qu'on veut éviter Normation CC-BY-SA 17

Intégrité des données LDAP impose nécessaire un contrôlé des données grace à son schéma : ObjectClasses : définit les types d'attributs autorisés dans chaque objet Attributs : définit les valeurs autorisées dans un attribut Mais ce n'est pas toujours suffisant! Aller plus loin : Imposer l'unicité de valeurs à travers l'annuaire (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 18

Intégrité des données unique overlay Principe : interdire de créer des valeurs identiques à d'autres 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 19

Intégrité des données refint overlay Principe : liens entre objets (attributs de type DN) mis à jour en cas de changement de l'objet 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 20

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 l'attribut memberof, etc... Exemples : overlay memberof dn: olcoverlay=memberof,olcdatabase={1}bdb,cn=config objectclass: olcoverlayconfig objectclass: olcmemberofconfig Normation CC-BY-SA 21

Intégrité des données constraint overlay Principe : Impose des règles plus strictes que le schéma sur les valeurs d'attributs 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 l'annuaire (service = un des services définis) Par règles de correspondance (cn = givenname + " " + sn) Syntaxe «set» des ACL Normation CC-BY-SA 22

Intégrité des données constraint overlay Configuration : Activation + définition des règles Exemples : dn: olcoverlay=constraint,olcdatabase={1}bdb,cn=config objectclass: olcoverlayconfig objectclass: olcconstraintconfig OolcConstraintAttribute: jpegphoto size 131072 olcconstraintattribute: userpassword count 1 overlay constraint constraint_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 23

Intégrité des données Attention! Limitation de cette approche : Les overlays n'interceptent que les nouvelles opérations... Ils ne corrigeront pas les donneés déjà présentes dans l'annuaire! Normation CC-BY-SA 24

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. Monitoring Jonathan CLARKE - jcl@ Normation CC-BY-SA 25

Réplication C'est quoi la réplication? Reproduire à l'identique tout ou partie du contenu d'un annuaire, de manière périodique ou en continu Aucune modification ni transformation des données ne peut être apportée lors d'une réplication Il s'agit là de synchronisation Pour les annuaires LDAP, voir le projet Ldap Synchronization Connector (LSC) Normation CC-BY-SA 26

Réplication Le mécanisme historique : slurpd Présent jusqu'en 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 l'appliquait à 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 27

Réplication Le mécanisme syncrepl Officiellement "LDAP Sync Replication" Syncrepl est normalisé par l'ietf : 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é, l'entré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 28

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, l'entré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 29

Réplication serveur-client Normation CC-BY-SA 30

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. Monitoring Jonathan CLARKE - jcl@ Normation CC-BY-SA 31

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 32

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 d'authentification Modification d'un attribut de test sur une entrée de test pour valider le service d'écriture Compte du nombre d'entré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 33

Monitoring Supervision spécifique LDAP Temps de réponse du service LDAP par vérification LDAP Calcul du temps de réponse moyen d'une 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 34

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 35

Monitoring Supervision spécifique LDAP Statistiques d'utilisation obtenues dans cn=monitor cn=monitor est un backend spécial qui rend accessible des statistiques sur l'utilisation et la configuration d'openldap 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 36

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 d'utilisations (graphiques d'évolution au cours du temps) sont très utiles pour analyser et prévoir les problèmes Lorsqu'un incident survient, pouvoir voir l'évolution récente de l'usage Prévoir les dépassements de capacité Normation CC-BY-SA 37

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 38

Questions? Normation CC-BY-SA