PHP und Login über ActiveDirectory
Umlüx 07.09.2006 - 09:51 805 0
Umlüx
Huge Metal Fan
|
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 $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
|