phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] NT Auth ...

[php] AW: [php] NT Auth ...

Gloss Mathias Mathias.Gloss_(at)_start.de
Mon, 25 Sep 2000 14:18:44 +0200


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