PHP - Crear usuarios Active Directory con PHP

 
Vista:
Imágen de perfil de Yurian

Crear usuarios Active Directory con PHP

Publicado por Yurian (1 intervención) el 03/02/2017 15:31:16
Tengo problemas al crear usuarios en Active Directory mediante php, puedo conectarme, autenticar usuarios, crear un grupo, pero al crear usuarios retorna falso, he buscado en google y al parecer para esa operación la conexión debe ser segura, pero con SSL no logro conectar.

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
## From form
$CN = "Test";
$givenName = "Test";
$SN = "Test";
$mail = "[email protected].sld.cu";
$Phone = "323635";
$pwdtxt = "123456";
 
$AD_server = "ldap://192.168.1.3";  //******* Sin SSL:   ldap_add(): Add: Server is unwilling to perform
$AD_server = "ldaps://192.168.1.3"; //******* Con SSL:   ldap_bind(): Unable to bind to server: Can't contact LDAP server

$AD_Auth_User = 'CN=administrador,CN=Users,DC=local,DC=com'; //Administrative user
$AD_Auth_PWD = "Pasword"; //The password

$dn = 'CN='.$CN.',CN=Users,DC=local,DC=com';

## Create Unicode password
$newPassword = "\"" . $pwdtxt . "\"";

## Crear contraseña Unicode
## Supone que la contraseña dada está en la codificación UTF-8!
## Ajústelo a la codificación real de la contraseña

$len = strlen($newPassword);
$newPassw = "";

for($i=0;$i<$len;$i++) {
    $newPassw .= "{$newPassword{$i}}\000";
}

## CONNNECT TO AD
$ds = ldap_connect($AD_server) or die('No se puede conectar al server ldap');
if ($ds) {
     ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); // IMPORTANT
     ldap_set_option($ds, LDAP_OPT_X_TLS_REQUIRE_CERT, LDAP_OPT_X_TLS_NEVER);
	
     $r = ldap_bind($ds, $AD_Auth_User, $AD_Auth_PWD); //BIND

    $ldaprecord['cn'] = $CN;
    $ldaprecord['givenName'] = $givenName;
    $ldaprecord['sn'] = $SN;
    $ldaprecord['objectclass'][0] = "top";
    $ldaprecord['objectclass'][1] = "person";
    $ldaprecord['objectclass'][1] = "organizationalPerson";
    $ldaprecord['objectclass'][2] = "user";
    $ldaprecord['mail'] = $mail;
    $ldaprecord['telephoneNumber'] = $Phone;
    $ldaprecord["unicodePwd"] = $newPassw;
    $ldaprecord["sAMAccountName"] = $CN;
    $ldaprecord["UserAccountControl"] = "512";

    $r = ldap_add($ds, $dn, $ldaprecord);
    var_dump($r);
} else {
    echo "cannot connect to LDAP server at $AD_server.";
}

?>
Cuando no uso SSL el error es: ldap_add(): Add: Server is unwilling to perform
Cuando uso SSL el error es: ldap_bind(): Unable to bind to server: Can't contact


Por favor agradecería si pudieran ayudarme con este problema, o con algún código o configuración que funcione.
Muchas Gracias.
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