Open LDAP - Connexion root impossible

Bonjour a tous !

J'ai en fait un petit probleme (ben tiens ! Comme il est original lui... )

J'esseye en vain de pouvoir acceder en tant qu'utilisateur root a ma base Open LDAP !

Voici mon slapd.conf (configuration du serveur) :

# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema
include         /etc/ldap/schema/oikos-attribut.schema
include         /etc/ldap/schema/oikos-objet.schema

schemacheck     on

pidfile         /var/run/slapd/slapd.pid

argsfile        /var/run/slapd.args

loglevel        0

modulepath	/usr/lib/ldap
moduleload	back_bdb

#######################################################################

backend		bdb
checkpoint 512 30

#######################################################################

database        bdb

suffix          "dc=cbc,dc=be"
rootdn          "cn=admin,dc=cbc,dc=be"
rootpw          roxor

directory       "/var/lib/ldap"
index           objectClass eq
lastmod         on

access to attr=userPassword
        by self write
        by anonymous auth
        by dn.base="cn=admin,dc=cbc,dc=be" write
        by * none

access to *
        by self write
        by dn.base="cn=admin,dc=cbc,dc=be" write
        by read


Comme vous pouvez le constater :

suffix          "dc=cbc,dc=be"
rootdn          "cn=admin,dc=cbc,dc=be"
rootpw          roxor

Voici ma base, le login root et le password root
(le password est en clair pour faire tout le plus simple possible jusqu'a ce que ca marche)

Voici maintenant le ldap.conf (configuration du client) :

HOST    127.0.0.1
BASE	dc=cbc,dc=be


Il me semble donc qu'il est correctement configurer etant donne que tout se trouve en localhost...
Les suffix correspondent egalement.

Cependant, a chaque tentative d'acces via ldapadd, il me sort une erreur :

ldapadd -x -f $HOME/Desktop/init.ldif -W

ldap_bind: invalid credentials (49)

ldapadd -v -x -f $HOME/Desktop/init.ldif -W -D "cn=admin,dc=cbc,dc=be"

adding new entry "o=toto,dc=cbc,dc=be"
modify complete
ldap_add: No such object (32)

Je ne sais pas me connecter en ecriture !

Voici le fichier init.ldif (egalement tres simple pour eviter un maximum d'erreur) :

dn: o=toto,dc=cbc,dc=be
objectClass: top
objectClass: organization
o: toto 


J'ai beau questionner mon ami Google, pas moyen de trouver l'erreur...

J'imagine qu'il veut verifier le password root dans l'arbre, mais cette entree n'existe pas !
Logique puisque je viens d'installer Open LDAP et que j'esseye en vain de creer des entrees...
Mais je n'ai pas les droits ...

J'utilise LDAP Browser pour verifier que le suffix existe et LDAP Browser le trouve bien mais il precise : list failed
J'imagine que c'est parce que je n'ai encore rien dans mon arbre...
Merci d'avance pour vos reponses !

PS: J'ai oublie de preciser que je travaille sous la distribution Ubuntu

5 réponses

  1. Bonjour,

    A mon avis c'est ton fichier init.ldif qui ne peut pas fonctionner. En effet il faut créer la racine de l'annuaire avant d'y ajouter un objet.
    J'entends par racine de l'annuaire ce que tu as renseigné dans ton fichier slapd.conf:
    suffix          "dc=cbc,dc=be"


    Voici donc ma solution :
    #Fichier LDIF de chargement initial
    version: 1
    
    dn: dc=cbc,dc=be
    changetype: add
    objectclass: top
    objectclass: dcObject
    objectclass: organization
    o: cbc
    dc: cbc
    description: Racine de l'annuaire
    
    dn: ou=toto,dc=cbc,dc=be
    changetype: add
    ou: toto
    objectClass: organizationalUnit
    description: unite organisationnelle toto
    
    


    j'espère t'avoir éclairé

    www.nodewave.com
    3
    1. Merci infiniment !!!
      C'etait bien le fait que ma racine n'existait pas...

      Une question me chipotte cependant :

      La racine doit-elle etre obligatoirement un objet top,dcObject,organization ?

      Peut on cree une racine a partir d'un objet personnalise ?

      exemple :

      #attribut de la racine
      attributtype ( 2.5.1211.1
       NAME ('libelle')
       DESC 'Represente un titre'
       EQUALITY caseIgnoreMatch
       SUBSTR caseIgnoreSubstringsMatch
       SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{150}
       SINGLE-VALUE )
      
      #racine
      objectclass ( 1.3.6.1.4.1.1211.1.1 NAME 'racine'
       DESC 'Une racine'
       SUP top STRUCTURAL
       MUST ( libelle ) )
      


      Si je peux creer une racine a partir de cet objet, comment supprimer la racine que tu viens de me faire creer ? :P

      Merci d'avance pour tes explications
      0
    2. @Jack_le_BouletDe rien pour l'aide...

      Effectivement tu peux créer une racine de n'importe quelle classe d'objet (quoique je n'ai pas essayé sur openldap).

      et pour supprimer ce que je viens de te faire créer:
      dn: ou=toto,dc=cbe,dc=be
      changetype: delete
      
      dn: dc=cbe,dc=be
      changetype: delete
      
      


      facile non ?

      pour plus d'infos sur le format LDIF je te conseille les exemples à la fin de la RFC2849 - LDIF v1
      disponible ici : http://www.rfc-archive.org/getrfc.php?rfc=2849

      et d'ailleurs d'autres RFC sont bonnes à connaitre :
      RFC2252 - Attribute syntax definition
      RFC2253 - String representation of DN's
      RFC2254 - Ldap search filters

      recherches les autres RFC sur LDAP mais celles que je viens de citer sont les principales.

      Bonne continuation avec ldap

      www.nodewave.com
      0
    3. @bagnolmGenial !

      Merci beaucoup pour toutes ces infos !

      En fait j'ai enormement regarde les docs que me fournissaient mon ami Google...
      J'ai lu et relu des tutoriaux, RFC, ... etc

      Mais j'ai toujours un peu de mal avec ce nouveau concept qu'est l'annuaire.
      En effet, je n'ai jamais fait que du relationnel !

      Je travaille sur LDAP dans le cadre de mon travail de fin d'etude !!! :D

      J'ai par exemple beaucoup de mal a pouvoir dire si la structure de mon annuaire est un structure correcte...

      Pourrais-je abuser de ta gentillesse en te demandant ton adresse e-mail si tu me le permet ???
      Au cas ou j'aurais une question de plus a te poser... (savoir par exemple si la structure de mon annuaire tiens la route)
      Tu peux simplement m'envoyer un mail (cfr mon profil)...

      Merci encore pour tout !
      0
  2. Après avoir moi-même cherché la réponse est ....

    ....

    1) configurer ldap.conf en plus de slapd.conf, avec juste BASE et URI
    2) décommenter et modifier la ligne rootdn puis ajouter rootpw s'il n'y est pas
    3
    1. salut, le meme probleme ldap-bind : invalide cremential (49) ehh c quoi le probleme ?
      faut au debut de creer les ldif pour l'ajour ehh come ca en peut ajouter sans probleme ?
      vraiment j'ai besoin d'aide
      1
      1. tu as sûrement résolu ton problème depuis le temps , comme j'ai buté aussi cette erreur ...
        Voilà ce que j'ai fait :
        Au départ dans le slapd.conf

        rootpw toto

        Résolution
        slappasswd
        new password : toto
        confirm : toto

        Tu obtiens le mot de pass toto crypté (genre {sha}ERHY3JHLJLZE65ERHR ... )
        Tu copie ce charabia dans ton presse-papier

        tu fais un vi sur le slapd.conf et tu le colles à la place de toto

        rootpwd {sha}ERHY3JHLJLZE65ERHR

        Ensuite tu utilises le mot de passe toto en clair dans tes authentification et ça marche
        0
        1. doit-on utiliser le mot de pass en clair ou crypté ?
          0
        2. En clair !
          0