begin process at 2010 03 12 22:16:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > AUTHENTIFICATION PAR LDAP

AUTHENTIFICATION PAR LDAP


 Information sur la source

Note :
7 / 10 - par 3 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Initié Date de création :19/01/2004 Vu :14 796

Auteur : fmazoue

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note


 Description

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

  • <?
  • 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>
<?
  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>



 Sources du même auteur

Source avec Zip Source avec une capture FORUM SIMPLE V2
Source avec Zip Source avec une capture SIMPLE FORUM PHP

 Sources de la même categorie

CALCUL D'UNE DISTANCE ORTHONORMIQUE par bossfoot
Source avec Zip ESPACE ADMIN SIMPLE par mousaid_88
Source avec Zip IMAGINE-CMS V2.20 par djack69
Source avec Zip AFFICHAGE ET GESTION DE DIAPORAMA EN PHP SANS BASE DE DONNÉE... par mldvb
Source avec Zip Source avec une capture PARSER ALLOCINE par cyrhades

Commentaires et avis

Commentaire de marcel_boulette le 25/05/2005 15:54:59

Salut,
Je viens d'essayer cette source pour les besoins d'un intranet sécurisé par LDAP. Mais apparament ça ne fonctionne pas.
De plus, sans compiler la source du programme mkntpass.exe, il n'y a aucun moyen de le récupèrer.
Pourrais tu t'assurer que la source marche au moins chez toi.

Merci

Louis

Commentaire de fazora le 26/05/2005 15:06:53

ça ne marche pas !!!

Commentaire de suzye le 12/03/2007 16:33:36

bonjour à tous

j'ai tester cette source ça ne fonctionne pas(peut-être je l'ai mal fais si vous savez comment le faire faite moi signe) quelqu'un pourrait-il m'aider car je dois me logger sur un annuaire ldap à l'aide d'un login /password en langage php sur un intranet mais je n'arrive pas merci de m'aider car je galére grave.

Commentaire de fmazoue le 12/03/2007 18:35:08

peut etre a cause de mkntpwd ... enleve le ...
et sinon donne nous plus de précisions sur le pb.

Commentaire de suzye le 13/03/2007 09:14:44

merci de me répondre c'est bien genti je dois pouvoir me logger sur un serveur ldap à l'aide d'un login/password en langage php et avec ton code je n'y arrive pas voilà ce que j'ai modifier

<?
  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("dcuxp");
    if ($ds) {

        $r=ldap_bind($ds);
        //recherche
        $sr=ldap_search($ds,"dc=ipal, dc=be","uid=".$login."");
//$sr=ldap_search($ds,"ou=People,dc=ipal,dc=be", "sn=h*");
        $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
   //$preLogin="cn=admin,dc=ipal,dc=be";
           //$_SESSION["login"]=$preLogin.$login;
   $_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='test'; window.close()</script>";
        }
        else
{
          //mauvais pass
           $_SESSION["login"]="";
           $_SESSION["libelle"]="";
   echo "<script language='JavaScript'>window.opener.DessinateurOF.value='test2; alert('Mauvais pass.'); document.authentification.cours.value='';</script>";
        }
        //fermeture connection a ldap
        ldap_close($ds);

    }
  }
?>

j'ai été obligé de mettre test et test2 parceque qd je ne faisais pas ça j'avais ses 2 echo qui s'affichais même qd je mettais ses 2ligne en commentaire elles s'affichaient merci de m'aider je galére grave.

Commentaire de suzye le 13/03/2007 09:22:59

echo "<script language='JavaScript'>window.opener.DessinateurOF.value='".$_SESSION["libelle"]."'; window.close()</script>";

que fais exactement cette ligne?

Commentaire de suzye le 13/03/2007 09:44:20

le probléme viens aussi de cette récupération:

window.opener.DessinateurOF.value='".$_SESSION["libelle"]."'; window.close()
quand je ne met pas test à la place de  ".$_SESSION["libelle"]." j'ai toute cette ligne qui s'affiche et tout le reste du code même quand je l'ai met en commentaire .merci

Commentaire de fmazoue le 13/03/2007 16:50:14

window sa doit etre ta fenetre d'authentification . et window.opener sa doit etre celui qui appele ta fenetre d'authentification. Donc en fait window.opener.DessinateurOF.value= permet d'afficher sur la fenetre qui demande l'authentification le resultat de l'authentification (le nom de la personne authentifiée .)

si tu n'as pas l'outil mkntpwd supprime la ligne qui l'utilise car sa pourrais poser des pb ...

ensuite je conanis pas ton schema de ton annuaire ldap mais est ce que les mot de passe de tes utilisateur sont bien rangé dans ntpassword ? si oui c ok si non eh bien il te renvoie peut etre vide du coup si tu n'as pas non plus l'outil mkntpwd alors celui aussi te renvoi vide et donc dans le test if($info[0]["ntpassword"][0]==$pwd) il peut penser que vide == vide ...

Pour le reste c'est vraiment très loin et sa fait longtemps que j'ai pas touché a ldap et au php donc je sais pas si je peut trop t'aider ...

Commentaire de suzye le 13/03/2007 17:22:38

merci alors je devrais creer 2 fenêtre (windows et windows.opener)

plus simple est ce que tu n'as pas un script qui me permet de me logger sur le serveur ldap avec un formulaire qui me demande login et password et en remplissant ses 2champs que je sois logger sans ttes ses fenêtres (celle qui appelle et fenêtre d'authentification) juste un truc pour se logger qd tu as déja tes users dans ton annuaire merci je galére grave pour cela et sans trouver je n'avance pas en stage et c'est grave merci si tu peux m'aider.

Commentaire de fmazoue le 13/03/2007 17:33:53

J'ai pas verifier mais un truc comme çà si ton annuaire a la meme structure que le mien sa devrais le faire : <?
session_start();

if($saisieEffectuer) {

//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]==$pass) {
//meme pass donc enregistrement dans session du login et du nom
$_SESSION["login"]=$login;
$_SESSION["libelle"]=$info[0]["cn"][0];


echo "<script language='JavaScript'>alert('OK.'); document.authentification.cours.value='".$_SESSION["libelle"]."';</script>";

}
else {
//mauvais pass
$_SESSION["login"]="";
$_SESSION["libelle"]="";
echo "<script language='JavaScript'>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>

Commentaire de suzye le 14/03/2007 10:36:42

merci pour le code je teste cela tout suite et je te dirai quoi c'est bien genti de prendre ton temps pour me répondre je n'ai pas vu hier car j'ai eu probléme de connexion.merci

Commentaire de suzye le 14/03/2007 13:53:33

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é

Commentaire de fmazoue le 14/03/2007 18:57:51

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 .

Commentaire de suzye le 17/03/2007 13:35:10

merci je regarderai tout cela et je te dirai quoi c'est bien gentil.

 Ajouter un commentaire




Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales