Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
|
linux:openldap [2011/01/08 15:23] matthieu |
linux:openldap [2011/07/30 08:54] (Version actuelle) matthieu [Modifier le schéma] |
||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| ====== 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. | Les annuaires sont très souvent utilisés pour stocker les comptes utilisateurs d'un système d'information. | ||
| Ligne 26: | Ligne 26: | ||
| <code> | <code> | ||
| - | bender:~# ldapsearch -x | + | :~# ldapsearch -x |
| # extended LDIF | # extended LDIF | ||
| # | # | ||
| Ligne 40: | Ligne 40: | ||
| # numResponses: 1 | # numResponses: 1 | ||
| - | bender:~# | + | :~# |
| </code> | </code> | ||
| Ligne 69: | 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 84: | Ligne 84: | ||
| # numResponses: 1 | # numResponses: 1 | ||
| - | bender:~# | + | :~# |
| </code> | </code> | ||
| Ligne 99: | 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 161: | 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 194: | 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 213: | 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 223: | 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 234: | 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 285: | 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 291: | 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 357: | 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 617: | 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 ===== | ||