PHP LDAP User Bekommen Parametern, Einschließlich der Dazugehörigen Gruppen

Was ist der beste Weg, um eine Suche auf den aktuellen Benutzer abrufen, alle Attribute einschließlich der dazugehörigen Gruppen in Active Directory mit LDAP /PHP?

Für Attribute, vor allem nur Vorname, Nachname und Anzeigename.

Verbundenen Gruppen nur die Gruppen der Benutzer Mitglied ist, wie das memberOf-Funktion.

Habe ich versucht, ein paar Möglichkeiten, aber kann nicht scheinen, um die richtige filter - /such-Kombination und die meisten Beispiele abdecken abrufen der Liste der Benutzer, wo es eine bekannte Gruppe.

Habe ich versucht, läuft das nach einem erfolgreichen bind:

$attributes = array("displayname");
$filter = "(&(sAMAccountName=$username))";
$result = ldap_search($ds, $ldapconfig['basedn'], $filter, $attributes);
$entries = ldap_get_entries($ds, $result);
if($entries["count"] > 0){
  echo "displayName: ".$entries[0]['displayname'][0]."<br/>";
 } else {
 echo("msg:'".ldap_error($ds)."'</br>");
 }

Gibt die folgende Fehler: "No such object".

UPDATE:

Dies ist der Letzte block habe ich versucht, und bin in der Lage, Ergebnisse zu erzielen, wenn ich print_r des $info-variable, aber die for-Klausel ist immer noch irrenden irgendwo aus. Ich habe die Basis-DN, um nur die dc-Attribute:

$filter="($SearchField=$SearchFor)";
$sr=ldap_search($ds, $basedn, $filter, $LDAPFieldsToFind);
$info = ldap_get_entries($ds, $sr);

if($info["count"] > 0) {
    for ($x=0; $x<$info["count"]; $x++) {
        $sam=$info[$x]['samaccountname'][0];
        $giv=$info[$x]['givenname'][0];
        $tel=$info[$x]['telephonenumber'][0];
        $email=$info[$x]['mail'][0];
        $nam=$info[$x]['cn'][0];
        $dir=$info[$x]['homedirectory'][0];
        $dir=strtolower($dir);
        $pos=strpos($dir,"home");
        $pos=$pos+5;
            if (stristr($sam, $SearchFor) && (strlen($dir) > 8)) {
              print "\nActive Directory says that:\n";
              print "CN is: ".$nam." \n";
              print "SAMAccountName is: ".$sam." \n";
              print "Given Name is: ".$giv." \n";
              print "Telephone is: ".$tel." \n";
              print "Home Directory is: ".$dir." \n";
            }   
    }
    }

Den print_r Ergebnisse:

( [count] => 1 [0] => Array ( [cn] => Array ( [count] => 1 [0] => George ) [0] => cn [givenname] => Array ( [count] => 1 [0] => George ) [1] => givenname [memberof] => Array ( [count] => 4 [0] => CN=EQCStaff,CN=Users,DC=EQC,DC=local [1] => CN=RDS Users,OU=Security Groups,OU=Service,DC=EQC,DC=local [2] => CN=SFTP Client Folders,OU=Security Groups,OU=Service,DC=EQC,DC=local [3] => CN=EQC Staff,OU=Security Groups,OU=Service,DC=EQC,DC=local ) [2] => memberof [samaccountname] => Array ( [count] => 1 [0] => gortiz ) [3] => samaccountname [mail] => Array ( [count] => 1 [0] => user@domain.com ) [4] => mail [count] => 5 [dn] => CN=George,OU=Users,OU=Accounts,DC=EQC,DC=local ) )
Was haben Sie versucht?
Vielen Dank für die Kommentare. Ich bearbeitete die ursprüngliche Frage mit einer Lösung die ich habe versucht, die führt eine Suche für das display-name-Attribut, wo der "sAMAccountName" entspricht den aktuellen Benutzer. Wird es wieder ein "No such object" Fehler.

InformationsquelleAutor George Ortiz | 2013-01-16

Schreibe einen Kommentar