Matze1708 10 Geschrieben 20. Dezember 2016 Melden Teilen Geschrieben 20. Dezember 2016 Guten Tag, ich fummel schon seit einiger Zeit an einem Thema rum. Ich habe ein Skript Welches mir aus unserer Telefonanlage diverse Dinge ausliest. Das wird per PHP gemacht. Dafür habe ich von der IT einen WinSrv2012 R" mit PHP 7.XX und dem IIS 8.5 bekommen. Zugangsdaten für den LDAP Server etc habe ich auch bekommen. Folgendes möchte ich realisieren: Ein user darf die Seite für die Telefonanlage nur öffnen wenn dieser in einer Gruppe XY im AD ist zusätzlich möchte ich aber noch ein Attribut aus dem AD auslesen. Ich hänge aber jetzt schon am kleinsten Teil. Ich bekomme nicht anständig eine Verbinung bzw ein BIND zusammen. Ich habe dieses Beispiel hier verwendet: http://www.serverhowto.de/Das-Active-Directory-mit-PHP-und-LDAP-abfragen.356.0.html Ich habe natürlich die Zugangsdaten vom LADP Server sowie die Adresse und die Search Basis eingestellt. Habe das auf eine OU eingegrenzt, damit ich im Test nicht ewig warten muss. ABER ich bekomme solche Meldungen hier: PHP Notice: Undefined index: givenname in C:\websites\SaSViewer\ldap\erstes_beispiel.php on line 47 PHP Notice: Undefined index: sn in C:\websites\SaSViewer\ldap\erstes_beispiel.php on line 48 PHP Notice: Undefined index: mail in C:\websites\SaSViewer\ldap\erstes_beispiel.php on line 49 Könnt Ihr mir dabei helfen? Ich sag mal wenn das grobe geht. Den Rest bekomme ich bestimmt irgendwie hingefummelt. Vielen Lieben Dank Gruß Matthias Hallo, nur mal als Beispiel: Hier bekomme ich trotz Error Reporting den 500 Fehler. In der PHP.ini ist LDAP aktiv! <?php error_reporting(E_ALL); ini_set('display_errors', 1) function get_groups($user) { // Active Directory server $ldap_host = "LDAPSRV.gruppe.intra"; // Active Directory DN, base path for our querying user $ldap_dn = "OU=Standort,OU=Firma,DC=gruppe,DC=intra"; // Active Directory user for querying $query_user = "user@gruppe.intra";//.$ldap_host; $password = "XXXX"; // Connect to AD $ldap = ldap_connect($ldap_host) or die("Could not connect to LDAP"); ldap_bind($ldap,$query_user,$password) or die("Could not bind to LDAP"); // Search AD $results = ldap_search($ldap,$ldap_dn,"(samaccountname=$user)",array("memberof","primarygroupid")); $entries = ldap_get_entries($ldap, $results); // No information found, bad user if($entries['count'] == 0) return false; // Get groups and primary group token $output = $entries[0]['memberof']; $token = $entries[0]['primarygroupid'][0]; // Remove extraneous first entry array_shift($output); // We need to look up the primary group, get list of all groups $results2 = ldap_search($ldap,$ldap_dn,"(objectcategory=group)",array("distinguishedname","primarygrouptoken")); $entries2 = ldap_get_entries($ldap, $results2); // Remove extraneous first entry array_shift($entries2); // Loop through and find group with a matching primary group token foreach($entries2 as $e) { if($e['primarygrouptoken'][0] == $token) { // Primary group found, add it to output array $output[] = $e['distinguishedname'][0]; // Break loop break; } } return $output; } // Example Usage print_r(get_groups("Jane")); ?> Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 23. Dezember 2016 Melden Teilen Geschrieben 23. Dezember 2016 Kannst du mal mit LDP die Bindung versuchen https://technet.microsoft.com/de-de/library/cc754970(v=ws.11).aspx Dann siehst du schonmal, ob die Infrastruktur funktioniert, oder es an der Syntax liegt. PHP kenne ich leider nicht besonders gut. Zitieren Link zu diesem Kommentar
Matze1708 10 Geschrieben 3. Januar 2017 Autor Melden Teilen Geschrieben 3. Januar 2017 Hallo, ich greife das Thema noch mal auf. Also per LDP klappt es ohne Probleme. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.