Forum Linux.debian/ubuntu ldap_bind: Invalid credentials (49) avec openldap.

Posté par  .
Étiquettes :
0
21
juin
2006
J'ai un serveur sous debian sarge. J'ai installé openldap dessus. Jusque là, aucun problème. Je peux consulter mon annuaire avec ldap browser en mode inconnu. Par contre, impossible de me connecter avec mon login admin.

Les options contenu dans mon fichier slapd.conf
-----------------------------------------------------
suffix "dc=domaine,dc=fr"
rootdn "cn=admin,dc=domaine,dc=fr"
rootpw {SSHA}9YBOFmYWGOcotlNXIwFSpf7BE2g7xemj
access to attribute={SSHA}9YBOFmYWGOcotlNXIwFSpf7BE2g7xemj

by dn="cn=admin,dc=domaine,dc=fr" write
by anonymous auth
by self write
by * none
-----------------------------------------------------

Il me semble avoir ajouter le nécessaire pour avoir les droits d'écritures. J'ai défini mon user "admin" et donner les droit d'écriture. J'ai aussi redémarrer ldap avec : "slapd restart"

Malgré cela, quand j'ajoute mon fichier ldif, j'obtiens l'erreur suivante :
ldap_bind: Invalid credentials (49)

Il semblerait que cela soit une erreur de mot de passe.

Ma ligne de commande etant la suivante :
ldapadd -x -D "cn=admin,dc=domaine,dc=fr" -w {SSHA}9YBOFmYWGOcotlNXIwFSpf7BE2g7xemj -f test.ldif

Si quelqu'un a une idée, je suis preneur.

Merci d'avance de m'enlever une epine du pied...
  • # Commande ldapadd

    Posté par  . Évalué à 1.

    Bonjour,

    Peux-tu essayer la commande suivante :
    ldapadd -x -D "cn=admin,dc=domaine,dc=fr" -W -f test.ldif

    La seul différence est que le mot de passe te sera demandé... A vrai dire je suis séptique mais ton -w mot_de_passe_chiffré me plait encore moins. Mais je dit peut-être des bétises :)
    • [^] # Re: Commande ldapadd

      Posté par  . Évalué à 2.

      non tu ne dis pas de bétises

      tsuki, il faut utiliser le mot de passe en clair dans la commande ldapadd


      de plus, où es-tu allé pêcher ta configuration slapd.conf ? je n'ai jamais vu de ligne comme celle-ci :

      access to attribute={SSHA}9YBOFmYWGOcotlNXIwFSpf7BE2g7xemj
      • [^] # Re: Commande ldapadd

        Posté par  . Évalué à 1.

        Justement omnikron j'ai deja testé avec :
        ldapadd -x -D "cn=admin,dc=domaine,dc=fr" -W -f test.ldif

        et j'ai le même problème.

        Par contre j'ai oublié de precisé que domaine a plus la forme de nom-domaine. Normalement le tiret ne devrais pas poser problème.

        Nap, pour ce qui est de la configuration de ldap, je me suis basé sur ce lien :
        http://www.coagul.org/article.php3?id_article=172


        Et dans cette exemple tu as : access to attribute=userPassword

        Je suppose que userPassword correspond à mon mot de passe crypté.

        {SSHA} correspond au cryptage. Si j'aurais utilisé MD5 par exemple, j'aurai mis {md5}.
        Je suppose que cela permet a ldap d'identifier le cryptage utilisé.

        J'ai perdu une journée sur ce problème. Je ne peux pas me permettre d'en perdre plus...
        Tout du moins professionnelement parlant.

        En tout cas si vous avez des indices, je suis preneur.

        Ma version de OpenLDAP : 2.2.23
        Linux : Debian Sarge

        Je precise tout de même que je ne suis pas un specialiste de linux.
        J'ai quelques notions ; ayant utilisé dans le passé mandrake 3.0, red hat 4, solaris 5 et slackware 4.
        Actuellement, j'ai une debian sarge sur mon server local et une Fedora core 2 sur mon server.

        Par contre j'ai quelque base d'admin reseau windows server.
        • [^] # Re: Commande ldapadd

          Posté par  . Évalué à 2.

          Salut,

          tu dois laissé écrit "attribute=userPassword" tel quel, sans remplacer userPassword par quoi que ce soit


          en effet la chaine "userPassword" est le nom d'un attribut LDAP servant à stocker le mot de passe d'un utilisateur dans l'objet LDAP le représentant (dans un annuaire LDAP en règle générale, chaque utilisateur est lui-même représenté par un objet de l'annuaire).


          cette règle d'accès te permet donc de dire que :
          - l'administrateur a un accès en écriture sur l'attribut "userPassword" des objets de l'annuaire, c'est à dire qu'il peut changer le mot de passe des utilisateurs de l'annuaire,
          - l'utilisateur anonyme peut utiliser le mot de passe à fin d'authentification,
          - tout utilisateur peut changer son propre mot de passe,
          - toute autre personne n'y a pas accès.


          Merci d'avoir lu jusqu'ici, car ton problème n'a rien à voir avec ça :-)
          néanmoins comme visiblement tu n'avais pas compris ce point il me semblait bon de te donner une petite explication.


          Ton problème vient du fait qu'en t'authentifiant tu donnes le mot de passe crypté, ce qui est contraire au protocole LDAP. En effet l'authentification LDAP simple telle qu'utilisée par ldapadd -x nécessite impérativement le mot de passe en clair. Utilise donc le mot de passe en clair dans ta commande ldapadd, et ça marchera !


          Pour information, le cryptage du mot de passe permet juste de ne pas avoir de mot de passe en clair stocké sur le disque dur du serveur, et pas du tout de protéger le mot de passe lors de son passage sur le réseau, ce qui n'aurait strictement aucune utilité avec un simple hash.


          Si tu veux plus d'info, mon mail/jabber : francois.beretti@gmail.com
  • # envoi par mail

    Posté par  . Évalué à 1.

    Merci de la rapidité de ta réponse.

    Je t'envoie un mail avec le contenu de mon fichier. Car, je n'ai pas reussi a resoudre le probleme.

    Merci encore.

    Amicalement,
    Tsuki

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.