Amélioration de la prise en compte de LDAP

All contributions published for previous SPIP versions

Code work in progress

Si vous essayez de vous connecter à un serveur LDAP recent (version 3 du protocole LDAP), il se peut que votre connexion à LDAP ne se fasse pas. Dans ce cas, effectuez l’installation de SPIP avec LDAP comme d’habitude, puis éditez le fichier ecrire/inc_connect.php3 et remplacez la fonction spip_connect_ldap par celle-ci :

function spip_connect_ldap() {
    /* Connexion au serveur LDAP */
    if (!$GLOBALS['ldap_link'] = @ldap_connect("<nom_du_serveur>","389")) {
        die("Impossible de trouver le serveur LDAP.<br>\n");
    }
    /* !! Spécifier à PHP d'utiliser la version 3 du protocole !! */
    @ldap_set_option( $GLOBALS['ldap_link'], LDAP_OPT_PROTOCOL_VERSION, 3 );
    /* Ouverture d'une session sur la connexion en cours */
    if (!@ldap_bind($GLOBALS['ldap_link'])) {
        die("Connexion LDAP : Echec. Essayez de raffraichir cette page.<br>\n");
    }
    return $GLOBALS['ldap_link'];
}

En remplaçant <nom_du_serveur> par le host de votre serveur (copier/coller de l’ancienne fonction).

Si le bind ne fonctionne pas la première fois (message “Connexion LDAP : Echec...”), raffraichissez.

Remarque : si vous vous connectez à un serveur LDAP qui utilise la version 3 du protocole, vous devez utiliser une version recente du module LDAP pour PHP. La version fournie par EasyPHP 1.6, par exemple, ne fonctionne pas.

Discussion

4 discussions

  • 1
    ThomasFromParis

    Une erreur s’est glissée dans la fonction ci-dessus :

    la ligne

    @ldap_set_option( $conn, LDAP_OPT_PROTOCOL_VERSION, 3 );

    doit devenir

    @ldap_set_option( $GLOBALS[’ldap_link’], LDAP_OPT_PROTOCOL_VERSION, 3 );

    pour que cela fonctionne.

    Reply to this message

  • Bonjour,
    Je viens d’installer SPIP 1.92d sur notre serveur intranet et decide d’utiliser Ldap.
    L’installation de ldap s’est bien passe mais, excusez-moi mon ignorance, je ne vois aucune difference. Comment faire pour activer l’authentification (afficher le formulaire login/password)? Faut-il que je modifie qqch dans le squelette?
    Merci beaucoup!

    Reply to this message

  • Bonjour,

    avec cette modification, l’identification LDAP marche de nouveau sur le site intranet de mon association.

    Merci !

    Reply to this message

  • 1
    Heitz Alex.

    A noter qu’il est nécessaire, dans le cas d’un annuaire LDAP de type Active Directory tournant sous Windows Server 2003, d’utiliser en supplément le paramètre suivant :
    @ldap_set_option($GLOBALS['ldap_link'], LDAP_OPT_REFERRALS, 0);

    Sous peine d’avoir droit à des erreurs de type “Operations error” via ldap_error.

    • Ma connexion au LDAP, fonctionne , néanmoins il me répond toujours password erroné !

      ????

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom