Jump to content
Melde dich an, um diesen Inhalt zu abonnieren  
Matze1708

PHP Active Directory auf IIS8.5

Empfohlene Beiträge

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"));

?>

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
Melde dich an, um diesen Inhalt zu abonnieren  

×