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