Frage

Das folgende Code überprüft für die Benutzerdaten gegen ldap

<?php
$ldaphost = "ldap.domain.com";
$ldapport = 389;

$ds = ldap_connect($ldaphost, $ldapport)
or die("Could not connect to $ldaphost");

if ($ds) 
{
    $username = "johndoe@domain.com";
    $upasswd = "pass";

    $ldapbind = ldap_bind($ds, $username, $upasswd);

    if ($ldapbind) 
        {print "Congratulations! $username is authenticated.";}
    else 
        {print "Access Denied!";}
}
?>

Meine Benutzer verwenden Firefox und IE, und ich weiß, dass ihre ActiveDirectory- Anmeldeinformationen übergeben kann nahtlos.

Ich möchte nur die AD-Gruppe überprüfen, um zu sehen, ob der Benutzername dort gefunden wird, wenn ja, um die Seite anzuzeigen, sonst prompt in Anmeldeinformationen einzugeben.

Da unsere Benutzer bereits in die Domänen-Controller angemeldet sind, mag ich ihre Benutzername ergreifen, um zu sehen, ob es in der spezifischen Gruppe gefunden wurde, dann lassen Sie sie in, sonst prompt Benutzer zur Eingabe von Anmeldeinformationen. Wie ist das möglich?

War es hilfreich?

Lösung

Sie brauchen eigentlich nicht mit dem Active Directory-Server von Ihrem PP-Code zu kommunizieren, um zu erreichen, was man angesichts der Tatsache wollen, dass Sie IIS als Web-Server verwenden.

Das Schlüsselwort hier ist Integrierte Windows-Authentifizierung - das die Formulierung djn gesucht . Wenn diese Option aktiviert ist (und anonymer Zugriff verweigert wird) IIS wird die angegebenen Anmeldeinformationen gegen das Active Directory und die NTFS-Dateisystem Privilegien der angeforderten Ressourcen überprüfen. Sie können daher Zugriff auf Ihre Dateien steuern einfachen NTFS-Zugriffssteuerungsmechanismen verwendet wird.

Wenn die Benutzer IE verwenden sie selbst müssen in ihre Anmeldeinformationen nicht geben, da dies automatisch über so genannte erfolgt SPNEGO (Einfach und 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ß, Firefox zu Hand über die Windows-Anmeldeinformationen auf dem Server automatisch zu der Lage ist. Sie ony anpassen müssen eine Konfigurationsoption schalten Sie diese Funktion -. weiß nicht, ob diese Informationen noch gültig mit Firefox 3.5.x ist

Wenn Sie Apache laufen auf einem * nix-System werden Sie müssen einige Server-Side-Modul greifen ein Integrierte Windows-Authentifizierung -ähnlichen System zu handhaben. Mögliche Optionen sind (weiß nicht, ob sie überhaupt noch aufrechterhalten oder stabil ist):

Für Apache unter Windows gibt es:

Bitte beachten Sie, dass die meisten dieser Module scheinen sehr alt zu sein.

Andere Tipps

Arbeiten gerade jetzt auf einem ähnlichen Setup: übersprungen ich alle die LDAP Sachen den Web-Server mit dem Client mit AD Authentifizierung vor ihm im Stich gelassen (sorry, ich kann mich nicht erinnern, was das in der M alternativen Universum $ genannt).

Wenn der Kunde das PHP-Skript erreicht er in AD ist, und ich habe seine Benutzername sowohl in $_SERVER["AUTH_USER"] und in $_SERVER["LOGON_USER"], sonst bekommt er nie an das Skript.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top