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 31/07/2017, 16:43]
90.33.73.15 [Introduction]
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>Intrepid ​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 26: 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]]**.+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 46: Ligne 43:
 </​code> ​ </​code> ​
  
-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''​.+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 55: 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 64: 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 86: Ligne 78:
 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 =====
  
Ligne 107: Ligne 84:
 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) : 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) :
  
-<code>+<file>
 # fichier de données : ~/init.ldif # fichier de données : ~/init.ldif
 dn: dc=example,​dc=com dn: dc=example,​dc=com
Ligne 150: 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 158: 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 177: 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 214: 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 246: 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 289: 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 300: 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 328: 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.1501512192.txt.gz
  • Dernière modification: Le 31/07/2017, 16:43
  • par 90.33.73.15