Authentifizierung gegen ldap mit PHP, active directory, während der Verwendung von IE/Firefox
Dieser code unten überprüft die Anmeldeinformationen der Benutzer gegen ldap
<?php
$ldaphost = "ldap.domain.com";
$ldapport = 389;
$ds = ldap_connect($ldaphost, $ldapport)
or die("Could not connect to $ldaphost");
if ($ds)
{
$username = "[email protected]";
$upasswd = "pass";
$ldapbind = ldap_bind($ds, $username, $upasswd);
if ($ldapbind)
{print "Congratulations! $username is authenticated.";}
else
{print "Access Denied!";}
}
?>
Meine Anwender nutzen Firefox und IE, und ich weiß, passieren kann, Ihre Active Directory-Anmeldedaten nahtlos.
Ich will einfach nur überprüfen Sie die Anzeigengruppe aus, um zu sehen, wenn Benutzername in gefunden gibt, wenn ja, die Seite anzuzeigen, andernfalls wird die Aufforderung zur Eingabe der Anmeldeinformationen.
Da unsere Benutzer sind bereits angemeldet sind, in der domain-controller, ich will schnappen Sie sich Ihren Benutzernamen, um zu sehen, wenn es gefunden wurde, in der bestimmten Gruppe, dann lassen Sie Sie in, sonst auffordern Benutzer zur Eingabe von Anmeldeinformationen. Wie ist das möglich?
- Gibt es eine Frage, in der es die irgendwo?
- Hinzugefügt Frage.
- Ausgezeichnet. Danke. =)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie eigentlich nicht brauchen, um die Kommunikation mit dem Active Directory-server von deinem PP-code zu erreichen, was Sie wollen, angesichts der Tatsache, dass Sie verwenden IIS als web-server.
Das Schlüsselwort hier ist Integrierte Windows-Authentifizierung - das ist der Wortlaut djn gesucht. Wenn diese option eingeschaltet ist (und der anonyme Zugriff wird verweigert) IIS überprüfen der bereitgestellten Anmeldeinformationen für die Active Directory-und NTFS-filesystem-Berechtigungen, der die angeforderten Ressourcen. Somit können Sie Steuern den Zugriff auf Ihre Dateien mit einem einfachen NTFS access control-Mechanismen.
Wenn Ihre Benutzer den IE nutzen, die Sie selbst nicht haben, um geben Sie Ihre Anmeldeinformationen eingeben, da diese automatisch über so genannte SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism) und die Ihr zugrunde liegenden Mechanismen Kerberos oder NTLMSSP je nachdem, was Ihr client und server ist in der Lage Verarbeitung.
Soweit ich weiß ist Firefox in der Lage, mit der hand über die Windows-Anmeldeinformationen, um den server automatisch zu. Sie nur anpassen, um eine configuration option zu schalten, die Funktion, - weiß nicht, ob diese information noch gültig ist, mit Firefox 3.5.x.
Wenn Sie Apache auf einem *nix-system haben Sie zu greifen, um einige server-side-Modul zum behandeln einer die Integrierte Windows-Authentifizierung-ähnliches system. Mögliche Optionen sind (weiß nicht, ob Sie tatsächlich noch erhalten oder stabil):
mod_auth_ntlm_winbind
mod_auth_kerb
mod_ntlm
Für Apache unter Windows gibt es:
mod_ntlm
(veraltet; nicht das gleiche wiemod_ntlm
oben)mod_auth_sspi
(Nachfolger vonmod_ntlm
)Bitte beachten Sie, dass die meisten dieser Module sind anscheinend sehr alt.
Arbeiten jetzt gerade an einem ähnlichen setup: ich übersprang alle, die LDAP-Zeug mit dem web-server authentifiziert den client mit AD lassen, bevor Sie ihn an (sorry, ich kann mich nicht erinnern, was diese nennt man in der M$ - alternativen Universum).
Wenn der client reicht das PHP-script, das er in der ANZEIGE, und ich habe seinen Benutzernamen sowohl in
$_SERVER["AUTH_USER"]
und in$_SERVER["LOGON_USER"]
, sonst wird er nie zu dem Skript.