PHP - PHP 7 Ldap login Active Directory

 
Vista:
sin imagen de perfil

PHP 7 Ldap login Active Directory

Publicado por Walter (1 intervención) el 20/07/2017 16:06:56
Buen dia queria solicitar su ayuda ya que estoy trabajando en PHP soy nuevo y no tengo mucha experiencia estoy realizando un login que valide con el actyve directory pero al momento de utilizar el codigo no me funciona no me da error ni nada pero no validad la variable de $Session ya que pongo cualquier dato y automaticamente pasa a la siguiente pagina.
Algun consejo o sugerencia que me puedan dar para solucionar este problema trabajo con PHP 7 y Xampp
De ante mano por cualquier ayuda muchas gracias.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
function authentication($user,$password) {
	// Config:
$ldap_server = "192.168.1.2";
	$servidor_dominio = "patito.com";
	$ldap_dn = "dc=patito.com,dc=patito";
	$filter = '(&(objectClass=user)(sAMAccountName='.$user.'))';
$attr = array('memberOf','displayName','sAMAccountName','description');
	// Script
	$conectado_LDAP = @ldap_connect($ldap_server);
	ldap_set_option($conectado_LDAP, LDAP_OPT_PROTOCOL_VERSION, 3);
	ldap_set_option($conectado_LDAP, LDAP_OPT_REFERRALS, 0);
 
if (ldap_errno($conectado_LDAP))
	{
		return(array(
		 'errorno' => -3,
		 'errorstr' => 'Configuration Error, Please contact support',
		 'errortxt' => 'Error #'.ldap_errno($conectado_LDAP).': '.ldap_err2str(ldap_errno($conectado_LDAP))
		));
	}
//Comprobando usuario y contraseña en Servidor LDAP";
		$autenticado_LDAP = @ldap_bind($conectado_LDAP,$user . "@" . $servidor_dominio,
 $password)or exit('Inicio de sesion invalido');

		$result = @ldap_search($conectado_LDAP, $ldap_dn, $filter, $attr);
		$entries = @ldap_get_entries($conectado_LDAP,$result);



	$_SESSION[user] = $entries[0]["samaccountname"][0];
	$_SESSION[name] = $entries[0]["displayname"][0];
	$description = explode(',',$entries[0]["description"][0]);
	$_SESSION[group] = $description[0];
	$_SESSION[level] = $description[1];


return($_SESSION);
ldap_unbind($conectado_LDAP);
}

?>


Pagina de Login

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
session_start();
require('functions.php');
require('include/conexion.php');
if (isSet($_POST['user']) && ($_POST['user']!="")) {
        authentication($_POST['user'],$_POST['password']);
 
		if ($_SESSION[user]!="") {
			header('Location: home.php');
        	}
} elseif (isset($_SESSION['user']) && ($_SESSION['user']!="")) {
    header('Location: home.php');
} else {
 
?>
 
Formulario que utilizo
<form method="post" action="index.php" enctype="multipart/form-data"><br>
<body id="page">
<p>
  <label for="usuario"><br>
    <br>
    USUARIO:</label>
  <input name="user" type="text" required id="user" placeholder="LIBELULA\">
  <label for="password"><br>
    <br>
    PASSWORD:
  </label>
  <input name="password" type="password" required id="password">
</p>
<p>
  <input type="submit" name="submit" id="submit" value="ACCEDER">
</p>
<p>&nbsp;</p>
</form>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder