Mailinglisten-Archive |
Aloha,
> ----------
> Von: Sebastian Fuentes[SMTP:sebastian.fuentes_(at)_nets-ag.de]
>
> Ich arbeite gerade an einem intraNet - NT ... und wüsste gerne ob es eine
> Möglickeit gibt den NT Logon als ersten Schritt zum einloggen zu benutzen
> ... hab zwar sowas noch nie gesehn, es wäre aber prinzipell ein coole
> Lösung.
>
Jo, das hab ich auch grad in Arbeit.
Folgendes habe ich bisher herausgefunden:
1) Angeblich soll die PHPLIB laut Kristians Anleitung auch gegen einen
NT-Domänencontroller
authentifizieren können. Nur konnte mir hier keiner die Frage beantworten
wie das geht.
(Die Doku der PHPLIB und die Webseite auch nicht - auch nicht das
Mailinglistenarchiv der
PHPLIB) Also schließe ich draus, daß das ein Wunschtraum ist.
2) Wenn du den IIS als Webserver benutzt, und PHP 3 (hier läuft 3.0.14),
dann kannst du folgenden
Trick anwenden:
Entziehe dem IUSUR_<Webservername> (das ist der User, unter dem der
Webserver läuft), die
Berechtigungen für die PHP-Seite. Dann poppt das bekannte graue Fenster
auf, und du kannst
dein NT-Namen, Passwort und Domäne angeben. Wenn dieser User das
PHP-Script lesen darf
(entweder die Gruppe Alle Benutzer, der Benutzer oder eine Gruppe, der
der Benutzer angehört,
hat Leseberechtigung auf das PHP-Script) dann stehen dir folgende
Umgebungsvariablen zur
Verfügung:
AUTH_PASSWORD <NT-Passwort im Klartext>
AUTH_TYPE Basic
AUTH_USER gloss <--- NT-Benutzername
Damit lassen sich recht nette Scherze treiben (incl. alle NT-Passwörter
mitprotokollieren ;-)
Wenn du Active-State-Perl, neuste Version (Build 618, mit 613 gehts nicht),
installiert hast,
und den Apache-Webserver mit PHP als Modul, kannst du auch die
Authentifizierung über
PHP machen. Die dir übergebenen Daten (User, Passwort, Die Domäne muss hier
immer
gleich sein), dann kannst du folgendes verwenden, um zu überprüfen ob dieser
Benutzer/
Domäne/Passwort zusammenpassen:
use Win32::AuthenticateUser;
die ("Aufrufparameter: Domäne Benutzer Passwort") if ( $#ARGV != 2);
print "Arbeite ..... \n";
if ( AuthenticateUser($ARGV[0],$ARGV[1],$ARGV[2]) ) {
print "Ihre Angaben sind korrekt !\n";
}
else{
print "Ihre Angaben sind leider falsch\n";
}
Du musst das Perl-script etwas umbaun, und dann mit exec/system/was auch
immer ausführen.
Die Funktion AuthenticateUser liefert im Erfolgsfall 1 zurück, sonst nix.
Falls noch jemand anders mehr herausgefunden hat ---> bin auch an Infos
interessiert :-)
Viele Grüße, Mathias
php::bar PHP Wiki - Listenarchive