Préparation des données de l'annuaire
Introduction
Il est temps désormais de se consacrer à l’organisation des données de l’annuaire de démonstration. Cet annuaire aura comme fonction principale de proposer une authentification centralisée à divers clients LDAP et aussi de centraliser la configuration du programme "sudo".
Choix du suffixe
Le choix du suffixe a déjà été réalisé lors de la configuration initiale de l’annuaire.
À savoir : dc=exemple, dc=com
Structure et nommage des entrées
Une fois la racine nommée, il faudra maintenant structurer à partir de celle-ci la première partie de l’annuaire à la manière d’un organigramme. La figure 8-1 montre ainsi un DIT basé sur des lieux géographiques de l’entreprise.
Figure 8-1 : Première partie du DIT
La deuxième partie du DIT comprendra une branche dédiée par client ainsi qu’une branche supplémentaire pour les administrateurs du Datacenter. Chaque branche cliente comprendra des sous-entrées dédiées aux services rendus par l’annuaire. À savoir deux branches distinctes "utilisateur" et "group" qui stockeront les informations d’authentification et une branche dédiée au stockage des informations de configuration du programme "sudo". À cela, s’ajoutera une branche où seront stockés les utilisateurs de liaison (binduser). Par ailleurs, il faut aussi nommer les entrées en utilisant un attribut principal, en choisissant généralement celui utilisé par les applications. La figure 8-2 permet d’illustrer toutes ces informations.
Figure 8-2 : Seconde partie du DIT
Configuration de la structure LDAP au format LDIF
Voici donc quelques extraits du fichier LDIF qui sera utilisé pour la création de la structure du DIT précédemment étudié.
L’exemple ci-dessous présente la première partie du fichier LDIF à constituer afin de réaliser l’implémentation de la structure LDAP de démonstration :
Exemple
dn: dc=exemple,dc=com
objectClass: top
objectClass: domain
dc: exemple
dn: o=europe,dc=exemple,dc=com
objectClass: top
objectClass: organization
o:europe
dn: c=fr,o=europe,dc=exemple,dc=com
objectClass: top
objectClass: country
c:fr
countryName: France
dn: st=Paris,c=fr,o=europe,dc=exemple,dc=com
objectClass: top
objectClass: locality
st:Paris
dn: ou=Datacenter1,st=Paris,c=fr,o=europe,dc=exemple,dc=com
objectClass: top
objectClass: OrganizationalUnit
ou: Datacenter1
dn: ou=Client1,ou=Datacenter1,st=Paris,c=fr,o=europe,dc=exemple,dc=com
objectClass: top
objectClass: OrganizationalUnit
ou: Client1
Voici maintenant un extrait d’une entrée utilisateur :
dn: uid=userA,ou=utilisateur,...,dc=exemple,dc=com
uid: userA
cn: utilisateurA
objectClass: account
objectClass: top
objectClass: posixAccount
objectClass: shadowAccount
loginShell:...