LDAP

Publié le par BORY DIALLO

LDAP (Lightweight Directory Access Protocol) est un protocole standard permettant de gérer des annuaires, c'est à dire d'accéder à des bases d'informations sur des utilisateurs d'un réseau par l'intermédiaire des protocoles TCP/IP.

Un annuaire LDAP est en effet une base de données non relationnelle  car les informations qu'il abrite sont des objets qui appartiennent à des classes.

 

Un schéma serait plus éloquent que du texte. Celui-ci nous permettrait de  comprendre comment les informations sont organisées dans un annuaire LDAP.

 

Prérequis

# apt install slapd ldap-utils

 

Copier un exemple de configuration du serveur dans le dossier de Ldap

# cp /usr/share/slapd/slapd.conf /etc/ldap/

# cd /etc/ldap

Puisque nous optons pour la configuration du serveur à travers le fichier, il faut donc faire une petite action...

# mv slapd.d/ slapd.d.old

 

Configuration du serveur

Cela se passe dans /etc/ldap/slapd.conf

Il faudra donner les valeurs suivantes aux paramètres suivants tout en adaptant le DN de l'admin, son mot de passe et la racine à votre cas :

moduleload      back_hdb

backend         hdb

database        hdb

suffix          "dc=domaine,dc=com"

rootdn          "cn=admin,dc=domaine,dc=com"

rootpw  test123         // A ajouter !

# These access lines apply to database #1 only
access to attrs=userPassword,shadowLastChange
        by dn="cn=admin,dc=domaine,dc=com" write
        by anonymous auth
        by self write
        by * none

 

# The admin dn has full write access, everyone else
# can read everything.
access to *
        by dn="cn=admin,dc=domaine,dc=com" write
        by * read

 

Configuration du client

Cela se passe dans /etc/ldap/ldap.conf

BASE    dc=domaine,dc=com
URI     ldap://127.0.0.1

 

Redémarrer le service

# systemctl restart slapd.service

 

Pour alimenter un annuaire Ldap, il vaut mieux mettre les informations dans un fichier ldif

Note : Pour travailler avec Ldap, il y'a deux actions à faire : Écrire les informations dans un fichier et alimenter l'annuaire !

  1. Mise en place de la racine

Cela se passe dans le fichier racine.ldif  (à créer) !

 

        Alimentons en suite l'annuaire

 

Contenu de l'annuaire

La racine est bien en place !

    2. Ajoutons des unités organisationnelles

Le fichier ou.ldif va abriter ces informations

Note : On peut mettre plusieurs entrées dans un même fichier en les séparant par une ligne. C'est ce que nous venons de faire dans le fichier ou.ldif avec les deux entrées.

 

Alimentation de l'annuaire

Résultat

 

      3. Ajout de comptes systèmes

Nous allons créer deux utilisateurs :

  • Eduard Snowden qui sera dans l'unité organisationnelle telecoms
  • Steve Jobs qui sera dans l'unité organisationnelle marketing

Ces informations seront abritées par le fichier users.ldif. Voici son contenu :

dn: uid=eduard,ou=telecoms,dc=domaine,dc=com
objectclass: posixAccount
objectclass: shadowAccount
objectclass: inetOrgPerson
uid: eduard
uidNumber: 3000
gidNumber: 3000
loginShell: /bin/bash
homeDirectory: /home/eduard
gn: Eduard
sn: Snowden
cn: Eduard Snowden
mail: eduard.snowden@hotmail.com
userPassword: 12345
employeeType: Permanent
employeeNumber: AA-3000

 

dn: uid=steve,ou=marketing,dc=domaine,dc=com
objectclass: posixAccount
objectclass: shadowAccount
objectclass: inetOrgPerson
uid: steve
uidNumber: 3001
gidNumber: 3001
loginShell: /bin/bash
homeDirectory: /home/steve
gn: Steve
sn: Jobs
cn: Steve Jobs
mail: steve.jobs@hotmail.com

userPassword: 12345
employeeType: Permanent
employeeNumber: AA-3001

 

Alimentation de l'annuaire

 

Un compte système sans groupe, n'est pas complet, donc créons les groupes systèmes des deux comptes. Le fichier group.ldif abritera ces infos !

dn: ou=groupes,dc=domaine,dc=com
objectclass: organizationalUnit
ou: groupes

dn: cn=eduard,ou=groupes,dc=domaine,dc=com
objectclass: posixGroup
cn: eduard
gidNumber: 3000
memberUid: eduard

dn: cn=steve,ou=groupes,dc=domaine,dc=com
objectclass: posixGroup
cn: steve
gidNumber: 3001
memberUid: steve

 

Nous avons d'abord créé un conteneur qui s'appelle groupes qui va abriter les différents groupes.

 

Alimenter l'annuaire

 

Quelques commandes Ldap

  • Affichons les informations concernant l'utilisateur steve

 

  • Affichons les utilisateurs de l'unité organisationnelle telecoms

# ldapsearch -xLLLWD "cn=admin,dc=domaine,dc=com" -b "ou=telecoms,dc=domaine,dc=com"

 

  • Supprimons le compte de Steve

 

Voici un récapitulatif de ce que nous avons fait :

 

Ces comptes ne sont pas là uniquement pour être contemplés, leur utilisation peut être concrète grâce aux modules PAM et NSS. 

Mais il est important de savoir qu'il n'y a pas que ce type d'informations qu'on peut stocker dans un annuaire Ldap. Pour plus de renseignements,  il faudra consulter les fichiers qui sont dans le dossier /etc/ldap/schema

Publié dans Bases de données

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
M
Interdit ???? bancaire?
Besoin de crédit pour relancer ses activités ou un rachat de crédit? Contactez Quintana Financia. ( quintana.financia@gmail.com )

#France #Belgique #Suisse #Canada #Luxembourg #Nouvelle Zélande #Europe
Répondre