L'annuaire LDAP
| Précédent : ACL | Sommaire : Table des matières | Suivant : Réplication d'annuaires |
Sommaire |
Généralités
L'annuaire LDAP est un standard d'annuaire qui permet l'interopérabilité entre différents services, par exemple, entre un serveur de communication, le LCS ou Slis et un serveur de fichier comme SambaEdu3.
Le protocole LDAP est basé sur un modèle client-serveur. Les serveurs LDAP fournissent le service d'annuaire et les clients LDAP utilisent le service d'annuaire pour accéder aux données.
Un annuaire est formé par plusieurs entrées ou enregistrements contenant des informations. Les informations sont stockées dans les différents champs de chaque enregistrement. Chaque champ contient un type d'information spécifique. Par exemple, ceux servant à enregistrer une personne peuvent être le nom, le prénom, un groupe d'appartenance comme une classe, etc...
L'enregistrement pour une personne peut se faire ainsi :
cn: Paul Jones givenName :Paul
les attributs utilisés sont cn pour "common name", c'est-à-dire le nom utilisé pour nommer la personne (généralement Nom et Prénom), givenname pour le prénom.
Un attribut peut avoir plusieurs valeurs. Une personne peut donc avoir deux numéros de téléphone ou deux "common name" (le nom et le prénom utilisés couramment puis le diminutif en deuxième cn ). Ceci donnerait un enregistrement du type :
cn: Paul Jones cn: Paulot givenName: Paul
Les attributs peuvent, bien sûr, contenir des données autres comme une adresse postale ou électronique ainsi que des photos au format JPEG ou la voix d'une personne enregistrée dans un fichier audio, etc...
Structure de l'importation SCONET
Dans un annuaire, les données sont rangées selon une hiérarchie en arbre (tree hierarchy). En haut de cette hiérarchie, se trouve la racine et les branches de l'arbre permettent d'accéder aux enregistrements de l'annuaire.
La racine :
- Il existe deux types de nommage de racine. L'un est basé sur une répartition géographique des informations. On trouvera ainsi à la racine de l'arbre d'abord le pays (champ c) puis la société ou l'organisation, elles mêmes éventuellement divisées en unités organisationnelles plus petites.
- On peut aussi trouver un autre type de nommage basé sur un service de noms compatible avec les DNS. Dans ce cas, la racine est repérée par un nom de domaine.
Exemple: dc=se3pdc, dc=jverne, dc=lyc14, dc=ac-caen, dc=fr pour le domaine se3pdc.jverne.lyc14@ac-caen.fr
C'est ce type de dénomination qui est employé dans le cas du serveur Se3. Mais dans le cadre de cet exemple, nous utiliserons le domaine dc=knoppix.
Les branches
L'arbre de l'annuaire LDAP de Se3 comprend 5 branches de type OU (Organization Unit) :
====la Branche People==== dans laquelle tous les membres de l'annuaire(élèves, enseignants, administratifs) sont répertoriés.
Exemple d'enregistrement d'un utilisateur dans l'annuaire LDAP :
dn: uid=paul.jones,ou=People,dc=Knoppix
uid: Paul.Jones
cn: Paul jones
givenName: paul
sn: Jones
mail: paul.jones@demo.net
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
objectClass: person
objectClass: inetOrgPerson
objectClass: sambaAccount
loginShell: /bin/true
uidNumber: 1002
gidNumber: 1001
employeeNumber: 20809
homeDirectory: /home/paul.jones
userPassword: {crypt}ZKg.PZWDyw92E
gecos: 19720515,F,N
rid: 3004
primaryGroupID: 3003
lmPassword: 06DF8E2B75D1CBD69C5014AE4718A7EE
ntPassword: C456457706A391929C0BE84FB5DC8584
pwdMustChange: 2147483647
acctFlags: [U ]
====La branche Groups==== où l'on trouve les groupes élèves, profs, administratifs, classes, cours, équipes pédagogiques et matières.
- Le groupe "classe" répertorie les élèves d'une classe. C'est un groupe de type "posixgroup".
Exemple d'un groupe classe :
dn: cn=Classe_1GMAB,ou=Groups,dc=Knoppix
objectClass: top
objectClass: posixGroup
cn: Classe_1GMAB
gidNumber: 1052
description: 1STI ET ADAP GM
memberUid: christophe.martin
memberUid: julien.durand
memberUid: jennifer.feugueray
memberUid: erwan.delaune
memberUid: marlène.gautier
memberUid: ...............
- Le groupe "cours" répertorie les élèves qui assiste à ce cours ainsi que l'enseignant qui le dispense. Les élèves peuvent provenir de classes différentes. C'est un groupe de type "posixgroup".
- Le groupe "équipe pédagogique" recense l'ensemble des enseignants intervenant dans une classe donnée. C'est un groupe de type "groupOfNames".
Exemple d'un groupe "équipe pédagogique" :
dn: cn=Equipe_1GMAB,ou=Groups,dc=Knoppix
objectClass: top
objectClass: groupOfNames
cn: Equipe_1GMAB
description: 1STI ET ADAP GM
owner: uid=jean-paul.garnier,ou=People,dc=Knoppix
member: uid=paul.jones,ou=People,dc=Knoppix
member: uid=alain.deveu,ou=People,dc=Knoppix
member: uid=nathalie.robert,ou=People,dc=Knoppix
member: uid=annie.lemaire,ou=People,dc=Knoppix
member: uid=michel.rutot,ou=People,dc=Knoppix
member: uid=jean.boutier,ou=People,dc=Knoppix
member: uid=mickael.giraud,ou=People,dc=Knoppix
Le "owner" du groupe est le professeur principal de la classe 1GMAB. Les autres membres de ce groupe sont les enseignants de cette classe.
- Le groupe "matières" On trouve dans le groupe "matières" l'ensemble des professeurs qui enseignent la même discipline au sein de l'établissement. C'est un groupe de type "groupOfNames".
- La branche Computers répertoriant toutes les machines du domaine se3 :
dn: ou=Computers,dc=knoppix
objectClass: organizationalUnit
ou: Computers
Exemple d'un poste doté d'un système d'exploitation XP :
Chaque machine dotée d'un système d'exploitation XP doit posséder un compte et est munie d'un uid se terminant par le signe $.
dn: uid=mineoutxp$,ou=Computers,dc=knoppix
uidNumber: 1002
gidNumber: 1000
homeDirectory: /dev/null
loginShell: /bin/false
objectClass: top
objectClass: posixAccount
objectClass: sambaAccount
uid: mineoutxp$
pwdLastSet: 1049885396
logonTime: 0
logoffTime: 0
kickoffTime: 0
pwdCanChange: 0
pwdMustChange: 0
displayName: MINEOUTXP$
cn: MINEOUTXP$
description: Computer
rid: 3004
primaryGroupID: 3001
lmPassword: 2A03C65266C8D8F0F5EE6BB1337ED681
ntPassword: 2A03C65266C8D8F0F5EE6BB1337ED681
acctFlags: [W ]
Lorsque qu'une machine s'est connectée sur le domaine, l'adresse IP attribuée est renseignée dans l'annuaire de la manière suivante :
dn: cn=mineoutxp,ou=Computers,dc=knoppix
cn: mineoutxp
objectClass: top
objectClass: ipHost
objectClass: ieee802Device
ipHostNumber: 10.1.0.6
Ceci se vérifie pour toutes les machines :
dn: cn=poste_103,ou=Computers,dc=knoppix
objectClass: top
objectClass: ipHost
objectClass: ieee802Device
cn: poste_103
ipHostNumber: 10.1.0.4
- La branche Parcs qui définit les parcs de machines :
dn: ou=Parcs,dc=knoppix
objectClass: organizationalUnit
ou: Parcs
Exemple de deux parcs de machines :
dn: cn=salle_info1,ou=Parcs,dc=knoppix
objectClass: groupOfNames
cn: salle_info1
member: cn=poste_103,ou=Computers,dc=knoppix
member: cn=poste_104,ou=Computers,dc=knoppix
member: cn=poste_105,ou=Computers,dc=knoppix
dn: cn=office97,ou=Parcs,dc=knoppix
cn: office97
member: cn=poste_103,ou=Computers,dc=knoppix
member: cn=poste_104,ou=Computers,dc=knoppix
member: cn=poste_105,ou=Computers,dc=knoppix
member: cn=poste_cdi1,ou=Computers,dc=knoppix
member: cn=poste_cdi2,ou=Computers,dc=knoppix
Une machine peut faire partie de plusieurs parcs. En effet, s'il est logique de regrouper dans un même parc des machines localisées dans une salle de cours, il doit être aussi possible de regrouper dans un autre parc des machines sur lesquelles aura été installé un logiciel spécifique. Dans ce cas, une machine ferait partie du parc relatif à la localisation géographique d'une part et de celui relatif à une configuration logicielle particulière d'autre part.
- La branche Rights qui répertorie les droits d'administration accordés aux membres de l'annuaire sur l'interface Web.
- se3_is_admin : contient la liste des utilisateurs possédant tous les droits sur l'interface Web.
- Annu_is_admin : contient la liste des utilisateurs habilités à modifier l'annuaire (ajout ou suppression d'un utilisateur, par exemple).
- sovajon_is_admin : contient la liste des utilisateurs pouvant changer le mot de passe des élèves.
- system_is_admin : contient la liste des utilisateurs pouvant visualiser les informations système du serveur Se3.
- computers_is_admin : contient la liste des utilisateurs aptes à gérer le parc de machines connectées sur le domaine Se3.
- printer_is_admin : contient la liste d'utilisateurs aptes à gérer le parc d'imprimantes
- lcs_is_admin : contient la liste des utilisateurs administrateur du LCS.
- lcs_moder : droit de modération sur les forums du LCS.
