www.supinfo.com
Copyright © SUPINFO. All rights reserved
DNS - LDAP – P2P
Votre formateur…
Titre : Professeur certifié d’Informatique et Gestion
Distinctions & expérience : Ancien chef des travaux . Enseignant de l’éducation nationale et de l’école supérieur d’informatique.
Formation : Diplôme d’ingénieur maître - Université Bordeaux I.
Contact :
Campus-Booster ID: 50566
[email protected] François HORTOLLAND
Définitions et exemples
Plan de la partie
DNS
Annuaires LDAP
Peer to peer
Voici les chapitres que nous allons aborder:
L’Internet est constitué de réseaux (dizaines de milliers)
Les réseaux sont constitués de sous-réseaux
Les sous-réseaux sont constitués de machines,
La technologie de base (TCP/IP) permet l’accès aux machines par leur adresse IP,
Il est pratiquement devenu impossible aux humains de connaître les adresses (IP) des machines auxquelles ils veulent accéder.
DNS
Le besoin
Le système DNS permet d’identifier une machine par un (des) nom(s) représentatif(s) de la machine et du (des) réseau(x) sur le(les)quel(s) elle se trouve ;
exemple :
www.centralweb.fr identifie la machine www sur le réseau centralweb.fr
Le système est mis en œuvre par une base de données distribuée au niveau mondial
Les noms sont gérés par un organisme mondial : l’interNIC et les organismes délégués : RIPE, NIC France, NIC Angleterre, etc.
DNS
Le besoin
Playe
basé sur le modèle client / serveur
le logiciel client interroge un serveur de nom; typiquement :
l’utilisateur associe un nom de domaine à une application
; exemple :
telnet m1.centralweb.fr
l’application cliente requiert la traduction du nom de domaine auprés d’un serveur de nom (DNS) : cette opération s’appelle la résolution de nom
le serveur de nom interroge d’autres serveurs de nom jusqu’à ce que l’association nom de domaine / adresse IP soit trouvée
DNS
Principe
le serveur de nom retourne l’adresse IP au logiciel client : 193.148.37.201
le logiciel client contacte le serveur (telnetd) comme si l’utilisateur avait spécifié une adresse IP : telnet
193.148.37.201
DNS
Principe
Playe
client Telnet
$ telnet m1.centralweb.fr
serveur DNS
serveur DNS
serveur DNS
DNS
Demande de résolution
m1.centralwebfr ????
Réponse 193.148.37.201
serveur Telnetd
193.148.37.201
DNS
Principe : illustration
Chaque unité de donnée dans la base DNS est indexée par un nom
Les noms constituent un chemin dans un arbre inversé appelé l’espace Nom de domaine
Organisation similaire à un système de gestion de fichiers
• Chaque noeud est identifié par un nom
L’espace Nom de domaine
DNS
Playe
Un nom de domaine est la séquence de labels depuis le noeud de l’arbre correspondant jusqu’à la racine
M1.centralweb.fr fr
centralweb .
m1
Deux noeuds fils ne peuvent avoir le même nom ==>
unicité d’un nom de domaine au niveau mondial Les noms de domaine
DNS
Un domaine est un sous-arbre de l’espace nom de domaine
Domaine complet Domaine fr
Domaine centralweb fr
inria centralweb
m1 noeud m1.centralweb.fr
Des noeuds peuvent avoir les mêmes noms dans des
domaines différents : Le domaine
DNS
Playe
Un domaine est un sous-arbre de l’espace Nom de domaine
Un domaine est constitué de noms de domaine et d’ autres domaines
Un domaine intérieur à un autre domaine est appelé un sous domaine
Exemple : le domaine fr comprend le noeud fr et tous les noeuds contenus dans tous les sous-domaines de fr
Concepts, résumé et extension
DNS
Un nom de domaine est un index dans la base DNS; exemple :
m1.centralweb.fr pointe vers une adresse IP
centralweb.fr pointe vers des informations de routage de mail et éventuellement des informations de sous-domaines
fr pointe vers des informations structurelles de sous-domaines
Les machines sont reliées entre elles dans un même domaine logiquement et non par adressage. Exemple : 10 machines d’un même domaine appartiennent à 10 réseaux différents et Concepts, résumé et extension
DNS
Playe
Le premier niveau de l’espace DNS fait exception à la règle :
7 domaines racines prédéfinis :
com : organisations commerciales ; ibm.com
edu : organisations concernant l’éducation ; mit.edu
gov : organisations gouvernementales ; nsf.gov
mil : organisations militaires ; army.mil
net : organisations réseau Internet ; worldnet.net
org : organisations non commerciales ; eff.org
int : organisations internationales ; nato.int
arpa : domaine réservé à la résolution de nom inversée
organisations nationales : fr, uk, de, it, us, au, ca, se, etc.
Domaines racine
DNS
Le système DNS impose peu de règles de nommage :
noms < 63 caractères
majuscules et minuscules non significatives
pas de signification imposée pour les labels Domaines racine
DNS
Playe
Nouveaux domaines racine en cours de normalisation:
firm, store, web, arts, rec, info, nom
Certaines organisations nationales peuvent être gérées administrativement par un consortium : RIPE
Les divisions en sous-domaines existent dans certains pays et pas dans d’autres :
edu.au, com.au, etc.
co.uk, ac.uk, etc.
ca.ab, ca.on, ca.gb
pas de division du .fr Domaines racine
DNS
vers le plus significatif
A l’inverse de l’adressage IP la partie la plus significative si situe à gauche de la syntaxe :
sun2.ethernet1.centralweb.fr 193.148.37.201
vers le plus significatif
sun2. ethernet1. centralweb.fr
domaine français (.fr)
domaine de l’organisation CentralWeb sous-domaine CentralWeb
Lecture des noms de domaine
DNS
Playe
Le système DNS est entièrement distribué au niveau planétaire
; Le mécanisme sous-jacent est la délégation de domaine
A tout domaine est associé une responsabilité administrative
Une organisation responsable d’un domaine peut
découper le domaine en sous-domaines
déléguer les sous-domaines à d’autres organisations :
qui deviennent à leur tour responsables du (des) sous- domaine(s) qui leurs sont délégué(s)
peuvent, à leur tour, déléguer des sous-domaines des sous-domaines qu’elles gèrent
Délégation
DNS
Le domaine parent contient alors seulement un pointeur vers le sous-domaine délégué; exemple :
centralweb.fr est délégué à l’organisation CentralWeb
La société CentralWeb gère donc les données propres à ce domaine.
centralweb.fr (en théorie seulement) pourrait être géré par l’organisation responsable du domaine .fr (NIC France) qui gèrerait alors les données de centralweb.fr
Délégation
DNS
F. Playe
Les logiciels qui gèrent les données de l’espace nom de domaine sont appelés des serveurs de nom (name servers)
Les serveurs de nom enregistrent les données propres à une partie de l’espace nom de domaine dans une zone.
Le serveur de nom à autorité administrative sur cette zone.
Un serveur de nom peut avoir autorité sur plusieurs zone.
Une zone contient les informations d’un domaine sauf celles qui sont déléguées.
fr bc ab
c a
on q
b domaine
zone
Les serveurs de noms
DNS
Serveur de nom primaire : maintient la base de données de la zone dont il a l’autorité administrative
Serveur de nom secondaire : obtient les données de la
zone via un autre serveur de nom qui a également l’autorité administrative
interroge périodiquement le serveur de nom primaire et met à jour les données
Il y a un serveur primaire et généralement plusieurs secondaires
La redondance permet la défaillance éventuelle du primaire et du (des) secondaire(s)
Un serveur de nom peut être primaire pour une (des)
DNS
Types de serveurs de nom
Playe
Les «resolvers» sont les processus clients qui contactent les serveurs de nom
Fonctionnement :
contacte un name serveur (dont l’ (les) adresse(s) est (sont) configurées sur la machine exécutant ce resolver)
interprète les réponses
retourne l’information au logiciel appelant
gestion de cache (dépend de la mise en œuvre) Resolver
DNS
Le serveur de nom interroge également d’autres serveurs de nom, lorsqu’il n’a pas autorité sur la zone requise
(fonctionnement itératif ou récursif)
Si le serveur de nom est en dehors du domaine requis, il peut être amené à contacter un serveur racine ( ne pas confondre avec un domaine racine)
Resolver
DNS
F. Playe
Les serveurs racine connaissent les serveurs de nom ayant autorité sur tous les domaines racine
Les serveurs racine connaissent au moins les serveurs de noms pouvant résoudre le premier niveau (.com, .edu, .fr, etc.)
Pierre angulaire du système DNS : si les serveurs racine sont inoperationnels ==> plus de communication sur l’Internet
==> multiplicité des serveurs racines
actuellement jusqu’à 14 éparpillés sur la planète
chaque serveur racine reçoit environ 100000 requêtes / heure
Exemple de résolution : m1.centralweb.fr à partir de ....edu
resolver
Ns ....edu
ROOT
NS fr NS centralweb
NS
m1.centralweb.fr m1.centralweb.fr m1.centralweb.fr
m1.centralweb.fr
.fr NS centralweb.fr NS 193.48.184.201
193.148.37.201
Serveurs racine
DNS
DNS
Playe
Consiste a obtenir le nom de domaine à partir de l’adresse IP
pour faciliter la compréhension des humains
pour des raisons de sécurité
Plus délicate que nom -> IP car le système DNS est organisé pour la résolution de nom ==> recherche exhaustive ???
DNS
Resolution inverse
Solution : utiliser les adresses comme des noms :
le domaine in-addr.arpa
les noms des noeuds correspondent aux octets de l’adresse IP en ordre inverse
le domaine in-addr.arpa a 256 sous-domaines,
chacun de ces sous-domaines a 256 sous-domaines,
chacun de ces sous-domaines a, à son tour, 256 sous-domaines,
le 4ème niveau correspond à un NS connaissant le nom de domaine associé à cette adresse IP
Exemple du DNS
Resolution inverse
Playe
.
arpa in-addr
0 193 255
255
0 148
255
0 37
255
0 201
m1.centralweb.fr
DNS
Resolution inverse
le nom de domaine associé à la résolution inverse est noté selon l’adresse IP inversée :
car la résolution d’un nom de domaine se fait de droite à gauche
exemple : 210.37.148.193.in-addr.arpa
DNS
Resolution inverse
Playe
résolution :
in-addr.arpa -> A.ROOT-SERVER.NET
193.in-addr.arpa -> NS.RIPE.NET
148. 193.in-addr.arpa -> NS.RIPE.NET
37.148. 193.in-addr.arpa -> first.tvt.fr
Organismes gérant les classes
Classe A et B -> internic US.
Classe C
– 192 : internic
– 193, 194, 195 RIPE avec délégations nationales
DNS
Resolution inverse
Les données d’un serveur DNS sont enregistrées dans une base identifiée par les noms de domaine correspondants;
exemple :
db. centralweb.fr, centralweb.fr.dns
db.193.148.37, 193.148.37.dns
db.127.0.0, 127.0.0.dns
db.cache, cache.dns
DNS
Enregistrements d’un serveur de nom
Playe
Types d’enregistrements
SOA: décrit l’autorité administrative,
NS : liste de serveurs de nom pour ce domaine
A : correspondance nom -> adresse
PTR : correspondance adresse -> nom
CNAME : alias
TXT : texte
HINFO : description machine
DNS
Enregistrements d’un serveur de nom
SOA = Start of Authority
Spécifie que ce serveur de nom a autorité sur le domaine
;
; Database file centralweb.fr.dns for centralweb.fr zone.
;
@ IN SOA ns.centralweb.fr.
fplaye.centralweb.fr. ( 64 ; serial number
3600 ; refresh 600 ; retry 86400 ; expire
3600 ) ; minimum TTL
DNS
Enregistrement : SOA
Playe
spécifie les serveurs de nom ayant autorité sur ce domaine
;
; Zone NS records
;
centralweb.fr IN NS ns.
@ IN NS 194.172.2.2
@ IN NS ntserver.
DNS
Enregistrement : NS
hub3_ouest IN A 193.148.20.16 hub5_ouest IN A 193.148.20.17 intranet IN A 193.148.80.2 ism IN A 193.148.20.15 labo-reseau IN A 193.148.80.3 MODEM1 IN A 193.148.80.4 MODEM2 IN A 193.148.80.5 NETBUILDER_SUN IN A 193.148.20.1 next IN A 193.48.184.3 Ntserv IN A 193.148.60.2 ROUTEUR_MDT IN A 193.48.184.250 sunserv IN A 193.148.20.2 sunstation1 IN A 193.148.20.3
canonical names
A pour ipV4 AAAA ipV6
DNS
Enregistrements : Adresses
Playe
ftp IN CNAME intranet gopher IN CNAME intranet mail IN CNAME intranet www IN CNAME intranet
aliases of canonical names
DNS
Enregistrements : Alias
10.20.148.193.in-addr IN PTR sunstation8.centralweb.fr.
11.20.148.193.in-addr IN PTR sunstation9.centralweb.fr.
12.20.148.193.in-addr IN PTR sunstation10.centralweb.fr.
13.20.148.193.in-addr IN PTR ultra1.centralweb.fr.
14.20.148.193.in-addr IN PTR suntx1.centralweb.fr.
2.20.148.193.in-addr IN PTR sunserv.centralweb.fr.
3.20.148.193.in-addr IN PTR sunstation1.centralweb.fr.
4.20.148.193.in-addr IN PTR sunstation2.centralweb.fr.
2.80.148.193.in-addr IN PTR intranet.centralweb.fr.
3.80.148.193.in-addr IN PTR labo-reseau.centralweb.fr.
4.80.148.193.in-addr IN PTR MODEM1.centralweb.fr.
5.80.148.193.in-addr IN PTR MODEM2.centralweb.fr.
Canonical names
DNS
Enregistrements : PTR
Playe
MX = Mail eXchanger
Permet l’adressage Email sur la base du nom de domaine plutot que sur l’adresse du (des) serveur(s) de mail :
[email protected] plutot que [email protected]
permet à l’émetteur d’ignorer la machine serveur de mail
permet le deplacement du serveur de mail vers une autre machine
permet la gestion de plusieurs serveurs de mail avec priorité dans l’ordre de consultation des serveurs
DNS
Enregistrements : MX
L’enregistrement MX est consulté par les mailers (SMTP client)
Tient compte des priorités; exemple
centralweb.fr IN MX 8 sun1.centralweb.fr
centralweb.fr IN MX 99 next.centralweb.fr
DNS
Enregistrements : MX
F. Playe
Cache file:
. IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. IN A 198.41.0.4 . IN NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. IN A 128.9.0.107 . IN NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. IN A 192.33.4.12 . IN NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. IN A 128.8.10.90 . IN NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. IN A 192.203.230.10 . IN NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. IN A 39.13.229.241 . IN NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. IN A 192.112.36.4 . IN NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. IN A 128.63.2.53 . IN NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. IN A 192.36.148.17
DNS
Données cachée : les serveurs racines
Une machine peut gérer plusieurs domaines (zones) sur un même serveur DNS; lorsque ces domaines sont associés à des adresses faisant déjà partie d’un autre domaine, ils sont dits virtuels.
exemple
DNS 193.148.37.2
domaine centralweb.fr
domaine dummy.fr
domaine bidon.fr
DNS
Domaines virtuels
Playe
Utiliser un serveur de nom
machine elle-même serveur de nom : 127.0.0.1
machine non serveur de nom : spécfier un ou plusieurs serveur de nom : adresses IP
obligatoirement. éventuellement son domaine.
sous UNIX : fichier /etc/resolv
sous NT, W95 : administration TCP/IP
DNS
Utilisation du système DNS
Administrer un serveur de nom
plateformes UNIX, NT
mémoire importante : mini 16/32 MB pour le service.
impératif : ne pas swapper
opérationnelle 24/24
laisser passer le port 53 sur UDP et TCP
Debugging : Nslookup
DNS
Utilisation du système DNS
Exemples d'annuaires électroniques
DNS
/etc/passwd
whois
whois++
NIS
PH
X.500
Annuaires LDAP
Qualité d'un bon annuaire
Qualité des informations : sources fiables, mise à jour rapides
Informations protégées
Accessible par les applications
Gestion en partie automatisée
Rapide en lecture
Fiable et disponible
Annuaires LDAP
Historique X500
Projet ISO à vocation d'annuaire global et distribué
racine d'un annuaire à réserver
modèle de donnés objet
ne s'appuie par sur TCP/IP
Première version en 1988, grosse révision en 1993
Pas d'essor : lourd, complexe...
Annuaires LDAP
Historique LDAP
LDAP à l'origine un frontal à x500 sur TCP/IP
Lightweight DAP
Directory Access Protocol de X.500
Version 3 à ce jour
v1 : RFC 1487 « X.500 Lightweight Directory Access Protocol. », juillet 1993
v2 : RFC 1777, « Lightweight Directory Access Protocol. », mars 1995
v3 : RFC 2251-2256, déc. 1997 ; RFC 2228-2830,
Annuaires LDAP
Serveur historique
« standalone LDAP » en 1995 à l'université de Michigan
Aura pour héritiers :
OpenLDAP
Serveur Netscape (?)
Annuaires LDAP
LDAP définit
Un format et un protocole de communication
Un modèle de données
Un modèle de nommage
Un modèle fonctionnel
LDAP définit presque...
Un modèle de sécurité
Un modèle de réplication
Annuaires LDAP
Données transportées en utilisant
ASN.1
BER (LBER)
Protocole de communication client-serveur
Une connexion permet de faire passer plusieurs requêtes
Protocole de communication serveur-serveur
« refferal » : renvoi sur un autre annuaire
Annuaires LDAP
LDAP définit
Un format et un protocole de communication
Un modèle de données
Un modèle de nommage
Un modèle fonctionnel
LDAP définit presque...
Un modèle de sécurité
Un modèle de réplication
Annuaires LDAP
Dans l'annuaire, des entrées
Le modèle de données vise à définir la nature des entrées que l'on va trouver dans l'annuaire
Les entrées :
sont des objets
appartiennent à des classes
on les nomme : Directory Service Entry (DSE)
Annuaires LDAP
Une classe
est constituées d'attributs
obligatoires ou optionnels
est typée
structurelle, auxiliaire ou abstraite
s'inscrit dans un arbre d'héritage de classes
LDAP définit des classes d'après X.500
On peut en fabriquer de nouvelles !
Annuaires LDAP
Arbre d'héritage des classes des RFC 2256 et 2798
top
alias
country
locality
organization
organizationalUnit
person
organizationalPerson
inetOrgPerson
residentialPerson
organizational role
groupOfName
...
Annuaires LDAP
Exemple de classe
inetorgPerson
( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson'
SUP organizationalPerson STRUCTURAL
MAY (
audio $ businessCategory $ carLicense $ departmentNumber $
displayName $ employeeNumber $ employeeType $ givenName $
homePhone $ homePostalAddress $ initials $ jpegPhoto
$ labeledURI $ mail $ manager $ mobile $ o $ pager $ photo $ roomNumber $ secretary $ uid $
userCertificate $
x500uniqueIdentifier $ preferredLanguage $ userSMIMECertificate $ userPKCS12
Annuaires LDAP
Type d'attribut
Pour définir un type d'attribut, il nous faut :
décider s'il est mono ou multi-valué
lui donner une syntaxe prédéfinie
le munir de règles de comparaison
éventuellement le faire hériter d'un autre type d'attribut
Deux familles d'attributs
attributs utilisateurs
attributs opérationnels
Annuaires LDAP
Exemple
attributetype ( 1.3.6.1.4.1.12274.1.1.1.5 NAME 'aglnDate'
DESC 'Date AGALAN format YYYYMMDDHHMMSSZ ou YYYYMMDDZ'
EQUALITY generalizedTimeMatch
ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
attributetype ( 1.3.6.1.4.1.12274.1.1.1.6 NAME 'aglnAdmissionDate'
DESC 'Date de declaration de l entree' SUP aglnDate
Annuaires LDAP
OID
Tous ces objets (classes attributs, syntaxes...) sont identifiés de façon unique par un OID (« Object
Identifier ») géré par l'IANA
On peut réserver un numéro dans une branche particulière
http://www.iana.org/assignments/enterprise-numbers
Exemple
1.3.6.1.4.1.7140
INPG, Institut National Polytechnique de Grenoble
Annuaires LDAP
Schéma
L'ensemble de ces objets constituent le schéma que connaît le serveur :
Classes
Types d'attribut
Syntaxes
etc.
Annuaires LDAP
Annuaires LDAP
Exemple d'entrée
uid=neigeb,ou=people,ou=inpg,dc=agalan,dc=org objectClass: top
objectClass: person
objectClass: organizationalPerson objectClass: inetOrgPerson
objectClass: aglnPerson objectClass: shadowAccount objectClass: posixAccount givenName: Blanche
sn: Neige
aglnPatronymicName: Neige cn: Blanche Neige
aglnSearchCommonName: Blanche.Neige aglnDateOfBirth: 193712210000Z
ou: INPG
aglnOrganizationUid: harp-002 employeeType: P
aglnAdmissionDate: 200211150000Z aglnExpiryDate: 200212310000Z aglnPersonStatus: OFFI
aglnAuthenticationDate: 200211150000Z userPassword:: ...
aglnPassword: ...
aglnMailStatus: normal uid: neigeb
homeDirectory: neigeb uidNumber: 270838 gidNumber: 270838
mail: [email protected]
LDAP définit
Un format et un protocole de communication
Un modèle de données
Un modèle de nommage
Un modèle fonctionnel
LDAP définit presque...
Un modèle de sécurité
Un modèle de réplication
Annuaires LDAP
Modèle de nommage
Ranger les entrées dans une structure hiérarchique
Directory Information Tree (DIT)
Les nommer de façon distincte
RDN
DN
Annuaires LDAP
Directory Information Tree
Dc=agalan,dc=org
Ou=
upmf
Ou=
machines Ou=
connecteurs
Uid=
kassovim Uid=
tautoua cn=
hmg-1A Ou=
people Ou=
groups Ou=
inpg Ou=
ujf
esisar-3A-cn=
Ou=
...
Présence d'un suffixe
(« Base DN »)
Les nœuds sont des objets
Annuaires LDAP
RDN & DN
RDN (Relative Distinguished Name)
[email protected], uid=tautoua, etc.
Attention : la valeur de l'attribut utilisé au RDN et le RDN lui-même ne sont pas synchronisés
DN (Distinguished Name)
RDN + chemin dans l'arborescence en remontant
attribut du RDN à choisir pour que tout DN soit unique (Penser aux déplacements éventuels dans le DIT !)
uid=tautoua,ou=people,ou=inpg,dc=agalan,dc=org
Annuaires LDAP
Deux objets particuliers
objet « alias »
pointeur sur une autre entrée (DN)
objet « referral »
pointe sur un autre serveur (URL LDAP)
Annuaires LDAP
LDAP définit
Un format et un protocole de communication
Un modèle de données
Un modèle de nommage
Un modèle fonctionnel
LDAP définit presque...
Un modèle de sécurité
Un modèle de réplication
Annuaires LDAP
Modèle fonctionnel
Définit les opérations que l'on peut effectuer sur l'annuaire :
Connexion au serveur
Déconnexion du serveur
Recherche d'entrées
Modification d'une entrée
Abandon des opérations en cours
« Extended Operations »
« Control extensions »
Annuaires LDAP
Opérations
Connexion au serveur (« bind »)
Paramètres de connexion :
Version de LDAP demandé (v2, v3)
DN sous lequel on veut se connecter
Type d'authentification
Déconnexion du serveur (« unbind »)
Annuaires LDAP
Opérations
Recherche d'entrées
Paramètres de recherche
base object (DN)
scope
derefAliases
sizeLimit
timeLimit
typesOnly
filter
Annuaires LDAP
« Scope » de recherche
Dc=agalan,dc=org
Ou=
upmf
Ou=
machines Ou=
connecteurs
Uid=
kassovim Uid=
tautoua cn=
hmg-1A Ou=
people Ou=
groups Ou=
inpg Ou=
ujf
cn=
esisar-3A- TP-GÉlec-02
Ou=
...
Scope = base
Annuaires LDAP
« Scope » de recherche
Scope = onelevel
Dc=agalan,dc=org
Ou=
upmf
Ou=
machines Ou=
connecteurs
Uid=
kassovim Uid=
tautoua cn=
hmg-1A Ou=
people Ou=
groups Ou=
inpg Ou=
ujf
cn=
esisar-3A- Ou=
...
Annuaires LDAP
« Scope » de recherche
Scope = sub
Dc=agalan,dc=org
Ou=
upmf
Ou=
machines Ou=
connecteurs
Uid=
kassovim Uid=
tautoua cn=
hmg-1A Ou=
people Ou=
groups Ou=
inpg Ou=
ujf
cn=
esisar-3A- TP-GÉlec-02
Ou=
...
Annuaires LDAP
Filtres de recherche
Type de recherche d'entrées :
égalité, sous-chaîne, approximation, plus grand/petit ou égal, présence...
Opérateurs de combinaison des filtres
&, |, !
Exemple
(&(sn=Neige)(mail=*grenet*))
Ne pas oublier de positionner des index !
Annuaires LDAP
Opérations
Recherche particulière : informations sur le serveur
filtre « (objectClass=*) », DN null
Informations récupérées :
namingContexts
subschemaSubentry
altServer
supportedExtension
supportedControl
supportedSASLMechanisms
supportedLDAPVersion
Annuaires LDAP
Opérations
Modification d'une entrée
Paramètres de la modification
Object à modifier (DN)
Liste d'opérations sur les attributs
• type d'opération
• ajout
• suppression
• remplacement
• type d'attribut
Annuaires LDAP
Opérations
Ajout d'une entrée
Paramètres de l'ajout :
DN souhaité pour l'entrée
Liste d'attributs et de leurs valeurs
Suppression d'une entrée
Seul paramètre : le DN de l'entrée à supprimer
Ne supprime que les feuilles du DIT
Annuaires LDAP
Opérations
Modification du DN d'une entrée
Déplacement de l'entrée dans le DIT
N'est pas faite pour le déplacement entre serveurs
Comparaison
Paramètres de la comparaison :
Entrée à comparer (DN)
Liste d'atributs avec leurs valeurs
OK si les attributs sont de valeurs comparables
Annuaires LDAP
Opérations
Abandon
Il s'agit d'abandonner les opérations en cours
« Extended Operations »
Permettent des opérations prévues ou non dans les RFC
Chaque opération doit être enregistrée sous un OID
Exemple :
TLS avec opération « start TLS »
Annuaires LDAP
LDAP définit
Un format et un protocole de communication
Un modèle de données
Un modèle de nommage
Un modèle fonctionnel
LDAP définit presque...
Un modèle de sécurité
Un modèle de réplication
Annuaires LDAP
Modèle de sécurité
Authentification & chiffrement des transactions
Authentification lors de la connexion au serveur
Types de connexion
Anonyme
rootDN (mode administrateur)
DN + mot de passe en clair
Mot de passe ou certificats (clefs asymétriques) sur SSL/TLS
• via opération étendues
Mécanisme externe via SASL
Annuaires LDAP
ACL
ACL pas définies par le protocole
Peut différer d'un serveur à l'autre
Forme générale (finesse attribut) :
<access directive> ::= access to <what>
[by <who> <access> <control>]+
RFC 2820 « Access Control Requirements for LDAP. », mai 2000
statut INFORMATIONAL seulement
Annuaires LDAP
Exemples simples :
access to * by * read
access to * by self write
by anonymous auth by * read
by * read
Annuaires LDAP
LDAP définit
Un format et un protocole de communication
Un modèle de données
Un modèle de nommage
Un modèle fonctionnel
LDAP définit presque...
Un modèle de sécurité
Un modèle de réplication
Annuaires LDAP
Modèle de réplication
Pas de standard...
Groupe de travail IETF LDUP
Pour répliquer l'annuaire entier ou une branche du DIT seulement
Réplication au fil de l'eau ou non
Selon serveurs, réplication
single master
multiple master
cascading replication
Annuaires LDAP
LDIF
LDAP Data Interchange Format (RFC2849)
Représentation ASCII & Base64 des entrées
Mode import
#comment
dn: <distinguished name>
attribute type:<attribute value ASCII>
attribute type::<attribute value BASE64>
Mode modification
dn: <DN>
changetype identifier (opération sur l'entrée)
change operation identifier (opération sur attributs) list of attributes
-change operation identifier
Annuaires LDAP
LDIF : exemple
# Bjorn's Entry
dn: cn=Bjorn J Jensen, dc=example, dc=com cn: Bjorn J Jensen
cn: Bjorn Jensen
objectClass: person sn: Jensen
# Base64 encoded JPEG photo jpegPhoto:: /
9j/4AAQSkZJRgABAAAAAQABAAD/2wBDABALD
A4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdAS FxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESE hgVG
Annuaires LDAP
# Modify an entry: add an additional value to the postaladdress
# attribute, completely delete the description attribute,
# replace the telephonenumber attribute with two values,
# and delete a specific value from the facsimiletelephonenumber
# attribute
#dn: cn=Paula Jensen, ou=Product Development, dc=airius, dc=com changetype: modify
add: postaladdress
postaladdress: 123 Anystreet $ Sunnyvale, CA $ 94086 -delete: description
-
replace: telephonenumber
telephonenumber: +1 408 555 1234 telephonenumber: +1 408 555 5678 -
delete: facsimiletelephonenumber
facsimiletelephonenumber: +1 408 555 9876
Annuaires LDAP
LDIF : exemple
Serveurs
eDirectory
iPlanet
OpenLDAP
...
Annuaires LDAP
Avec tout ces éléments...
Quels choix effectuer ?
Quel schéma ?
Utiliser les classes existantes comme bases pour en créer de nouvelles
Quel DIT ?
Le plus plat possible selon RFC 1617
...
Garder à l'esprit que les choix techniques ne résolvent pas
Annuaires LDAP
Quatre architectures I) Client/Serveur
Peer to peer
1. Requête au serveur
2. Envoi du fichier
musical de la part
du serveur
II) Modèle hybride centralisé (à la Napster)
Peer to peer
1.Connexion au serveur envoie de la base de
registre
2.Envoi d’une requête au serveur
3.Réponse sous forme de liste de clients possédant le fichier
4.Requête et
téléchargement du fichier depuis un client
Tour
2 1
1 1
1
3
4
4 ? C
B
A
D
III) Modèle hybride décentralisé (à la eDonkey)
Peer to peer
1. Connexion au serveur pour envoyer de la base de registre 2. a) Nouveau serveur
b) Validation
c) Mise à jour des clients
3. Connexion au nouveau serveur 4. Requête au nouveau serveur et
sa réponse
5. Téléchargement
4a4b 2b 5
B D
A C
1 3
1
Tour
X
Tour
Y 3
1 1
2a
5
2c 2c
2b
2c
Le voisinage
Peer to peer
Connexion entre serveurs Connexion à un serveur
Client Serveur
« Zone autour d’une machine (client ou serveur) dont la distance
informatique est la plus petite possible »
Exemple ci-contre:
- Trois voisinages autour d’un serveur
IV) Modèle Peer-to-Peer pur (Gnutella)
Peer to peer
1. Envoi de requête sous forme de broadcast
2. Réponse en remontant le long du chemin
3. Téléchargement
1 2
1
2
3
3
?
?
OK
OK
E C
B
A D
1 ?
Peer to peer
Définition d’une clique
« Une clique est un ensemble d’ordinateurs
connectés directement entre eux ne
nécessitant aucun serveur »
Exemple ci-contre:
Une clique parfaite à huit
Peer to peer
!
Nouveau concept: super-peer!
Exemple: Morpheus
Peer to peer
Avantages Inconvénients
a) Hybride centralisé
b) Hybride décentralisé
c) Peer-to-Peer pur
Index centralisé Utilisateurs inscrits
Un point d’entrée Obsolescence Index centralisé Sous-réseau touché
Obsolescence Toujours un point
d’entrée
Scalabilité remise en question…
Recherches inarrêtables
« Justice safe »
Recherches lentes
Peer to peer
Quelques acteurs majeurs a) Gnutella (4. File-Sharing)
TTL=7-1
TTL=6-1
TTL=5-1
Jusqu'à TTL = 0
Naissance: mars 2000
Mort: car jugé sans intérêt
But: échanger des recettes de cuisine
Re-naissance: par « reverse engineering » Nouveau but: TOUT échanger
Nouveau statut: devient un protocole Architecture: P2P pur utilisant un TTL
Peer to peer
Avantages, inconvénients et répercussions
Impossible à arrêter juridiquement
Glissement de la problématique
Nouvelles « victimes »
Problèmes de sécurité
Stopper ?
« Eteindre » Internet
Bloquer le protocole ?
Virus envers les applications Gnutella ?
But: monter un communauté de petit appareils sans forme de
planification, d’installation ou d’intervention humaine
Particularités: Mobilité totale
(changement de voisinage aisé), portabilité, sécurité.
Trois protocoles: dicovery, join-in et lookup
Peer to peer
b) Jini (3.1 Devices as Peers)
Peer to peer
c) Entropia (1. Distributed Computation)
Idée: utiliser le temps de calcul inutilisé des PCs (95%)
Principe: fractionnement du travail en sous-travaux distribués par un serveur aux clients qui en font la demande
Argument de vente: plein retour sur investissements en infrastructures IT
Projets: de type humanitaires, mais cachent ceux commerciaux
Pas un problème nouveau: cf. architectures parallèles et massivement parallèles
Justification P2P: perte du contrôle du périmètre de travail