SlideShare une entreprise Scribd logo
Administration réseau
Annuaire LDAP
A. Guermouche
A. Guermouche Cours 7 : LDAP 1
Plan
1. Introduction
2. Annuaire LDAP
3. Protocole LDAP
4. LDAP en pratique
A. Guermouche Cours 7 : LDAP 2
Introduction
Plan
1. Introduction
2. Annuaire LDAP
3. Protocole LDAP
4. LDAP en pratique
A. Guermouche Cours 7 : LDAP 3
Introduction
Objectifs
Permet de fusionner plusieurs bases de données en un unique
annuaire informatique
F base Microsoft Excel du personnel administratif
F base Microsoft Access du personnel enseignant
F base /etc/passwd des comptes unix
F base /etc/aliases (ou Sympa) des listes de diffusion
F base Samba des utilisateurs windows
F autres bases, MySQL, . . .
F . . .
Exemple:
Comment envoyer un e-mail a l’ensemble du personnel
administratif en sachant que l’administrateur recevra uniquement
une liste de noms/prénoms?
A. Guermouche Cours 7 : LDAP 4
Introduction
Le concept d’annuaire
Un annuaire est comme une base de données. . .
→ on peut y mettre des information et les consulter
Cependant un annuaire est spécialisé :
→ Dédié à la lecture plus qu’à l’écriture
→ L’accès aux données se fait par des recherches
multi-critères.
Son objectif est de maintenir de façon cohérente et contrôlée une
grande quantité de données.
Exemples d’annuaire :
F carnet d’adresses
F annuaire téléphonique
F répertoire des rues
F . . .
A. Guermouche Cours 7 : LDAP 5
Introduction
Le concept d’annuaire
Un annuaire est comme une base de données. . .
→ on peut y mettre des information et les consulter
Cependant un annuaire est spécialisé :
→ Dédié à la lecture plus qu’à l’écriture
→ L’accès aux données se fait par des recherches
multi-critères.
Son objectif est de maintenir de façon cohérente et contrôlée une
grande quantité de données.
Différences annuaires/SGBD : Dans un annuaire :
F pas de dépendances entre les objets stockés
F les objets peuvent être distribués sur plusieurs annuaires pour
assurer une meilleure disponibilité
F les applications de l’annuaire n’ont pas besoin de connaître la
structure interne des données stockées
A. Guermouche Cours 7 : LDAP 5
Annuaire LDAP
Plan
1. Introduction
2. Annuaire LDAP
3. Protocole LDAP
4. LDAP en pratique
A. Guermouche Cours 7 : LDAP 6
Annuaire LDAP
L’annuaire LDAP
LDAP → Lightweight Directory Access Protocol
Héritier de l’annuaire X500 (proposé par l’ISO)
F standard conçu par les opérateurs télécom pour interconnecter
leurs annuaires téléphoniques
F X500 adapté à l’internet → LDAP (même modèle de schéma,
. . . )
LDAP a été proposé en 1995 :
F Standard d’annuaire au dessus de TCP/IP
I Le protocole ne concerne pas le contrôle d’accès aux données
de l’annuaire
F version 3 actuellement (RFC 2251)
F aussi RFC 2252 à 2256, RFC 2829 à 2830, RFC 2849
A. Guermouche Cours 7 : LDAP 7
Annuaire LDAP
Objectifs
F fournir aux utilisateurs des informations fiables, facilement
accessibles
F permettre aux utilisateurs de mettre à jour eux-même leurs
informations personnelles
F rendre les informations accessibles de façon contrôlée
F éviter la redondance d’informations : un seul annuaire pour
l’ensemble des services
F faciliter la gestion (administration) des postes de travail, des
équipements réseau
Tout ceci est fait sans remettre en cause les applications existantes
A. Guermouche Cours 7 : LDAP 8
Annuaire LDAP
Concepts
LDAP définit :
un protocole. accéder à l’information contenue dans l’annuaire,
un modèle d’information. le type des informations contenues dans
l’annuaire,
un modèle de nommage. comment l’information est organisée et
référencée,
un modèle fonctionnel. comment accéder à l’information (syntaxe
des requêtes,etc. . . ),
un modèle de sécurité. comment données et accès sont protégés,
un modèle de duplication. comment la base est répartie entre
serveurs,
des API. pour développer des applications clientes,
LDIF. un format d’échange de données.
A. Guermouche Cours 7 : LDAP 9
Annuaire LDAP
Protocole LDAP
Le protocole définit :
F Comment s’établit la communication client-serveur :
→ commandes pour se connecter ou se
déconnecter, pour rechercher, comparer, créer,
modifier ou effacer des entrées.
F Comment s’établit la communication serveur-serveur :
→ échanger leur contenu et le synchroniser
(réplication service)
→ créer des liens permettant de relier des annuaires
les uns aux autres (referral service).
F Le format de transport de données :
→ pas l’ASCII (comme pour HTTP, SMTP. . . ) mais le
Basic Encoding Rules (BER), sous une forme
allégée (appelée LBER : Lightweight BER)
A. Guermouche Cours 7 : LDAP 10
Annuaire LDAP
Protocole LDAP
Le protocole définit (suite) :
F Les mécanismes de sécurité :
→ méthodes de chiffrement et d’authentification
→ mécanismes de règles d’accès aux données.
F Les opérations de base :
interrogation : search, compare
mise à jour : add, delete, modify, rename
connexion au service : bind, unbind, abandon
Client
connexion et authentification
recherche
résultat authentification
Serveur LDAP
déconnexion
message de résultat
abandon de session
A. Guermouche Cours 7 : LDAP 10
Protocole LDAP
Plan
1. Introduction
2. Annuaire LDAP
3. Protocole LDAP
4. LDAP en pratique
A. Guermouche Cours 7 : LDAP 11
Protocole LDAP
Le modèle d’information
Le modèle d’information définit le type des données pouvant être
stockées dans l’annuaire
F L’entrée (Entry) = élément de base de l’annuaire. Elle contient
les informations sur un objet de l’annuaire.
F Ces informations sont représentées sous la forme d’attributs
décrivant les caractéristiques de l’objet.
F Toute sorte de classe d’objet (réel ou abstrait) peut être
représentée.
F Le schéma de l’annuaire définit la liste des classes d’objets
qu’il connaît. Le Directory schema est la « charte » qui donne,
pour le serveur, l’ensemble des définitions relatives aux objets
qu’il sait gérer.
I Le schéma décrit les classes d’objets, leurs types d’attribut et
leur syntaxe.
I Chaque entrée de l’annuaire fait obligatoirement référence à
une classe d’objet du schéma et ne doit contenir que des
attributs qui sont rattachés au type d’objet en question.
A. Guermouche Cours 7 : LDAP 12
Protocole LDAP
Le modèle d’information
F Un attribut est défini par :
I un nom, un identifiant unique (OID), mono/multi valué, une
syntaxe et des règles de comparaison (matching rules), une
valeur (format+taille limite), modifiable ou non
F Les classes d’objet modélisent
I des objets réels : Un compte UNIX (posixAccount), une
organisation (o), un département (ou), un personnel
(organizationPerson), une imprimante (device),. . .
I ou abstraits : l’objet père de tous les autres (top),. . .
F Une classe d’objet est définie par
I Un nom, OID, des attributs obligatoires, des attributs optionnels,
un type (structurel, auxiliaire ou abstrait)
A. Guermouche Cours 7 : LDAP 13
Protocole LDAP
Le modèle d’information
top
person
organisationalPerson
inetOrgPerson
organisationalUnit
F Chaque objet hérite des propriétés (attributs) de l’objet dont il
est le fils.
F On précise la classe d’objet d’une entrée à l’aide de l’attribut
objectClass.
F Il faut obligatoirement indiquer la parenté de la classe d’objet
en partant de l’objet top et en passant par chaque ancêtre de
l’objet.
A. Guermouche Cours 7 : LDAP 14
Protocole LDAP
Le modèle d’information (exemple)
L’objet inetOrgPerson à la filiation suivante :
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
L’objet person a comme attributs : commonName, surname,
description, seeAlso, telephoneNumber, userPassword
L’objet fils organizationalPerson ajoute des attributs comme :
organizationUnitName, title, postalAddress. . .
L’objet petit-fils inetOrgPerson lui rajoute des attributs comme :
mail, labeledURI, uid (userID), photo. . .
Remarques :
F Une entrée peut appartenir à un nombre non limité de classes
d’objets.
F Les attributs obligatoires sont la réunion des attributs
obligatoires de chaque classe.
A. Guermouche Cours 7 : LDAP 15
Protocole LDAP
Le modèle de nommage
Il définit comment les entrées de l’annuaire sont organisées et
comment elles sont référencées.
Structure arborescente contenant deux catégories d’objets :
les conteneurs : départ d’une nouvelle branche (nœud
intermédiaire de l’arbre)
F peuvent contenir des conteneurs ou des feuilles
F généralement, une sous-organisation de
l’organisation (zone géographique,. . . )
les feuilles : elles représentent les données (généralement les
machines, les utilisateurs,. . . )
A. Guermouche Cours 7 : LDAP 16
Protocole LDAP
Le modèle de nommage
Il définit comment les entrées de l’annuaire sont organisées et
comment elles sont référencées.
Structure arborescente contenant deux catégories d’objets :
F Structure logique hiérarchique : le DIT (Directory Information
Tree)
F Une entrée est identifiée par un nom unique : le DN
(Distinguish Name)
F RDN(Relative Distinguish Name)
dc=labri,dc=fr
ou=Hosts cn=admin
ou=People
uid=toto
root entry ou base DN
ou=People,dc=labri,dc=fr
A. Guermouche Cours 7 : LDAP 16
Protocole LDAP
Le format LDIF
LDIF → LDAP Interchange Format
F Standard de représentation des entrées sous format texte.
F Permet de :
I faire des imports/exports de la base ou d’une partie de la base
I créer, ajouter, modifier, . . . un grand nombre d’entrées de
manière automatisée
dn: uid=toto, ou=People, dc=labri, dc=fr
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
uid: toto
uidNumber: 44321
gidNumber: 200
homeDirectory: /home/toto
cn: toto titi
loginShell: /bin/bash
A. Guermouche Cours 7 : LDAP 17
Protocole LDAP
Le modèle fonctionnel
Il décrit le moyen d’accéder aux données (syntaxe des requêtes) et
les requêtes que l’on peut leur appliquer.
Rappel des opérations de consultation/mise-à-jour
F opérations d’interrogation : recherche (search) et
comparaison (compare) d’entrées
F opérations de mise-à-jour des entrées de l’annuaire : add,
delete, modify, rename
Il n’y a pas d’opération de lecture d’une entrée
→ pour connaître le contenu d’une entrée, il est
nécessaire d’écrire une requête qui pointe sur cette
entrée.
A. Guermouche Cours 7 : LDAP 18
Protocole LDAP
Le modèle de réplication
Il définit comment dupliquer l’annuaire sur plusieurs serveurs.
F améliorer le temps de réponse
F être tolérant aux pannes
Deux types de serveurs LDAP
supplier server: fournit les données
consumer server: reçoit les données du maître
Possibilité de partitionner l’annuaire (éclatement sur plusieurs
serveurs)
F liens virtuels entre les différentes partitions (referral service)
A. Guermouche Cours 7 : LDAP 19
Protocole LDAP
Le modèle de sécurité
Authentification pour se connecter au service
F Anonymous authentication, Root DN/passwd authentication
(administrateur), User DN/passwd
Contrôle de l’accès aux données
F droits d’accès aux données (fonctions de l’utilisateur
authentifié)
F règles définies sous forme d’ACL (Access Control List) au
niveau du sommet d’un sous-arbre ou d’une entrée.
Chiffrement des transactions (LDAP+SSL, . . . )
A. Guermouche Cours 7 : LDAP 20
LDAP en pratique
Plan
1. Introduction
2. Annuaire LDAP
3. Protocole LDAP
4. LDAP en pratique
A. Guermouche Cours 7 : LDAP 21
LDAP en pratique
Mettre en place un annuaire LDAP
Il faut bien choisir les schémas
F Quelles informations veut-on stocker dans l’annuaire?
F Quelles sont les applications qui vont utiliser l’annuaire?
Il faut réfléchir a l’organisation du DIT
F impact sur la performance, les droits d’accès, . . .
Puis dans un deuxième temps
F gestion centralisée sur un seul serveur?
F nombre de serveurs redondants? Emplacement?
A. Guermouche Cours 7 : LDAP 22
LDAP en pratique
OpenLDAP
F Logiciel LDAP du domaine public
F le démon slapd
→ traite les requêtes LDAP
F le démon slurpd
→ permet la réplication
F des librairies LDAP
I par exemple pour authentifier les logins via LDAP :
libpamldap, libnssldap
F des utilitaires :
I ldapadd, ldapdelete, ldapmodify, ldapmodrdn,
ldappasswd, ldapsearch
A. Guermouche Cours 7 : LDAP 23
LDAP en pratique
Configuration du serveur ldap(1/2)
Le fichier /etc/ldap/slapd.conf permet de configurer le
démon sladp
F définition des schémas utilisés
include inetorgperson.schema
F définition du backend (type de la base de données utilisée)
backend bdb
F définition de la base, de l’annuaire et de l’administrateur
I le suffixe (racine de l’arbre)
suffix "dc=labri,dc=fr"
I l’administrateur et son mot de passe
rootdn “cn=Manager,dc=labri,dc=fr”
rootpw MD5x0dg9sP0uUf+NRm0MIPz7Q==
I le répertoire où la base est stockée
directory "/var/lib/ldap"
A. Guermouche Cours 7 : LDAP 24
LDAP en pratique
Configuration du serveur ldap(1/2)
Définition des ACLs (man slapd.access)
# par défaut
access to attrs=userPassword
by dn="cn=admin,dc=com" write # l’admin
by anonymous auth # droit de lecture lors du
bind
by self write # le propriétaire
by * none
access to dn.base="" by * read
# L’administrateur a un accès total en écriture, tous
# les autres utilisateurs peuvent tout lire.
access to *
by dn="cn=admin,dc=com" write
by * read
A. Guermouche Cours 7 : LDAP 25
LDAP en pratique
configuration du client LDAP
La configuration se fait grâce au fichier /etc/ldap/ldap.conf
F man ldap.conf
F peut aussi se faire dans /.ldaprc
F exemple de fichier ldap.conf
# base par défaut à contacter pour les opérations LDAP
BASE dc=labri, dc=fr
# en tant que qui le client va se connecter
# à la base
BINDDN uid=toto,ou=People,dc=labri,dc=fr
# le serveur auquel se connecter
URI ldap://147.210.20.21:389/
A. Guermouche Cours 7 : LDAP 26
LDAP en pratique
Authentification Unix via LDAP
F PAM (Pluggable Authentication Modules)
I permet de gérer la politique d’authentification sans
recompilation
I pour authentifier via LDAP, il faut ajouter la ligne auth
sufficient pam_ldap.so (qui signifie que l’authentification
LDAP est suffisante) dans le fichier
/etc/pam.d/common-auth. Il faut faire de même pour tous
les autres fichiers /etc/pam.d/common-*.
I Modifier éventuellement /etc/pam.d/ssh,. . .
F Configurer l’accès à la base dans /etc/libnss-ldap.conf
et /etc/pam_ldap.conf (voir pages man)
F Indiquer dans /etc/nsswitch.conf l’ordre d’interrogation
pour l’authentification
→ toujours laisser files en premier !
A. Guermouche Cours 7 : LDAP 27

Contenu connexe

Similaire à cours8.pdf

chapitre 4-PHP5 module web part2 (1).pdf
chapitre 4-PHP5 module web part2 (1).pdfchapitre 4-PHP5 module web part2 (1).pdf
chapitre 4-PHP5 module web part2 (1).pdf
imaneeaouattahee
 
Sudoc, Calames, theses.fr et le Web de données
Sudoc, Calames, theses.fr et le Web de donnéesSudoc, Calames, theses.fr et le Web de données
Sudoc, Calames, theses.fr et le Web de données
Y. Nicolas
 
Réseau Aramis : journée de familiarisation aux API de HAL - 25 février 2015
Réseau Aramis : journée de familiarisation aux API de HAL -  25 février 2015Réseau Aramis : journée de familiarisation aux API de HAL -  25 février 2015
Réseau Aramis : journée de familiarisation aux API de HAL - 25 février 2015
OAccsd
 
SPARQL-Generate, présentation SemWeb.Pro 2019
SPARQL-Generate, présentation SemWeb.Pro 2019SPARQL-Generate, présentation SemWeb.Pro 2019
SPARQL-Generate, présentation SemWeb.Pro 2019
Maxime Lefrançois
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
Zineb ELGARRAI
 
Les bases pour utiliser SPARQL
Les bases pour utiliser SPARQLLes bases pour utiliser SPARQL
Les bases pour utiliser SPARQL
BorderCloud
 
Cours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxCours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptx
Khalil BOUKRI
 
SL2009 - Identity Management Cycle - LDAP synchronization and WebSSO
SL2009 - Identity Management Cycle - LDAP synchronization and WebSSOSL2009 - Identity Management Cycle - LDAP synchronization and WebSSO
SL2009 - Identity Management Cycle - LDAP synchronization and WebSSO
Clément OUDOT
 
PHP_partie_.ppt,php_cours_mathematiques_informatiques
PHP_partie_.ppt,php_cours_mathematiques_informatiquesPHP_partie_.ppt,php_cours_mathematiques_informatiques
PHP_partie_.ppt,php_cours_mathematiques_informatiques
oumaimanouari
 
Alfresco Meetup - ETL Connector & Talend
Alfresco Meetup - ETL Connector & TalendAlfresco Meetup - ETL Connector & Talend
Alfresco Meetup - ETL Connector & Talend
Marc Dutoo
 
PHP #6 : mysql
PHP #6 : mysqlPHP #6 : mysql
PHP #6 : mysql
Jean Michel
 
Alphorm.com Formation Active directory 2019 : Configuration et Bonne pratiques
Alphorm.com Formation Active directory 2019 : Configuration et Bonne pratiquesAlphorm.com Formation Active directory 2019 : Configuration et Bonne pratiques
Alphorm.com Formation Active directory 2019 : Configuration et Bonne pratiques
Alphorm
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
kemenaran
 
Les évolutions de HAL : présentation du 20 septembre 2017
Les évolutions de HAL : présentation du 20 septembre 2017Les évolutions de HAL : présentation du 20 septembre 2017
Les évolutions de HAL : présentation du 20 septembre 2017
OAccsd
 
Les catalogues sur le Web
Les catalogues sur le WebLes catalogues sur le Web
Les catalogues sur le Web
Figoblog
 
code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABES
ABES
 
Isidore à l'interface de la rencontre des SHS et du Web de données
Isidore à l'interface de la rencontre des SHS et du Web de donnéesIsidore à l'interface de la rencontre des SHS et du Web de données
Isidore à l'interface de la rencontre des SHS et du Web de données
Antidot
 
Connaître et convertir les formats de données
Connaître et convertir les formats de donnéesConnaître et convertir les formats de données
Connaître et convertir les formats de données
Association Fréquence écoles
 

Similaire à cours8.pdf (20)

chapitre 4-PHP5 module web part2 (1).pdf
chapitre 4-PHP5 module web part2 (1).pdfchapitre 4-PHP5 module web part2 (1).pdf
chapitre 4-PHP5 module web part2 (1).pdf
 
Sudoc, Calames, theses.fr et le Web de données
Sudoc, Calames, theses.fr et le Web de donnéesSudoc, Calames, theses.fr et le Web de données
Sudoc, Calames, theses.fr et le Web de données
 
Réseau Aramis : journée de familiarisation aux API de HAL - 25 février 2015
Réseau Aramis : journée de familiarisation aux API de HAL -  25 février 2015Réseau Aramis : journée de familiarisation aux API de HAL -  25 février 2015
Réseau Aramis : journée de familiarisation aux API de HAL - 25 février 2015
 
SPARQL-Generate, présentation SemWeb.Pro 2019
SPARQL-Generate, présentation SemWeb.Pro 2019SPARQL-Generate, présentation SemWeb.Pro 2019
SPARQL-Generate, présentation SemWeb.Pro 2019
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 
Les bases pour utiliser SPARQL
Les bases pour utiliser SPARQLLes bases pour utiliser SPARQL
Les bases pour utiliser SPARQL
 
Cours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxCours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptx
 
SL2009 - Identity Management Cycle - LDAP synchronization and WebSSO
SL2009 - Identity Management Cycle - LDAP synchronization and WebSSOSL2009 - Identity Management Cycle - LDAP synchronization and WebSSO
SL2009 - Identity Management Cycle - LDAP synchronization and WebSSO
 
PHP_partie_.ppt,php_cours_mathematiques_informatiques
PHP_partie_.ppt,php_cours_mathematiques_informatiquesPHP_partie_.ppt,php_cours_mathematiques_informatiques
PHP_partie_.ppt,php_cours_mathematiques_informatiques
 
Alfresco Meetup - ETL Connector & Talend
Alfresco Meetup - ETL Connector & TalendAlfresco Meetup - ETL Connector & Talend
Alfresco Meetup - ETL Connector & Talend
 
PHP #6 : mysql
PHP #6 : mysqlPHP #6 : mysql
PHP #6 : mysql
 
Alphorm.com Formation Active directory 2019 : Configuration et Bonne pratiques
Alphorm.com Formation Active directory 2019 : Configuration et Bonne pratiquesAlphorm.com Formation Active directory 2019 : Configuration et Bonne pratiques
Alphorm.com Formation Active directory 2019 : Configuration et Bonne pratiques
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
Semantic web introduction
Semantic web introductionSemantic web introduction
Semantic web introduction
 
Les évolutions de HAL : présentation du 20 septembre 2017
Les évolutions de HAL : présentation du 20 septembre 2017Les évolutions de HAL : présentation du 20 septembre 2017
Les évolutions de HAL : présentation du 20 septembre 2017
 
Les catalogues sur le Web
Les catalogues sur le WebLes catalogues sur le Web
Les catalogues sur le Web
 
code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABES
 
Isidore à l'interface de la rencontre des SHS et du Web de données
Isidore à l'interface de la rencontre des SHS et du Web de donnéesIsidore à l'interface de la rencontre des SHS et du Web de données
Isidore à l'interface de la rencontre des SHS et du Web de données
 
Connaître et convertir les formats de données
Connaître et convertir les formats de donnéesConnaître et convertir les formats de données
Connaître et convertir les formats de données
 
Ldap.16
Ldap.16Ldap.16
Ldap.16
 

Dernier

Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
AlbertSmithTambwe
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
Horgix
 

Dernier (7)

Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
 

cours8.pdf

  • 1. Administration réseau Annuaire LDAP A. Guermouche A. Guermouche Cours 7 : LDAP 1
  • 2. Plan 1. Introduction 2. Annuaire LDAP 3. Protocole LDAP 4. LDAP en pratique A. Guermouche Cours 7 : LDAP 2
  • 3. Introduction Plan 1. Introduction 2. Annuaire LDAP 3. Protocole LDAP 4. LDAP en pratique A. Guermouche Cours 7 : LDAP 3
  • 4. Introduction Objectifs Permet de fusionner plusieurs bases de données en un unique annuaire informatique F base Microsoft Excel du personnel administratif F base Microsoft Access du personnel enseignant F base /etc/passwd des comptes unix F base /etc/aliases (ou Sympa) des listes de diffusion F base Samba des utilisateurs windows F autres bases, MySQL, . . . F . . . Exemple: Comment envoyer un e-mail a l’ensemble du personnel administratif en sachant que l’administrateur recevra uniquement une liste de noms/prénoms? A. Guermouche Cours 7 : LDAP 4
  • 5. Introduction Le concept d’annuaire Un annuaire est comme une base de données. . . → on peut y mettre des information et les consulter Cependant un annuaire est spécialisé : → Dédié à la lecture plus qu’à l’écriture → L’accès aux données se fait par des recherches multi-critères. Son objectif est de maintenir de façon cohérente et contrôlée une grande quantité de données. Exemples d’annuaire : F carnet d’adresses F annuaire téléphonique F répertoire des rues F . . . A. Guermouche Cours 7 : LDAP 5
  • 6. Introduction Le concept d’annuaire Un annuaire est comme une base de données. . . → on peut y mettre des information et les consulter Cependant un annuaire est spécialisé : → Dédié à la lecture plus qu’à l’écriture → L’accès aux données se fait par des recherches multi-critères. Son objectif est de maintenir de façon cohérente et contrôlée une grande quantité de données. Différences annuaires/SGBD : Dans un annuaire : F pas de dépendances entre les objets stockés F les objets peuvent être distribués sur plusieurs annuaires pour assurer une meilleure disponibilité F les applications de l’annuaire n’ont pas besoin de connaître la structure interne des données stockées A. Guermouche Cours 7 : LDAP 5
  • 7. Annuaire LDAP Plan 1. Introduction 2. Annuaire LDAP 3. Protocole LDAP 4. LDAP en pratique A. Guermouche Cours 7 : LDAP 6
  • 8. Annuaire LDAP L’annuaire LDAP LDAP → Lightweight Directory Access Protocol Héritier de l’annuaire X500 (proposé par l’ISO) F standard conçu par les opérateurs télécom pour interconnecter leurs annuaires téléphoniques F X500 adapté à l’internet → LDAP (même modèle de schéma, . . . ) LDAP a été proposé en 1995 : F Standard d’annuaire au dessus de TCP/IP I Le protocole ne concerne pas le contrôle d’accès aux données de l’annuaire F version 3 actuellement (RFC 2251) F aussi RFC 2252 à 2256, RFC 2829 à 2830, RFC 2849 A. Guermouche Cours 7 : LDAP 7
  • 9. Annuaire LDAP Objectifs F fournir aux utilisateurs des informations fiables, facilement accessibles F permettre aux utilisateurs de mettre à jour eux-même leurs informations personnelles F rendre les informations accessibles de façon contrôlée F éviter la redondance d’informations : un seul annuaire pour l’ensemble des services F faciliter la gestion (administration) des postes de travail, des équipements réseau Tout ceci est fait sans remettre en cause les applications existantes A. Guermouche Cours 7 : LDAP 8
  • 10. Annuaire LDAP Concepts LDAP définit : un protocole. accéder à l’information contenue dans l’annuaire, un modèle d’information. le type des informations contenues dans l’annuaire, un modèle de nommage. comment l’information est organisée et référencée, un modèle fonctionnel. comment accéder à l’information (syntaxe des requêtes,etc. . . ), un modèle de sécurité. comment données et accès sont protégés, un modèle de duplication. comment la base est répartie entre serveurs, des API. pour développer des applications clientes, LDIF. un format d’échange de données. A. Guermouche Cours 7 : LDAP 9
  • 11. Annuaire LDAP Protocole LDAP Le protocole définit : F Comment s’établit la communication client-serveur : → commandes pour se connecter ou se déconnecter, pour rechercher, comparer, créer, modifier ou effacer des entrées. F Comment s’établit la communication serveur-serveur : → échanger leur contenu et le synchroniser (réplication service) → créer des liens permettant de relier des annuaires les uns aux autres (referral service). F Le format de transport de données : → pas l’ASCII (comme pour HTTP, SMTP. . . ) mais le Basic Encoding Rules (BER), sous une forme allégée (appelée LBER : Lightweight BER) A. Guermouche Cours 7 : LDAP 10
  • 12. Annuaire LDAP Protocole LDAP Le protocole définit (suite) : F Les mécanismes de sécurité : → méthodes de chiffrement et d’authentification → mécanismes de règles d’accès aux données. F Les opérations de base : interrogation : search, compare mise à jour : add, delete, modify, rename connexion au service : bind, unbind, abandon Client connexion et authentification recherche résultat authentification Serveur LDAP déconnexion message de résultat abandon de session A. Guermouche Cours 7 : LDAP 10
  • 13. Protocole LDAP Plan 1. Introduction 2. Annuaire LDAP 3. Protocole LDAP 4. LDAP en pratique A. Guermouche Cours 7 : LDAP 11
  • 14. Protocole LDAP Le modèle d’information Le modèle d’information définit le type des données pouvant être stockées dans l’annuaire F L’entrée (Entry) = élément de base de l’annuaire. Elle contient les informations sur un objet de l’annuaire. F Ces informations sont représentées sous la forme d’attributs décrivant les caractéristiques de l’objet. F Toute sorte de classe d’objet (réel ou abstrait) peut être représentée. F Le schéma de l’annuaire définit la liste des classes d’objets qu’il connaît. Le Directory schema est la « charte » qui donne, pour le serveur, l’ensemble des définitions relatives aux objets qu’il sait gérer. I Le schéma décrit les classes d’objets, leurs types d’attribut et leur syntaxe. I Chaque entrée de l’annuaire fait obligatoirement référence à une classe d’objet du schéma et ne doit contenir que des attributs qui sont rattachés au type d’objet en question. A. Guermouche Cours 7 : LDAP 12
  • 15. Protocole LDAP Le modèle d’information F Un attribut est défini par : I un nom, un identifiant unique (OID), mono/multi valué, une syntaxe et des règles de comparaison (matching rules), une valeur (format+taille limite), modifiable ou non F Les classes d’objet modélisent I des objets réels : Un compte UNIX (posixAccount), une organisation (o), un département (ou), un personnel (organizationPerson), une imprimante (device),. . . I ou abstraits : l’objet père de tous les autres (top),. . . F Une classe d’objet est définie par I Un nom, OID, des attributs obligatoires, des attributs optionnels, un type (structurel, auxiliaire ou abstrait) A. Guermouche Cours 7 : LDAP 13
  • 16. Protocole LDAP Le modèle d’information top person organisationalPerson inetOrgPerson organisationalUnit F Chaque objet hérite des propriétés (attributs) de l’objet dont il est le fils. F On précise la classe d’objet d’une entrée à l’aide de l’attribut objectClass. F Il faut obligatoirement indiquer la parenté de la classe d’objet en partant de l’objet top et en passant par chaque ancêtre de l’objet. A. Guermouche Cours 7 : LDAP 14
  • 17. Protocole LDAP Le modèle d’information (exemple) L’objet inetOrgPerson à la filiation suivante : objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson L’objet person a comme attributs : commonName, surname, description, seeAlso, telephoneNumber, userPassword L’objet fils organizationalPerson ajoute des attributs comme : organizationUnitName, title, postalAddress. . . L’objet petit-fils inetOrgPerson lui rajoute des attributs comme : mail, labeledURI, uid (userID), photo. . . Remarques : F Une entrée peut appartenir à un nombre non limité de classes d’objets. F Les attributs obligatoires sont la réunion des attributs obligatoires de chaque classe. A. Guermouche Cours 7 : LDAP 15
  • 18. Protocole LDAP Le modèle de nommage Il définit comment les entrées de l’annuaire sont organisées et comment elles sont référencées. Structure arborescente contenant deux catégories d’objets : les conteneurs : départ d’une nouvelle branche (nœud intermédiaire de l’arbre) F peuvent contenir des conteneurs ou des feuilles F généralement, une sous-organisation de l’organisation (zone géographique,. . . ) les feuilles : elles représentent les données (généralement les machines, les utilisateurs,. . . ) A. Guermouche Cours 7 : LDAP 16
  • 19. Protocole LDAP Le modèle de nommage Il définit comment les entrées de l’annuaire sont organisées et comment elles sont référencées. Structure arborescente contenant deux catégories d’objets : F Structure logique hiérarchique : le DIT (Directory Information Tree) F Une entrée est identifiée par un nom unique : le DN (Distinguish Name) F RDN(Relative Distinguish Name) dc=labri,dc=fr ou=Hosts cn=admin ou=People uid=toto root entry ou base DN ou=People,dc=labri,dc=fr A. Guermouche Cours 7 : LDAP 16
  • 20. Protocole LDAP Le format LDIF LDIF → LDAP Interchange Format F Standard de représentation des entrées sous format texte. F Permet de : I faire des imports/exports de la base ou d’une partie de la base I créer, ajouter, modifier, . . . un grand nombre d’entrées de manière automatisée dn: uid=toto, ou=People, dc=labri, dc=fr objectClass: top objectClass: account objectClass: posixAccount objectClass: shadowAccount uid: toto uidNumber: 44321 gidNumber: 200 homeDirectory: /home/toto cn: toto titi loginShell: /bin/bash A. Guermouche Cours 7 : LDAP 17
  • 21. Protocole LDAP Le modèle fonctionnel Il décrit le moyen d’accéder aux données (syntaxe des requêtes) et les requêtes que l’on peut leur appliquer. Rappel des opérations de consultation/mise-à-jour F opérations d’interrogation : recherche (search) et comparaison (compare) d’entrées F opérations de mise-à-jour des entrées de l’annuaire : add, delete, modify, rename Il n’y a pas d’opération de lecture d’une entrée → pour connaître le contenu d’une entrée, il est nécessaire d’écrire une requête qui pointe sur cette entrée. A. Guermouche Cours 7 : LDAP 18
  • 22. Protocole LDAP Le modèle de réplication Il définit comment dupliquer l’annuaire sur plusieurs serveurs. F améliorer le temps de réponse F être tolérant aux pannes Deux types de serveurs LDAP supplier server: fournit les données consumer server: reçoit les données du maître Possibilité de partitionner l’annuaire (éclatement sur plusieurs serveurs) F liens virtuels entre les différentes partitions (referral service) A. Guermouche Cours 7 : LDAP 19
  • 23. Protocole LDAP Le modèle de sécurité Authentification pour se connecter au service F Anonymous authentication, Root DN/passwd authentication (administrateur), User DN/passwd Contrôle de l’accès aux données F droits d’accès aux données (fonctions de l’utilisateur authentifié) F règles définies sous forme d’ACL (Access Control List) au niveau du sommet d’un sous-arbre ou d’une entrée. Chiffrement des transactions (LDAP+SSL, . . . ) A. Guermouche Cours 7 : LDAP 20
  • 24. LDAP en pratique Plan 1. Introduction 2. Annuaire LDAP 3. Protocole LDAP 4. LDAP en pratique A. Guermouche Cours 7 : LDAP 21
  • 25. LDAP en pratique Mettre en place un annuaire LDAP Il faut bien choisir les schémas F Quelles informations veut-on stocker dans l’annuaire? F Quelles sont les applications qui vont utiliser l’annuaire? Il faut réfléchir a l’organisation du DIT F impact sur la performance, les droits d’accès, . . . Puis dans un deuxième temps F gestion centralisée sur un seul serveur? F nombre de serveurs redondants? Emplacement? A. Guermouche Cours 7 : LDAP 22
  • 26. LDAP en pratique OpenLDAP F Logiciel LDAP du domaine public F le démon slapd → traite les requêtes LDAP F le démon slurpd → permet la réplication F des librairies LDAP I par exemple pour authentifier les logins via LDAP : libpamldap, libnssldap F des utilitaires : I ldapadd, ldapdelete, ldapmodify, ldapmodrdn, ldappasswd, ldapsearch A. Guermouche Cours 7 : LDAP 23
  • 27. LDAP en pratique Configuration du serveur ldap(1/2) Le fichier /etc/ldap/slapd.conf permet de configurer le démon sladp F définition des schémas utilisés include inetorgperson.schema F définition du backend (type de la base de données utilisée) backend bdb F définition de la base, de l’annuaire et de l’administrateur I le suffixe (racine de l’arbre) suffix "dc=labri,dc=fr" I l’administrateur et son mot de passe rootdn “cn=Manager,dc=labri,dc=fr” rootpw MD5x0dg9sP0uUf+NRm0MIPz7Q== I le répertoire où la base est stockée directory "/var/lib/ldap" A. Guermouche Cours 7 : LDAP 24
  • 28. LDAP en pratique Configuration du serveur ldap(1/2) Définition des ACLs (man slapd.access) # par défaut access to attrs=userPassword by dn="cn=admin,dc=com" write # l’admin by anonymous auth # droit de lecture lors du bind by self write # le propriétaire by * none access to dn.base="" by * read # L’administrateur a un accès total en écriture, tous # les autres utilisateurs peuvent tout lire. access to * by dn="cn=admin,dc=com" write by * read A. Guermouche Cours 7 : LDAP 25
  • 29. LDAP en pratique configuration du client LDAP La configuration se fait grâce au fichier /etc/ldap/ldap.conf F man ldap.conf F peut aussi se faire dans /.ldaprc F exemple de fichier ldap.conf # base par défaut à contacter pour les opérations LDAP BASE dc=labri, dc=fr # en tant que qui le client va se connecter # à la base BINDDN uid=toto,ou=People,dc=labri,dc=fr # le serveur auquel se connecter URI ldap://147.210.20.21:389/ A. Guermouche Cours 7 : LDAP 26
  • 30. LDAP en pratique Authentification Unix via LDAP F PAM (Pluggable Authentication Modules) I permet de gérer la politique d’authentification sans recompilation I pour authentifier via LDAP, il faut ajouter la ligne auth sufficient pam_ldap.so (qui signifie que l’authentification LDAP est suffisante) dans le fichier /etc/pam.d/common-auth. Il faut faire de même pour tous les autres fichiers /etc/pam.d/common-*. I Modifier éventuellement /etc/pam.d/ssh,. . . F Configurer l’accès à la base dans /etc/libnss-ldap.conf et /etc/pam_ldap.conf (voir pages man) F Indiquer dans /etc/nsswitch.conf l’ordre d’interrogation pour l’authentification → toujours laisser files en premier ! A. Guermouche Cours 7 : LDAP 27