Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
linux:openldap [2009/07/25 14:31] matthieu |
linux:openldap [2011/07/30 08:54] (Version actuelle) matthieu [Modifier le schéma] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag>fr fr:linux fr:serveur fr:authentification}} | ||
====== OpenLDAP ====== | ====== OpenLDAP ====== | ||
- | OpenLDAP est un serveur LDAP assez répendu. Le protocole LDAP permet de d'interroger un annuaire centralisé. | + | OpenLDAP est un serveur LDAP assez répandu. Le protocole LDAP permet de d'interroger un annuaire centralisé. |
- | Les annuaires sont très souvent utilisés pour stocker les comptes utilisateurs d'un système d'information, c'est notamment le cas pour le projet [[linux:bender|Bender]]. | + | Les annuaires sont très souvent utilisés pour stocker les comptes utilisateurs d'un système d'information. |
===== Installation ===== | ===== Installation ===== | ||
Ligne 25: | Ligne 26: | ||
<code> | <code> | ||
- | bender:~# ldapsearch -x | + | :~# ldapsearch -x |
# extended LDIF | # extended LDIF | ||
# | # | ||
Ligne 39: | Ligne 40: | ||
# numResponses: 1 | # numResponses: 1 | ||
- | bender:~# | + | :~# |
</code> | </code> | ||
Ligne 68: | Ligne 69: | ||
<code> | <code> | ||
- | bender:~# ldapsearch -x -D "cn=admin,dc=bouthors,dc=fr" -W | + | :~# ldapsearch -x -D "cn=admin,dc=bouthors,dc=fr" -W |
Enter LDAP Password: | Enter LDAP Password: | ||
# extended LDIF | # extended LDIF | ||
Ligne 83: | Ligne 84: | ||
# numResponses: 1 | # numResponses: 1 | ||
- | bender:~# | + | :~# |
</code> | </code> | ||
Ligne 98: | Ligne 99: | ||
<code> | <code> | ||
- | bender:~# ldapsearch -x | + | :~# ldapsearch -x |
ldap_bind: Inappropriate authentication (48) | ldap_bind: Inappropriate authentication (48) | ||
additional info: anonymous bind disallowed | additional info: anonymous bind disallowed | ||
- | bender:~# | + | :~# |
</code> | </code> | ||
Ligne 160: | Ligne 161: | ||
slapadd permet d'importer directement des données dans la base de donnée de slapd. Cela a pour avantage de pouvoir modifier des attributs internes (date de création/modification) très utile pour une restauration de base. | slapadd permet d'importer directement des données dans la base de donnée de slapd. Cela a pour avantage de pouvoir modifier des attributs internes (date de création/modification) très utile pour une restauration de base. | ||
- | C'est en particulier la commande idéale pour réimporter le résultat de la commande slapcat décrit plus bas. | + | C'est en particulier la commande idéale pour réimporter le résultat de la commande slapcat décrit [[#Exporter des données LDIF|plus bas]]. |
Le principal inconvénient de slapadd est qu'il nécessite l'arrêt du serveur ldap pour pouvoir être utilisé. | Le principal inconvénient de slapadd est qu'il nécessite l'arrêt du serveur ldap pour pouvoir être utilisé. | ||
- | **Attention : vérifier que slapd est bien propriétaire des fichiers après utilisation de slapd, sinon il refusera de redémarrer.** | + | ** :!: vérifier que slapd est bien propriétaire des fichiers après utilisation de slapadd, sinon il refusera de redémarrer.** |
Exemple : | Exemple : | ||
<code> | <code> | ||
- | bender:/var/lib/ldap# /etc/init.d/slapd stop | + | :/var/lib/ldap# /etc/init.d/slapd stop |
Stopping OpenLDAP: slapd. | Stopping OpenLDAP: slapd. | ||
- | bender:/var/lib/ldap# ps aux|grep ldap | + | :/var/lib/ldap# ps aux|grep ldap |
root 32212 0.0 0.0 6480 776 pts/0 R+ 11:27 0:00 grep ldap | root 32212 0.0 0.0 6480 776 pts/0 R+ 11:27 0:00 grep ldap | ||
- | bender:/var/lib/ldap# rm -Rf * | + | :/var/lib/ldap# rm -Rf * |
- | bender:/var/lib/ldap# l | + | :/var/lib/ldap# l |
total 0 | total 0 | ||
- | bender:/var/lib/ldap# slapadd -l /root/ldif | + | :/var/lib/ldap# slapadd -l /root/ldif |
/etc/ldap/slapd.conf: line 109: rootdn is always granted unlimited privileges. | /etc/ldap/slapd.conf: line 109: rootdn is always granted unlimited privileges. | ||
/etc/ldap/slapd.conf: line 127: rootdn is always granted unlimited privileges. | /etc/ldap/slapd.conf: line 127: rootdn is always granted unlimited privileges. | ||
- | bender:/var/lib/ldap# chown openldap:openldap * | + | :/var/lib/ldap# chown openldap:openldap * |
- | bender:/var/lib/ldap# l | + | :/var/lib/ldap# l |
total 1100 | total 1100 | ||
-rw-r--r-- 1 openldap openldap 2048 2007-12-16 11:29 alock | -rw-r--r-- 1 openldap openldap 2048 2007-12-16 11:29 alock | ||
Ligne 193: | Ligne 194: | ||
-rw------- 1 openldap openldap 188602 2007-12-16 11:28 log.0000000001 | -rw------- 1 openldap openldap 188602 2007-12-16 11:28 log.0000000001 | ||
-rw------- 1 openldap openldap 8192 2007-12-16 11:28 objectClass.bdb | -rw------- 1 openldap openldap 8192 2007-12-16 11:28 objectClass.bdb | ||
- | bender:/var/lib/ldap# /etc/init.d/slapd start | + | :/var/lib/ldap# /etc/init.d/slapd start |
Starting OpenLDAP: slapd. | Starting OpenLDAP: slapd. | ||
- | bender:/var/lib/ldap# ps aux|grep sla | + | :/var/lib/ldap# ps aux|grep sla |
openldap 32335 0.0 0.3 48820 3440 ? Ssl 11:32 0:00 /usr/sbin/slapd -g openldap -u openldap | openldap 32335 0.0 0.3 48820 3440 ? Ssl 11:32 0:00 /usr/sbin/slapd -g openldap -u openldap | ||
root 32338 0.0 0.0 6476 776 pts/0 R+ 11:32 0:00 grep sla | root 32338 0.0 0.0 6476 776 pts/0 R+ 11:32 0:00 grep sla | ||
- | bender:/var/lib/ldap# | + | :/var/lib/ldap# |
</code> | </code> | ||
Ligne 212: | Ligne 213: | ||
<code> | <code> | ||
- | bender:~# ldapadd -x -D "cn=admin,dc=bouthors,dc=fr" -W | + | :~# ldapadd -x -D "cn=admin,dc=bouthors,dc=fr" -W |
Enter LDAP Password: | Enter LDAP Password: | ||
dn: cn=user1,ou=Users,dc=bouthors,dc=fr | dn: cn=user1,ou=Users,dc=bouthors,dc=fr | ||
Ligne 222: | Ligne 223: | ||
adding new entry "cn=user1,ou=Users,dc=bouthors,dc=fr" | adding new entry "cn=user1,ou=Users,dc=bouthors,dc=fr" | ||
- | bender:~# | + | :~# |
</code> | </code> | ||
Ligne 233: | Ligne 234: | ||
</code> | </code> | ||
- | Exporte le contenu de l'arbre LDAP dans un fichier. | ||
+ | :!: 2011-01-16 Il y a actuellement un bug dans debian avec la commande slapcat (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=598361), le message d'erreur suivant apparaît : | ||
+ | <code> | ||
+ | hdb_db_open: database "dc=bouthors,dc=fr": unclean shutdown detected; attempting recovery. | ||
+ | hdb_db_open: database "dc=bouthors,dc=fr": recovery skipped in read-only mode. Run manual recovery if errors are encountered. | ||
+ | </code> | ||
+ | Ce problème peut être contourné en arrêtant la slapd pendant l'exécution de slapcat. | ||
==== Exemple ==== | ==== Exemple ==== | ||
- | Voici un exemple de création dec 2 OU et quelques entrées : | + | Voici un exemple de création de 2 OU et quelques entrées : |
* OU=Users | * OU=Users | ||
Ligne 284: | Ligne 290: | ||
Il suffit d'utiliser ldapadd comme indiqué ci-dessus pour les ajouter. | Il suffit d'utiliser ldapadd comme indiqué ci-dessus pour les ajouter. | ||
- | En utilisant ldapcat, les nouvelles entrées doivent apparaîtrent dans l'export LDIF. | + | En utilisant slapcat, les nouvelles entrées doivent apparaîtrent dans l'export LDIF. |
===== Modifier le schéma ===== | ===== Modifier le schéma ===== | ||
Ligne 290: | Ligne 296: | ||
Le schéma LDAP définit les structures utilisables pour les entrées de l'annuaire. Il arrive fréquemment que les types prédéfinit par les RFC ne suffisent pas. | Le schéma LDAP définit les structures utilisables pour les entrées de l'annuaire. Il arrive fréquemment que les types prédéfinit par les RFC ne suffisent pas. | ||
- | Par exemple, pour le projet [[linux:bender|Bender]], j'ai définit 2 nouveaux types : | + | Par exemple, voici définit 2 nouveaux types : |
Le type mboUser contient les champs suivants : | Le type mboUser contient les champs suivants : | ||
Ligne 356: | Ligne 362: | ||
</file> | </file> | ||
- | * charger ce schéma dans openldap, danc ///etc/ldap/slapd.conf//, ajouter : | + | * charger ce schéma dans openldap, dans ///etc/ldap/slapd.conf//, ajouter : |
<code> | <code> | ||
Ligne 616: | Ligne 622: | ||
===== Configurer les services pour l'authentification LDAP ===== | ===== Configurer les services pour l'authentification LDAP ===== | ||
- | * Serveur web : voir [[linux:serveur_web|Serveur Web]] | + | * Serveur web : voir [[Serveur Web]] |
- | * Serveur FTP : voir [[linux:proftpd|Proftpd]] | + | * Serveur FTP : voir [[Proftpd]] |
+ | * Dokuwiki : voir [[linux:dokuwiki:ldap]] | ||
===== Backup ===== | ===== Backup ===== | ||
Ligne 627: | Ligne 633: | ||
===== Links ===== | ===== Links ===== | ||
- | * [[linux:bender|Bender]] | ||
* [[linux:phpldapadmin|PhpLdapAdmin]] | * [[linux:phpldapadmin|PhpLdapAdmin]] | ||
* [[http://www.openldap.org/]] | * [[http://www.openldap.org/]] |