Les annuaires LDAP Ph. Sevre le 25/09/12.

Slides:



Advertisements
Présentations similaires
Sécurité informatique
Advertisements

Active Directory Windows 2003 Server
ACTIVE DIRECTORY. Qu'est-ce un service d'annuaire ?: Un service d'annuaire peut être comparé à un agenda téléphonique, celui- ci contient au départ des.
Vue d'ensemble Présentation multimédia : Administration d’un environnement Microsoft Windows Server 2003 Ouverture de session sur Windows Server 2003 Installation.
Module 5 : Implémentation de l'impression
Active Directory, Applications STIME/Groupement des Mousquetaires 03 Novembre 2003.
Informatique Réseaux 3ème année
Le struts validator – framework de validation
Pascal AUBRY François DAGORN IFSIC / Université de Rennes 1
Copyright 2008 © Consortium ESUP-Portail EsupDay /02/2009 Atelier stockage Raymond Bourges, Université de Rennes 1.
Quelques Infos sur LDAP
Implémentation de la gestion de réseau dans Windows 2000 et plus
- Couche 7 - Couche application. Sommaire 1)Introduction 1)DNS 1)FTP et TFTP 1)HTTP 1)SNMP 1)SMTP 1)Telnet.
Lightweight Directory Access Protocol
Vue d'ensemble Implémentation de la sécurité IPSec
Vue d'ensemble Création de comptes d'utilisateurs
Administration et Configuration
Copyright 2010 © Consortium ESUP-Portail TOC ESUP-Days 10, Paris, 2 juillet 2010 De LDAP à Kerberos à lUniversité de Rennes 1 Pascal Aubry François Dagorn.
Single Sign-On open source avec CAS (Central Authentication Service)
Plan de formation Chapitre 1 : Présentation de SAP
Configuration de Windows Server 2008 Active Directory
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Active Directory Windows 2003 Server
Authentification Nomade Project
Etude des Technologies du Web services
LDAP et les services d’annuaire
SECURITE DU SYSTEME D’INFORMATION (SSI)
Clément CAILLAUD Sébastien HASSLER Julien JORRY
Module 1 : Préparation de l'administration d'un serveur
Analyse des protocoles de la couche application
Les Services de Messagerie
Le protocole FTP.
Configuration de Windows Server 2008 Active Directory
Introduction RADIUS (Remote Authentication Dial-In User Service)
GESTION DE PARCS D’ORDINATEURS
Protocole 802.1x serveur radius
WINDOWS Les Versions Serveurs
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
Authentification LDAP
Présentation de Active Directory
Module 3 : Création d'un domaine Windows 2000
Module 5 : Publication de ressources dans Active Directory
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Aymeric BERNARD Stéphane BRINSTER Guillaume LECOMTE.
Initiation au web dynamique
Mise en place d'une forêt (Aspects pratiques).
Module : Technologies des serveurs réseaux : FTP Dynamic Host Configuration Protocol Présenter par : Mounir GRARI.
4 - Annuaires Les Annuaires d ’Entreprises Offres et solutions
Active Directory Windows 2003 Server
PHP 5° PARTIE : LES COOKIES
Etude et mise en place d’un Serveur de messagerie Postfix
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Cours de programmation web
Les listes de contrôle d’accès
Gestion des comptes utilisateurs (Windows 2000)
Création d’un domaine Il faut :
Module 3 : Création d'un domaine Windows 2000
Modules d'authentification enfichables (P.A.M.)
COMPARAISON DES SYSTEMES DE GESTION DE FICHIERS LINUX / WINDOWS NT
ACTIVE DIRECTORY B.T.S. S.I.O – SI3 –
Fonctionnalité et protocole des couches applicatives
LDAP (Lightweight Directory Access Protocol)
AFNOG POP3 et IMAP avec Dovecot
Cette session avec la démo disponible prochainement sur le site « interop » :
LDAP Lightweight Directory Access Protocol. Ce que pensent 100 directeurs informatique de LDAP :
Installation du PGI – CEGID
Chapitre 1 Introduction à l'infrastructure Active Directory Module S44.
Chapitre 10 Maintenance d'Active Directory
SRT3 LDAP.
Transcription de la présentation:

Les annuaires LDAP Ph. Sevre le 25/09/12

Introduction Light Weight Directory Protocol descendant de la norme d'annuaires OSI X500 trop lourde et complexe à mettre en oeuvre normalisation de l'interface d'accès aux annuaires fonctionne au niveau applicatif au dessus de TCP/IP mode de communication client-serveur optimisé pour les requêtes d’interrogations

X500 Standard OSI (protocole à 7 couches)‏ Protocoles : DAP : communication client-serveur (Directory Access Protocol)‏ DSP : communication serveur-serveur (Directory System Protocol)‏ Données au format objets-attributs Objects Identifiers Structure hiérarchique : arbre, branches, feuilles Encodage ASN.1 Sécurité : X.509 (certificats, PKI)‏ Réplication

Concepts Modèle d’information Modèle de nommage Modèle fonctionnel (de service)‏ Modèle de sécurité

Caractéristiques Stockage réparti de données d’authentification

Le protocole LDAP Ldap V1: RFC 1487 - accès simple X500 Ldap V2 -1995 – les bases de LDAP Actuellement protocole LDAP V3.0 (RFC 2251)‏ depuis 1998

Le protocole LDAP -2 Communication client-serveur : Utilise TCP/IP ASN.1 (Abstract Syntax Notation One)‏ Communication serveur-serveur : Referrals : liens entre annuaires Réplication : échange de données entre annuaires Les mécanismes de sécurité : Authentification (Kerberos)‏ Chiffrement des flux (SASL :Simple Authentication and Security layer)‏ Règles d’accès aux données

L’annuaire LDAP - 1 collection hiérarchisée d’objets et de leurs attributs un annuaire n’est pas une base de données : un deux objets de même type peuvent avoir des attributs différents les attributs peuvent être multivalués Ex : 2 homonymes dans 2 OU différentes il est basé sur des schémas standards prédéfinis mais qui peuvent être adaptés localement

L’annuaire LDAP - 2 suit des recommandations (RFC) pour garantir l’interopérabilité il est optimisé pour les interrogations et les recherches il peut utilisé le stockage distribué et les techniques de réplications permet de gérer finement les accès aux objets et attributs au moyen d’ACLs

LDAP : les opérations Abandon Abandonne l'opération précédemment envoyées au serveur Add Ajoute une entrée au répertoire Bind Initie une nouvelle session sur le serveur LDAP Compare Compare les entrées d'un répertoire selon des critères Delete Supprime une entrée d'un répertoire Extended Effectue des opérations étendues Rename Modifie le nom d'une entrée Search Recherche des entrées d'un répertoire Unbind Termine une session sur le serveur LDAP

Schéma annuaire Base Unité organisationelle O=darkstar,c=US (X500)‏ dc=darkstar.org dc=darkstar,dc=org (RFC 2247)‏ Base Unité organisationelle dc=darkstar,dc=org Ou=Groups,dc=darkstar,dc=org Ou=People,dc=darkstar,dc=org cn=Vador,ou=People,dc=darkstar,dc=org

Un objet : Un ou plusieurs type de classe (objectclass)‏ Des attributs

Pourquoi ce type de structure ? administration plus fine configuration indépendante de l’hôte la réplication permet d’améliorer la disponibilité pour les gros sites, les performances sont supérieures à celles des fichiers plats Unix contrôle renforcé du fait de la structure du schéma plus sûr

Terminologie - 1 Base : la racine du répertoire. La base de recherche d’une requête définit où commence cette dernière dc=darkstar,dc=org Scope (base, one , sub) : définit la profondeur jusquà laquelle ira la requête base : reste au niveau de la base one : descend d’un niveau sub : parcourt tout l’arbre

Terminologie - 2 Distinguished Name (DN) : un identifiant qui détermine l’objet de façon unique dans le contexte considéré cn=Vador,ou=People,dc=darkstar,dc=org Relative Distinguished Name (RDN) : les attributs du DN qui le rendent unique dans son contexte cn=Vador

Le schéma un schéma définit des classes d’objet (ObjectClass)‏ “ressemble“ à un schéma de base de données avec l’héritage (simple ou multiple)‏ définit les classes d’objets définit les attributs, leur contenu Le caractère obligatoire ou facultatif mode de comparaison (sensible ou non à la casse)‏,

Les OID chaque élément d’un schéma est identifié par un Object Identifier unique (comme pour SNMP)‏ pour obtenir un OID, il faut s’adresser à l’IANA Un OID est composé de plusieurs numéros séparés par un point. Chaque numéro représente une branche d’un arbre hiérarchique. Tous les attributs du standard commencent par 2.5.4. Toutes les classes d’objet commencent par 2.5.6.

Schéma d’objet Définition de la classe d’objet person : objectclass ( 2.5.6.6 NAME 'person' SUP top STRUCTURAL MUST( sn $ cn )‏ MAY( userPassword $ telephoneNumber $ seeAlso $ description ) )‏ attributetype ( 2.5.4.4 NAME ( 'sn' 'surname' ) SUP name )‏

Les attributs Un attribut est défini par : son OID. son nom. une courte description de l’attribut. les critères de comparaison utilisés lors d’une recherche. une syntaxe décrivant le type de données.

Les attributs - Exemple Définition de l’attribut sn : attributetype ( 2.5.4.4 NAME ( 'sn' 'surname' ) SUP name )objectclass attributetype ( 2.5.4.41 NAME 'name' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMat SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )‏ L’attribut sn (surname) hérite ses propriétés de ses parents (name)

Les attributs : règles de comparaison Les règles de comparaison : Associées à un traitement particulier sur un type d’attribut (comparaison, tri), elles définissent l’algorithme à utiliser lors de ces opérations Elles dépendent de la syntaxe spécifiées dans la RFC 2252 Exemples de règles de comparaison : 2.5.13.0 : objectIdentifierMatch 2.5.13.1 : distinguishedNameMatch 2.5.13.2 : caseIgnoreMatch 2.5.13.3 : caseIgnoreOrderingMatch 2.5.13.4 : caseIgnoreSubstringsMatch 2.5.13.8 : numericStringMatch 2.5.13.10 : numericStringSubstringsMatch

Exemple d'objet dn: cn=Albert Dupont,dc=exemple,dc=org givenName: Albert sn: Dupont telephoneNumber: 01 23 45 67 89 telephoneNumber: +1 555 1234 mail: adupont@exemple.com manager: cn=Jules Leroy,dc=exemple,dc=org objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top

Quelques objets standard Schéma par défaut RFC 2256 : core RFC 1274 : cosine RFC 2798 : inetOrgPerson PosixAccount person organizationalPerson inetOrgPerson

Unité organisationelle (OU)‏ C’est un conteneur pouvant stocker des objets terminaux ou d’autres OU

Le Directory Information Tree ( DIT)‏ DIT : structure de l’arbre Un schéma peut être réparti sur plusieurs serveurs. Une sous- partie constitue une partition règle : chaque objet doit disposer d’un ancêtre commun et cet ancêtre doit être dans la partition

Les ACLS Elles permettent de décrire les accès aux attributs. Par exemple : # controle d’accès simple: lecture seule sauf pour les mots de passe access to dn=".*,dc=darkstar,dc=org" attr=userPassword by self write by dn=Manager,ou=People,dc=darkstar,dc=org write by * auth access to dn=".*,dc=darkstar,dc=org" by self write by * read

Les URL LDAP les navigateurs web peuvent accéder à un annuaire LDAP grâce à des URL : ldap[s]://<hostname>:<port>/<base_dn>?<attributes>?<sco pe>?<filter> <base_dn> : DN du point de départ de la recherche <attributes>: attributs que l'on veut consulter <scope> : la profondeur de recherche dans le DIT à partir du <base_dn> :"base" | "one" | "sub" <filter> : filtre de recherche, par défaut (objectClass=*)‏

Les URL LDAP - suite exemples : ldap://ldap.netscape.com/ou=Sales,o=Netscape,c=US?cn,tel,mail?scop e=sub?(objetclass=person)‏ ldap://ldap.domain.fr/cn=Albert%20Dupont, ou=People, dc=domain,dc=fr ldap://ldap.domain.fr/dc=domain,dc=fr?mail,uid,sub?(sn=Dupont)*)‏

Les connexions et la sécurité mode anonyme (DN et mot de passe vide: pour client de messagerie)‏ : opération bind avec ou sans paramètres authentification simple (envoi du DN + mdp en clair => peu de sécurité)‏ Sécurisée avec TLS (Transaction Layer Security) ou SSL (LDAPS)‏ Kerberos 4 SASL

Les couches de sécurité SSL/TLS (Secure Socket Layer/Transport Layer Security) au moyen de certificats SSL SASL (Simple Layer Authentication and Security Layer)‏ Kerberos 4 Kerberos5

Annuaires distribués Il est possible d’utiliser des annuaires distribués au moyen de referral : dn: ou=explore,dc=darkstar,dc=org objectClass: organizationalUnit objectClass: referral ou: explore ref: ldap://explr.darkstar.org/ou=explore,dc=darkstar,dc=org Ici, l’annuaire correspondant à l’OU explore est stocké sur le serveur explr.darkstar.org

Les indexes les annuaire LDAP permettent de définir les indexes ad-hoc pour obtenir les performances souhaitées. Exemple: index cn,uid eq index uidNumber eq index gidNumber eq

Le back-end OpenLdap propose plusieurs back-end pour stocker la base d’annuaire : DBM Berkeley DB BD relationnelle fichiers plats

La réplication – 1 Elle permet : d’optimiser la gestion de la charge. d’améliorer la disponibilité de l’annuaire. de sécuriser les données. Il existe deux mécanismes de réplication entre annuaires LDAP : le processus basé sur la génération d’un fichier LDIF et géré par un démon dédié (slurpd). le mécanisme LDAP Sync Replication disponible depuis la version 2.2 d’OpenLdap.

La réplication – 2 configuration maître/esclave ou multi- maîtres les annuaires doivent posséder le même schéma Les règles d'accès doivent être dupliquées

Intégration au système LDAP est maintenant intégré au système par l’intermédiaire de clients LDAP et peut être utilisé conjointement avec PAM (Plugable Authentication Module)‏

Les clients et outils Outlook Express permet d’interroger un annuaire LDAP Les outils : ils commencent à apparaître gq : outil graphique X Windows Webmin : permet d’administrer un serveur LDAP depuis une interface Web PhpLdapAdmin ldapvi

Quelques exemples annuaire d’université Paris V : 30 000 étudiants +3000 personnels Ministère de l’Intérieur : création de 300 000 adresses en 2h30 !! Wanadoo : 3 000 000 d’entrée DGCP : 60 000 agents + 10 000 BAL + projets Education Nationale

Les applications “LDAPifiées” Samba Sendmail Postfix Squid Apache serveurs POP3/IMAP4 (DovetCot, ...)‏ serveurs Radius + communication avec Microsoft AD .... plus de très nombreuses applications Web

Les outils slapxxx : fonctionnent à froid slapcat : vidage annuaire en ASCII LDIF slapadd : ajout d'entrées (à froid)‏ slappasswd : modif mdp root DN slapindex : réindexation ldapxxx: fonctionnent à chaud Ldapadd : ajout d'entrée Ldapmodify : modification d'entrées Ldapdelete : suppression ldapsearch : recherche

Les API de nombreuses interfaces de programmation sont disponibles en particulier avec OpenLdap sous Linux : C/C++ Perl (Net::Ldap)‏ Python PHP Java

Les implémentations Sun Java System Directory Server IBM Tivoli Directory Server Active Directory (Windows 2000, Server 2003)‏ Apple Open Directory (Mac OS X Server)‏ Novell eDirectory, anc. Novell Directory Services (NDS)‏ OpenLDAP 389 Directory Server (RedHat)‏ Apache Directory Server (Java)‏

Mise en oeuvre gros travail de réflexion de manière à ce que la structure de l’arbre : reflète bien la structure de l’organisation ne soit pas trop complexe (nbre de niveaux limités)‏ structure plate/structure profonde migration lourde sans outils avec OpenLdap

Le format LDIF Ldap Directory Information File : format standard d’échange Le standard : RFC 2849 fichier texte Ascii utilisé pour insérer des objets/vider un annuaire Encodage UTF-8 Chaque entrée séparée par une ligne blanche le programme slapcat (dump annuaire ldap) produit un fichier LDIF utilisé pour les sauvegardes

Utilisation de LDAP Partout ou une authentification distribuée et extensible est nécessaire permet d’avoir une seule source d’authentification quels que soient les clients et les OS (p. Ex. Windows/Samba et messagerie, Apache, Squid, ...)‏ remplacement de service NIS Annuaire d’entreprise (avec interface Web depuis Rolodap)‏

Migration des outils de migration (scripts shell et perl) sont disponibles pour passer d’une structure Unix classique à fichiers plats (/etc/passwd et groups) ou de type NIS vers une structure de type Ldap on peut migrer : utilisateurs, groupes, aliases, netgroups, hosts, services... cf http://www.padl.com

Openldap fonctionne sur tous les Unix/Linux packagé pour toutes des distributions importantes Debian/Ubuntu : slapd (serveur)‏ ldap-utils (client)‏

Authentification Unix permet à des utilisateurs Unix de s'authentifier auprès d'un annuaire LDAP basée sur nss_ldap et pam_dap

nss_ldap Name Service Switch : permet de faire le lien avec des dispositifs externes (ldap, nis, winbind) – commande getent Modification du fichier /etc/nsswitch.conf recherche d'abord dans les fichiers locaux /etc/passwd, group, puis dans la base ldap passwd: files ldap group: files ldap shadow: files ldap

pam_ldap - 1 Pam-ldap prend en charge les authentifications des utilisateurs : avec le module PAM_LDAP, on permet à des programmes tels que su, gdm, login, telnet, ftp..., d'aller chercher et vérifier l'information d'authentification dans un annuaire LDAP. Ces programmes doivent être ``pam-enabled'' c'est à dire liés à la librairie pam libpam.so pour utiliser ce cadre d'authentification. paramétrage dans /etc/pam.d

Pam_ldap – 2 4 controles : gestion des comptes, des authentifications, des password et des sessions Auth : vérification de l'identité user avec mot de passe Account: vérification des comptes.. mot de passe expiré? Accès permis à une ressource? Password : gestion des mots de passe, expiration etc.. Session : gestion de l'entrée en session.. montage du home directory Sufficient : si le test est probant on s'arrete là, sinon on essaie la suite Required : succès obligatoire sinon le test échoue

les clients Le fichier de configuration pour les commandes clientes : permet d'éviter de taper les arguments sur la ligne de commande /etc/ldap/ldap.conf (ubuntu et debian)‏ # adresse des serveurs ldap à contacter HOST 192.168.0.1 192.168.0.2 #Dn de la base BASE dc=dom,dc=fr #adresse des serveurs avec protocole d'accès URI ldap://localhost ldaps://192.168.0.2

Sauvegarde/restauration annuaire sauvegarde : slapcat > -l dump.ldif arrêt annuaire /etc/init.d/ldap stop purge base rm -fr /var/lib/ldap/* restauration slapadd -l dump.ldif chown -R ldap.ldap /var/lib/ldap/ /etc/init.d/ldap start