2014-03-25 10 views
5

Ich beginne gerade mit LDAP und Windows Server 2012. Ich habe es geschafft, meinen PHP-Code zu binden an Active Directory mit einem Administrator-Konto, aber ich kann scheinen Erstellen Sie einen neuen Benutzer mit der Funktion ldap_add.ldap_add(): Hinzufügen: Server ist nicht bereit

Ich verwende Windows Server 2012 R2 und IIS 8. Ich habe die Zertifizierungsstelle mit einem Unternehmensstammzertifikat installiert, und ich kann eine Verbindung zu AD mithilfe von ldp.exe mit einer SSL-Verbindung herstellen.

Ich habe durch Google sowie die "mögliche doppelte Threads" geschaut, aber keiner von ihnen hat mir eine funktionierende Antwort in den letzten paar Stunden zur Verfügung gestellt, die ich gesucht habe.

Wenn ich den folgenden PHP-Code verwenden:

<?php 

$ldaprdn = 'netclass\Administrator'; 
$ldappass = 'password here'; 

    $ldapconn = ldap_connect('ldap://server.netclass.co.uk') 
    or die("Could not connect to LDAP server."); 

if ($ldapconn) { 

    // binding to ldap server 
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass); 

    // verify binding 
    if ($ldapbind) { 
     echo "LDAP bind successful..."; 
    } else { 
     echo "LDAP bind failed..."; 
    } 


     // prepare data 
    $info["givenname"] = "Ronnie Brown"; 
    $info["samaccountname"] = "br01"; 
    $info["objectclass"] = "person"; 

    // add data to directory 
    $r = ldap_add($ldapconn, "cn=Ronnie,dc=netclass,dc=co,dc=uk", $info); //Line 28 

} 
?> 

ich die Ausgabe:

LDAP bind successful... 
Warning: ldap_add(): Add: Server is unwilling to perform in C:\inetpub\wwwroot\adduser.php on line 28 

ich versucht habe, SSL zu aktivieren, indem Sie:

$ldapconn = ldap_connect('ldap://server.netclass.co.uk') 

zu

$ldapconn = ldap_connect('ldaps://server.netclass.co.uk') 

Aber dann bekomme ich folgende Fehlermeldung:

Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server in C:\inetpub\wwwroot\adduser.php on line 12 
LDAP bind failed... 
Warning: ldap_add(): Add: Can't contact LDAP server in C:\inetpub\wwwroot\adduser.php on line 28 

Antwort

4

ich es geschafft, heute die Antwort zu erarbeiten.

Ich habe die folgende Zeile in /etc/ldap/ldap.conf

TLS_REQCERT never 

Danach wurde ich verbinden konnte, aber immer noch die Fehlermeldung bekommen:

Server Unwilling to Perform 

Das lag daran, Ich habe versucht, das Passwort Klartext wie zu setzen:

Sie müssen es zuerst so onc verschlüsseln e Ich ändere meinen Code, damit es funktioniert:

## Create Unicode password 
## Assumes that given password is in UTF-8 encoding! 
## Adjust it to the actual encoding of the password 
$pwdtxt = "MyPassword1234"; 
$newPassword = '"' . $pwdtxt . '"'; 

$newPass = iconv('UTF-8', 'UTF-16LE', $newPassword); 

$ldaprecord["unicodepwd"] = $newPassw; 

Hoffe, das hilft jemandem!

Verwandte Themen