Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
slapd [Le 10/02/2014, 09:41]
85.26.36.112 [Utiliser votre serveur LDAP]
slapd [Le 11/09/2022, 10:37] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>Feisty Dapper Edgy serveur réseau BROUILLON}}+{{tag>Precise ​serveur réseau BROUILLON}}
  
 ------ ------
 ====== Un serveur d'​annuaire avec OpenLDAP ====== ====== Un serveur d'​annuaire avec OpenLDAP ======
  
-Ce document est la traduction du HowTo présenté à l'​adresse https://​wiki.ubuntu.com/​OpenLDAPServer. ​+Ce document est la traduction du HowTo présenté à l'​adresse https://​wiki.ubuntu.com/​OpenLDAPServer.
  
-Il a été traduit par [[utilisateurs:​Sp4rKy]] puis remis (un peu) en page et déplacé par [[utilisateurs:​bastnic]].  +LDAP signifie Lightweight Directory Access Protocol, c'est une version simplifiée du protocole X500. Vous pourrez trouver une présentation détaillée sur [[wpfr>LDAP|Wikipédia]].
-Il a été mis a jour par [[utilisateurs:​Kenny432]] pour Ubuntu 8.10 .  +
-===== Introduction ===== +
-LDAP signifie Lightweight Directory Access Protocol, c'est une version simplifiée du protocole X500. Vous pourrez trouver une présentation détaillée sur [[http://​fr.wikipedia.org/​wiki/​LDAP|Wikipédia]] .+
  
-Pour expliquer rapidement, toutes les informations sont stockées dans un arbre. Vous devez déterminer l'​arborescence des annuaires ou, autrement dit, des informations de l'​arbre (Directory Information Tree) . +Pour expliquer rapidement, toutes les informations sont stockées dans un arbre. Vous devez déterminer l'​arborescence des annuaires ou, autrement dit, des informations de l'​arbre (Directory Information Tree).
 Nous allons commencer ici avec un exemple simple contenant seulement 2 nœuds en plus de la racine : Nous allons commencer ici avec un exemple simple contenant seulement 2 nœuds en plus de la racine :
-  * Le nœud "​People"​ , où seront stockés vos utilisateurs +  * Le nœud "​People"​ , où seront stockés vos utilisateurs, 
-  * Le nœud "​Groups"​ , où seront enregistrés vos groupes+  * Le nœud "​Groups"​ , où seront enregistrés vos groupes.
  
 Vous devez commencer par déterminer ce que sera la racine de votre LDAP. Par défaut, votre arbre peut être déterminé à partir de votre domaine Internet. Si votre domaine est exemple.com , votre racine sera  dc=exemple,​dc=com . Vous devez commencer par déterminer ce que sera la racine de votre LDAP. Par défaut, votre arbre peut être déterminé à partir de votre domaine Internet. Si votre domaine est exemple.com , votre racine sera  dc=exemple,​dc=com .
Ligne 20: Ligne 17:
  
 <note important>​Dans le cas où le nom de domaine déclaré sur la machine n'est pas celui que l'on souhaite utiliser, il faut modifier le nom dans les fichiers "/​etc/​hostname"​ et "/​etc/​hosts"​ et redémarrer le serveur AVANT l'​installation des paquets. <note important>​Dans le cas où le nom de domaine déclaré sur la machine n'est pas celui que l'on souhaite utiliser, il faut modifier le nom dans les fichiers "/​etc/​hostname"​ et "/​etc/​hosts"​ et redémarrer le serveur AVANT l'​installation des paquets.
-Dans le cas contraire, il risque d'y avoir une contradiction entre le nom choisi à l'​installation (ou demandé par dpkg-reconfigure) et celui récupéré automatiquement par l'​installation du paquet (dc=lenomdedomaine,​dc=extenion). je n'ai pas réussi à modifier cela dans la base LDAP. solutionné par tout désinstaller,​ renommer puis réinstaller.</​note>​ +Dans le cas contraire, il risque d'y avoir une contradiction entre le nom choisi à l'​installation (ou demandé par dpkg-reconfigure) et celui récupéré automatiquement par l'​installation du paquet (dc=lenomdedomaine,​dc=extension). je n'ai pas réussi à modifier cela dans la base LDAP. solutionné par tout désinstaller,​ renommer puis réinstaller.</​note>​
- +
- +
  
  
Ligne 29: Ligne 23:
 ===== Installation ===== ===== Installation =====
  
-Avant tout, installons le daemon du serveur ldap (slapd) sur le serveur. Pour cela, il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer les paquets]] ** [[apt://slapd,ldap-utils]]**.+Avant tout, installons le daemon du serveur ldap (slapd) sur le serveur. Pour cela, il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer les paquets]] ** [[apt>slapd]]**.
  
 On vous demandera votre mot de passe administrateur et votre nom de domaine. Renseignez-les. Parfois on ne vous demandera que le mot de passe et on ne vous demandera rien concernant le nom de domaine car l'​installeur récupère directement le nom de domaine de la machine. Si vous souhaitez renseigner ces champs faites : On vous demandera votre mot de passe administrateur et votre nom de domaine. Renseignez-les. Parfois on ne vous demandera que le mot de passe et on ne vous demandera rien concernant le nom de domaine car l'​installeur récupère directement le nom de domaine de la machine. Si vous souhaitez renseigner ces champs faites :
Ligne 49: Ligne 43:
 </​code> ​ </​code> ​
  
-{{icons:​icontip.png ​ |Conseil}} +Mais seulement quelques changements seront effectués sur la configuration par défaut. Tout le reste va se jouer dans le fichier ​**/​etc/​ldap/​slapd.conf**.
-> Sur Feisty, la commande précédente demande des informations comme le mot de passe de l'​administrateur ldap ou le nom de domaine. Cependant, sur ma machine, le fichier de configuration n'est pas modifié en conséquence. La suite est donc à effectuer tout de même. +
- +
-Mais seulement quelques changements seront effectués sur la configuration par défaut. Tout le reste va se jouer dans le fichier ​''​/​etc/​ldap/​slapd.conf''​.+
  
  
Ligne 61: Ligne 52:
  
 On obtient quelque chose dans ce genre : On obtient quelque chose dans ce genre :
-<​code>​ +<​code>​sudo slappasswd
-sudo slappasswd+
 New password: New password:
 Re-enter password: Re-enter password:
Ligne 70: Ligne 60:
 Cet exemple montre la définition de votre mot de passe en utilisant le mot de passe "​secret"​. (D'​après l'​implémentation de SSHA, votre résultat peut varier) . Cet exemple montre la définition de votre mot de passe en utilisant le mot de passe "​secret"​. (D'​après l'​implémentation de SSHA, votre résultat peut varier) .
  
-<note important>​Depuis Ubuntu Linux Intrepid Ibex, l'​installation de slapd ne crée pas de fichier **slapd.conf**,​ tous les éléments de configuration sont désormais dans le dossier **/​etc/​ldap/​slapd.d/​**. Pour ceux qui rencontrent ce problème voici une solution ( en anglais ) : [[http://​ralf.schaeftlein.de/​2009/​02/​04/​howto-setup-a-openldap-server-for-ubuntu-810/​|OpenLDAP ubuntu 8.10]]</​note>​ 
- 
-==== Pour Intrepid Ibex et supérieur ==== 
- 
-[[:​tutoriel:​comment_editer_un_fichier|Éditez]] le fichier ** 
  
 +[[:​tutoriel:​comment_editer_un_fichier|Éditez]] le fichier ** 
 /​etc/​ldap/​ldap.conf** avec les droits administrateurs. /​etc/​ldap/​ldap.conf** avec les droits administrateurs.
  
Ligne 90: Ligne 76:
 </​code>​ </​code>​
  
-Toutes les informations relatives ​**slapd.d** (dossier remplaçant slapd.conf) sont maintenant inscrites au moment où on lance la commande //​dpkg-reconfigure slapd//+Toutes les informations relatives ​à **slapd.d** (dossier remplaçant slapd.conf) sont maintenant inscrites au moment où on lance la commande //​dpkg-reconfigure slapd//
  
- 
-==== Pour Hardy Heron et inférieur ==== 
- 
-Maintenant [[:​tutoriel:​comment_editer_un_fichier|éditez]] le fichier **/​etc/​ldap/​slapd.conf** avec les droits administrateurs. 
- 
-Il va falloir ajouter à la main quelques paramètres très importants. Notamment ces quatre lignes là, à mettre après la section "​database"​ donc vers les lignes 70 et quelques. 
-<​code>​ 
-suffix ​         "​dc=example,​dc=com"​ 
-directory ​      "/​var/​lib/​ldap"​ 
-rootdn ​         "​cn=admin,​dc=example,​dc=com"​ 
-rootpw ​         {SSHA}d2BamRTgBuhC6SxC0vFGWol31ki8iq5m 
-</​code>​ 
- 
-Si jamais vous voulez activer le support de la version précédente d'​LDAP,​ décommentez ​ l'​option (ligne 8) : 
-<​code>​allow bind_v2</​code>​ 
 ===== Remplir LDAP ===== ===== Remplir LDAP =====
  
 L' annuaire a été créé lors de l'​installation,​ il est maintenant temps de le remplir. Il sera rempli avec des entrées classiques qui seront compatibles avec la structure d'un annuaire (pour un annuaire partagé), avec les comptes classiques (pour une authentification Web par exemple) et avec les comptes Unix (posix). L' annuaire a été créé lors de l'​installation,​ il est maintenant temps de le remplir. Il sera rempli avec des entrées classiques qui seront compatibles avec la structure d'un annuaire (pour un annuaire partagé), avec les comptes classiques (pour une authentification Web par exemple) et avec les comptes Unix (posix).
  
-L'​annuaire LDAP peut être rempli par des fichiers ldif (ldif signifie ldap directory interchange format). ​Générez ​ce fichier d'​exemple (init.ldif) :+L'​annuaire LDAP peut être rempli par des fichiers ldif (ldif signifie ldap directory interchange format). ​Vous pouvez commencer en créant ​ce fichier d'​exemple (init.ldif) :
  
-<note important>​Note d'un internaute : ici, la phrase "​Générez ce fichier d'​exemple"​ n'est pas claire. On ne comprend pas ce qu'on nous demande de faire véritablement. Créer un fichier n'​importe où dans lequel on met ce fichier d'​exemple ?</​note>​ +<file>
-<note help>​Effectivement il faut créer le fichier init.ldif, qu'on utilisera plus bas</​note>​ +
-<​code>​ +
-$ vim ~/​init.ldif +
-</​code>​ +
- +
- +
- +
-Contenu du fichier : +
- +
-<code>+
 # fichier de données : ~/init.ldif # fichier de données : ~/init.ldif
 dn: dc=example,​dc=com dn: dc=example,​dc=com
Ligne 166: Ligne 127:
 homePhone: +33 (0)5 xx xx xx xx homePhone: +33 (0)5 xx xx xx xx
 title: System Administrator title: System Administrator
-postalAddress: ​+postalAddress:​
 initials: LP initials: LP
  
Ligne 174: Ligne 135:
 gidNumber: 10000 gidNumber: 10000
 displayName:​ Example group displayName:​ Example group
-</code>+</file>
  
 Dans l'​exemple ci-dessus, la structure de l'​annuaire,​ c'​est-à-dire un utilisateur et un groupe ont été créés. Dans d'​autres exemples vous auriez pu voir le paramètre "​objectClass:​ top" ajouté dans plusieurs entrées, mais c'est le comportement par défaut donc pas besoin de le mettre :) Dans l'​exemple ci-dessus, la structure de l'​annuaire,​ c'​est-à-dire un utilisateur et un groupe ont été créés. Dans d'​autres exemples vous auriez pu voir le paramètre "​objectClass:​ top" ajouté dans plusieurs entrées, mais c'est le comportement par défaut donc pas besoin de le mettre :)
  
 Maintenant ajoutez vos entrées à LDAP : Maintenant ajoutez vos entrées à LDAP :
-  * Arrêtez le daemon : +  * Arrêtez le daemon :
 <​code>​ <​code>​
 sudo /​etc/​init.d/​slapd stop sudo /​etc/​init.d/​slapd stop
Ligne 193: Ligne 154:
 sudo slapadd -l ~/init.ldif sudo slapadd -l ~/init.ldif
 </​code>​ </​code>​
-<note tip>Si vous rencontrez le message type : +<note tip>Si vous rencontrez le message type :
 <​code>​ <​code>​
 Entry (cn=example,​ou=groups,​dc=example,​dc=com),​ attribute '​displayName'​ not allowed Entry (cn=example,​ou=groups,​dc=example,​dc=com),​ attribute '​displayName'​ not allowed
 slapadd: dn="​cn=example,​ou=groups,​dc=example,​dc=com"​ (line=46): (65) attribute '​displayName'​ not allowed slapadd: dn="​cn=example,​ou=groups,​dc=example,​dc=com"​ (line=46): (65) attribute '​displayName'​ not allowed
 </​code>​ </​code>​
-Il faut commenter la ligne 46 comme ceci : +Il faut commenter la ligne 46 comme ceci :
 <​code>​ <​code>​
 #​displayName:​ Example group #​displayName:​ Example group
Ligne 230: Ligne 191:
 Une rapide explication : Une rapide explication :
   * -x désactive l'​authentification SASL   * -x désactive l'​authentification SASL
-  * -LLL empêche l'​affichage des informations LDIF +  * -LLL empêche l'​affichage des informations LDIF
   * -b indique la branche utilisée   * -b indique la branche utilisée
  
 NE PAS OUBLIER d'​ajouter le user qui doit administrer le service ldap au group openldap à créer lors de l'​installation du paquet ou bien de donner les bons droits sur les fichiers /​etc/​ldap/​ldap.conf et /​var/​lib/​ldap/​* NE PAS OUBLIER d'​ajouter le user qui doit administrer le service ldap au group openldap à créer lors de l'​installation du paquet ou bien de donner les bons droits sur les fichiers /​etc/​ldap/​ldap.conf et /​var/​lib/​ldap/​*
 +
 +==== Convertir un csv en ldif ====
 +Ci dessous un script bash convertissant un csv en ldif. Il faut évidemment le personnaliser selon vos besoins.
 +Il lui manque de: supprimer les doublons, les valeurs nulles, les têtes de colonne ainsi que les espaces et caractères spéciaux dans l'uid.
 +
 +<​code>​
 +#!/bin/bash
 +
 +# Le script et le fichier source doivent être dans le home.
 +# Le script ne supprime ni les doublons, ni les valeurs nulles, ni les têtes de colonne.
 +# Il faudrait aussi supprimer les espaces et les caractères spéciaux dans les uid=$nom$prenom
 +
 +source=source.csv ​                     # Le fichier source
 +cible=cible.ldif ​                      # Le fichier cible
 +
 +> $cible ​                              # Nettoyage du fichier cible.
 +
 +while read line                        # On lit le fichier, et pour chaque ligne...
 +do 
 +nom=$(echo $line | cut -d ";"​ -f2)     # On entre dans la variable $nom la deuxième colonne (-f2).
 +prenom=$(echo $line | cut -d ";"​ -f3)  # Remarquez le séparateur qui est le ";"​. On pourrait changer.
 +rue=$(echo $line | cut -d ";"​ -f4)
 +cp=$(echo $line | cut -d ";"​ -f5)
 +ville=$(echo $line | cut -d ";"​ -f6)
 +tel=$(echo $line | cut -d ";"​ -f7)
 +mobile=$(echo $line | cut -d ";"​ -f8)
 +courriel=$(echo $line | cut -d ";"​ -f9)
 +                                       # A partir de la ligne suivante exportation par un echo.
 +                                       # C'est ici que vous pouvez modifier le contenu du ldif.
 +                                       # Il faudrait y ajouter une condition pour ne pas afficher les champs vides.
 +echo "dn: uid=$nom$prenom,​ou=fideles,​dc=example,​dc=com
 +objectClass:​ inetOrgPerson
 +objectClass:​ organizationalPerson
 +objectClass:​ posixAccount
 +objectClass:​ shadowAccount
 +objectClass:​ person
 +objectClass:​ top
 +cn: $nom $prenom
 +gidNumber: 100
 +givenName: $prenom
 +homeDirectory:​ hd
 +homePhone: $tel
 +mobile: $mobile
 +mail: $courriel
 +street: $rue
 +postalCode: $cp $ville
 +sn: $nom
 +uid: $nom$prenom
 +uidNumber: 100
 +
 +" >> $cible ​                       # Écriture dans le fichier cible.
 +done < $source ​                    # Lecture de la source.
 +
 +</​code>​
  
 ===== Utiliser votre serveur LDAP ===== ===== Utiliser votre serveur LDAP =====
Ligne 262: Ligne 277:
 == Problème : Memory Limit low == == Problème : Memory Limit low ==
  
-Si lorsque vous allez sur l'​interface web de phpldapadmin,​ vous avez cette erreur : +Si lorsque vous allez sur l'​interface web de phpldapadmin,​ vous avez cette erreur :
  
 Memory Limit low. Memory Limit low.
Ligne 305: Ligne 320:
 Avec OpenLDAP 2.2 (sur Breezy et Dapper), la réplication est basée sur une communication maître-esclave. Avec OpenLDAP 2.2 (sur Breezy et Dapper), la réplication est basée sur une communication maître-esclave.
  
-__**ATTENTION **__ +__**ATTENTION **__
  
 Vous devez vous rappeler que les modifications devraient toujours être faites sur le maître ! Si vous modifiez un esclave, les modifications seront perdues dès la synchronisation suivante :/ Vous devez vous rappeler que les modifications devraient toujours être faites sur le maître ! Si vous modifiez un esclave, les modifications seront perdues dès la synchronisation suivante :/
Ligne 316: Ligne 331:
  
 <note important>​Note d'un internaute : Comment faire pour les versions ou le fichier slapd.conf n'​existe plus, comme c'est dit plus haut??</​note>​ <note important>​Note d'un internaute : Comment faire pour les versions ou le fichier slapd.conf n'​existe plus, comme c'est dit plus haut??</​note>​
 +
 +<note important>​En réponse a l'​internaute:​ Avec les commandes suivantes on peut recréer le fichier de conf</​note>​
 +<​code>​
 +zcat /​usr/​share/​doc/​slapd/​examples/​slapd.conf.gz > /​etc/​ldap/​slapd.conf
 +sed -i "​s/​SLAPD_CONF=/​SLAPD_CONF=\/​etc\/​ldap\/​slapd.conf/​g"​ /​etc/​default/​slapd
 +sed -i "​s/​dbconfig/#​dbconfig/​g"​ /​etc/​ldap/​slapd.conf
 +systemctl daemon-reload
 +systemctl restart slapd.service
 +</​code>​
  
 <​code>​ <​code>​
Ligne 344: Ligne 368:
   * [[https://​wiki.ubuntu.com/​OpenLDAPServer|La version Anglaise]]   * [[https://​wiki.ubuntu.com/​OpenLDAPServer|La version Anglaise]]
   * [[https://​help.ubuntu.com/​8.10/​serverguide/​C/​openldap-server.html|La version Anglaise mis a jour pour 8.10]]   * [[https://​help.ubuntu.com/​8.10/​serverguide/​C/​openldap-server.html|La version Anglaise mis a jour pour 8.10]]
-  * [[http://​www.openldap.org/​|OpenLDAP.org]]+  * [[https://​www.openldap.org/​|OpenLDAP.org]]
   * [[http://​www.tldp.org/​HOWTO/​html_single/​LDAP-HOWTO/​|LDAP HOWTO]]   * [[http://​www.tldp.org/​HOWTO/​html_single/​LDAP-HOWTO/​|LDAP HOWTO]]
   * [[http://​luma.sourceforge.net/​|Un GUI pour LDAP]] (Disponible dans les dépots)   * [[http://​luma.sourceforge.net/​|Un GUI pour LDAP]] (Disponible dans les dépots)
   * [[http://​ralf.schaeftlein.de/​2009/​02/​04/​howto-setup-a-openldap-server-for-ubuntu-810/​|OpenLDAP Ubuntu 8.10 HOWTO]]   * [[http://​ralf.schaeftlein.de/​2009/​02/​04/​howto-setup-a-openldap-server-for-ubuntu-810/​|OpenLDAP Ubuntu 8.10 HOWTO]]
 +
 +------------
 +
 +Contributeurs :​ [[utilisateurs:​Sp4rKy]] puis remis (un peu) en page et déplacé par [[utilisateurs:​bastnic]],​ [[utilisateurs:​Kenny432]].
  • slapd.1392021667.txt.gz
  • Dernière modification: Le 10/02/2014, 09:41
  • par 85.26.36.112