Alors vous avez développé une belle application en PHP, et vous souhaitez que les utilisateurs s’authentifient avec l’annuaire Microsoft Active Directory de votre entreprise ?

Voici un rapide mode d’emploi. L’exemple est pour un système Linux Debian 10. Vous aurez besoin d’installer quelques paquets:

$ sudo apt install php-ldap
$ sudo phpenmod ldap
$ sudo service apache2 restart

Cette version condensée utilise 4 variables : $ldap_server, $domain, $user_pseudo, et $user_password.

  • $ldap_server est le nom ou l’adresse IP du contrôleur de domaine Microsoft Active Directory sur votre réseau
  • $domain est le nom de votre domaine Active Directory
  • $user_pseudo et $user_password sont le login et le mot de passe de l’utilisateur qui veut se connecter.

Voici à quoi peut ressembler votre script d’authentification, que vous pouvez appeler par exemple « auth.php« :

<?php

$ldap_server='monserveurad.maboite.com';
$domain='mondomainead';

// ----------------- AUTHENTIFICATION LDAP ------------------------
if ( isset($_POST['user_password']) ) {

       $user_pseudo=$_POST['user_pseudo'];
       $user_password=$_POST['user_password'];

        // --- Connexion au serveur AD
        $ad = ldap_connect($ldap_server);

        // Définissons quelques variables...
        ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
        ldap_set_option($ad, LDAP_OPT_REFERRALS, 0);

        // echo "Serveur AD : $ldap_server Domaine : $domain Pseudo : $user_pseudo Mot de passe : $user_password <br>";

       // On tente l'authentification 
       @$bd = ldap_bind($ad,"$user_pseudo@$domain","$user_password");

       if ( $bd) { // Si authentification ok, redirection vers le menu principal de l'appli
             echo "Bienvenue $user_pseudo";
             echo "<meta http-equiv=refresh content=1;url=menu.php />";
       }
       else { echo "<p>Authentification échouée</p>" ; exit; }

        ldap_close($ad);
} else {
    echo "<form method=post>";
    echo "Votre identifiant <input type=text name=user_pseudo value=$user_pseudo >";
    echo "Votre mot de passe <input type=password name=user_password value=$user_password >";
    echo '<input type=submit>';
}
// ---------------- Fin authentification LDAP ----------------------

?>

                

Pensez aux autres, laissez vos commentaires ci-dessous…

Print Friendly, PDF & Email

Leave a Reply

You have to agree to the comment policy.

Blue Captcha Image
Refresh

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.