Authentification par ldap

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 146 fois - Téléchargée 27 fois

Contenu du snippet

cela permet de s'authentifier avec un annuaire ldap !

le resultat trouvé celui ci est retourné vers la fenetre qui avait appelé l'authentification ( c le window.opener. ...)

le mkntpwd c une appli en c que j'utilise pour crypter mes pass car ceux stocké dans mon ldap etait deja crypté par cette appli !

voila en esperant que sa pourra aidé du monde !

Source / Exemple :


<?
  session_start();

  if($saisieEffectuer) {

    //recuperation du pass crypter . on fait un rtrim pour supprimer les espace a la fin.
    $pwd=rtrim(shell_exec("mkntpwd.exe -N ".$pass.""));

    //connection a ldap
    $ds=ldap_connect("200.200.4.192");
    if ($ds) {

        $r=ldap_bind($ds);
        //recherche
        $sr=ldap_search($ds,"dc=entreprise, dc=fr","uid=".$login."");
        $info = ldap_get_entries($ds, $sr);
        //comparaison du pass dans ldap et celui saisi+crypté
        if($info[0]["ntpassword"][0]==$pwd) {
           //meme pass donc enregistrement dans session du login et du nom
           $_SESSION["login"]=$login;
           $_SESSION["libelle"]=$info[0]["cn"][0];

           //pour quitter fenetre d'authentification et inscrire dans champ dessinateur le nom du dessinateur
           echo "<script language='JavaScript'>window.opener.DessinateurOF.value='".$_SESSION["libelle"]."'; window.close()</script>";

        }
        else {
           //mauvais pass
           $_SESSION["login"]="";
           $_SESSION["libelle"]="";
           echo "<script language='JavaScript'>window.opener.DessinateurOF.value='".$_SESSION["libelle"]."'; alert('Mauvais pass.'); document.authentification.cours.value='';</script>";
        }
        //fermeture connection a ldap
        ldap_close($ds);

    }
  }
?>

<html>
<head>
<title>Authentification</title>
</head>
<body bgcolor="#ffff99">
<br>

<script language="Javascript">

   function verifierSaisie() {
      if(document.authentification.login.value=="") {
         alert("Login non saisi.");
      }
      else {
         if(document.authentification.pass.value=="") {
            alert("Pass non saisi");
         }
         else {
            document.authentification.cours.value="en cours...";
            document.authentification.submit();
         }
      }
   }

</script>

<div align="center">
<form name="authentification" action="<? $PHP_SELF ?>" method="post">
<table width="90%" border="1" cellspacing="0" bordercolor="#000000">
  <tr>
    <td colspan="2" align="center"><b><font size="+1">Authentification</font></b></td>
  </tr>
  <tr>
    <td>Login :</td>
    <td><input style="border-style:solid" type="text" name="login" size="16" maxlength="30"></td>
  </tr>
  <tr>
    <td>Pass :</td>
    <td><input style="border-style:solid" type="password" name="pass" size="16" maxlength="30"></td>
  </tr>
  <tr>

    <td colspan="2" align="center"><input type="hidden" value="true" name="saisieEffectuer">
                                   <input type="button" value="Annuler" onclick="window.close()">&nbsp;
                                   <input type="button" OnClick="verifierSaisie()" value="    Ok    "></td>
  </tr>
</table>
<input type='text' style='border:none; background-color:#ffff99' name='cours' value='' size=11 >
</form>
</div>  

</body>
</html>

A voir également

Ajouter un commentaire Commentaires
cs_paillon Messages postés 4 Date d'inscription dimanche 11 avril 2010 Statut Membre Dernière intervention 3 juin 2013
30 mai 2013 à 14:11
Bonjour a Tous

ça fait un moment que je me bats aces lpad mais je susi toujours en flou , pouvez vous corriger mon code SVP , c'est une page authentification en php par lpad pour les utilisateurs ( pas super-utilisateur )

Merci d'avance

<?php
$server = "192.168.85.128";
$port = "389";

$login = 'toto';
$pass = 'toto';

$con = @ldap_connect($server) or die('Impossible de se connecter au serveur LDAP.');



if (@ldap_bind($con)) {

$sr = @ldap_search ($con,'ou=blibli,dc=blabla,dc=fr', 'uid='.$login);
$info = @ldap_get_entries($con, $sr);


if ($info['count'] == 0) {

echo 'compte inexistant !!';
}
else {

if (@ldap_bind($con,$info[0]['dn'],$pass)) {
echo 'authentifi‚ !!';
}
else {
echo 'saisie incorrecte !!';
}
}
}
else {
echo 'connexion LDAP impossible !';
}
ldap_close($con);
}



?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head><title>

AUTHENTIFICATION

</title></head>






<form action="check_2.php" method="post">
<center>


Bienvenue chez Atos

<form action="auth.php">




<table width=\"300\" border=\"0\" align=\"center\" cellpadding=\"8\" cellspacing=\"1\" bgcolor=\"#CCCCCC\">
----

<center> Login </center>,
<center> </center>,

----

<center> Password </center>,
<center> </center>


</form>
</table>
</center>

</html>
mehdi7604 Messages postés 118 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 6 mars 2015
31 oct. 2011 à 03:00
Tu peux remplacer le programme exécutable avec une fonction de cryptage;
cs_suzye Messages postés 15 Date d'inscription lundi 12 mars 2007 Statut Membre Dernière intervention 15 mars 2007
17 mars 2007 à 13:35
merci je regarderai tout cela et je te dirai quoi c'est bien gentil.
fmazoue Messages postés 335 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 1 septembre 2015 1
14 mars 2007 à 18:57
pour moi libellé sa devais etre la fonction de la personne je pense.

et pour le ldap_search($ds,"dc=entreprise, dc=fr","uid=".$login.""); c normal : je recherche ce login . Si il le trouve pas c que le gars existe pas sinon il me renvoie ses infos et du coup je peux comparer le pass .
cs_suzye Messages postés 15 Date d'inscription lundi 12 mars 2007 Statut Membre Dernière intervention 15 mars 2007
14 mars 2007 à 13:53
que représente ceci $_SESSION["libelle"]="";exactement pour ton annuaire "libelle" c'est quoi exactement et $sr=ldap_search($ds,"dc=entreprise, dc=fr","uid=".$login.""); pourquoi mettre ceci :","uid=".$login.""); alors que c'est pour chercher le login et le password.je sais que je te dérange , je suis désolé
Afficher les 16 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.