"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

PHP und Login über ActiveDirectory

Umlüx 07.09.2006 - 09:51 805 0
Posts

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 8962
Tach!

Um endlich den zusätzlichen Verwaltungsaufwand einer zweiten Userliste fürs Intranet wegzuräumen würde ich gerne die User über die AD authentifizieren. Zugriff über LDAP.


Edit:

ok irgendwie hab ich es nun geschafft. sollte es jemand einmal brauchen oder ein profi verbesserungsvorschläge für mich haben, hier ist meine Version

Code: PHP
$username = $_POST["username"];
$password = $_POST["password"];

$ldap_host = "10.37.101.210"; // LDAP Server
$base_dn = "DC=springerreisen,DC=com";
$filter = "(samaccountname=$username)";

$ldap_user  = "CN=LDAP_search,OU=Benutzer,DC=springerreisen,DC=com"; // Such Account
$ldap_pass = "*********";

// Verbindung zum LDAP Server
$connect = ldap_connect( $ldap_host, $ldap_port)
         or exit(">>Could not connect to LDAP server<<");
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
// Einloggen des Suchaccountes
$bind = ldap_bind($connect, $ldap_user, $ldap_pass)
     or exit(">>Could not bind to $ldap_host<<");
// Suchen nach dem Benutzer
$read = ldap_search($connect, $base_dn, $filter)
     or exit(">>Unable to search ldap server<<");
$info = ldap_get_entries($connect, $read);
if($info["count"]==0)
	echo "Kein Benutzer <b>$username</b> gefunden.";
else {
	// Anmelden des Benutzers
	$user_dn = $info["0"]["distinguishedname"]["0"];
	$bind = ldap_bind($connect, $user_dn, $password)
    	or exit("Falsches Passwort für Benutzer <b>$username</b>");
	echo "$user_dn ... verbunden";
Bearbeitet von Umlüx am 07.09.2006, 13:41
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz