Utilización de LDAP con PHP

Gracias a Albert hoy he conocido cómo poder identificarme en el dominio de un red a través de LDAP desde una página PHP.

Para que funcione en linux es necesario tener instalado el módulo ldap.

Aquí dejo un código de ejemplo de su utilización. Seguro que algún día me hará falta.


<?php

$exists=false;
if($user) $exists=checkNTuser($user,$pass);

if(!$user || !$password || ($user && $exists==false))
{
echo “<table border=0><form method=post action=$PHP_SELF ><tr><td>LOGIN:</td><td><input type=text name=user value=\”$user\” ></td></tr><tr><td>PASS:</td><td><input type=password name=pass value=” ></td></tr><tr><td></td><td><input type=submit value=’>>’ ></td></tr></form></table><br>”;
}

if($user && $exists==true) echo “USER <font color=green>OK</font><br><br>”;
else if($user) echo “USER <font color=red>ERR</font><br><br>”;

function checkNTuser($username,$password,$domainname=”inout”,$ldapserver=”ldap://192.168.61.8″)
{
$authuser=$username.”@”.$domainname;
if($connect=ldap_connect($ldapserver))
{
if($bind=@ldap_bind($connect, $authuser, $password))
{
@ldap_close($connect);
return true;
}
else
{
@ldap_close($connect);
return false;
}
}
@ldap_close($connect);
return false;
}

echo “## SOURCE ###########################################################<br><br>”;
$fname=basename($PHP_SELF);
$f=fopen($fname,”r”);
if($f)
{
$data=fread($f,filesize($fname));
$data=ereg_replace(“\n”,”\n<br>”,htmlentities($data));
echo $data;
}
?>

Entradas relacionadas:

  1. Validar formulario en HTML5
  2. Backups en MySQL
  3. 10 funciones javascript
  4. Gestión de errores en javascript
  5. Try … catch en javascript
Publicado en: Programación
2 comentarios sobre “Utilización de LDAP con PHP
  1. jl_vasquezz@cantv.net dice:

    Excelente, me funcionó perfecto. Mil gracias.

  2. dreamerforyou@gmail.com dice:

    Algun día te hará falta… a mi me hacía falta ahora, justo lo que necesitaba, gracias por el codigo. Aunque recién lo probaré mañana en el trabajo.

    Saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*