Wichtig: User via PHP auslesen?

Alles, was PHP betrifft, kann hier besprochen werden.

Wichtig: User via PHP auslesen?

Postby Kristian Marcroft » 03. March 2004 16:41

Hi,

so nun muss ich hier auch mal was fragen....
Also was cih rbauche ist eine möglichkeit irgendwie über PHP den momentan angemeldeten User an einem NT System herauszufinden.
Ich brauche nur den User nicht das Passwd. User reicht mir vollkommen.

Hat jemand eine Ahnung wie ich das anstellen könnte?
Ich habe schon viel gelesen über:

$HTTP_REMOTE_USER;
$_SERVER['HTTP_REMOTE_USER'];
$HTTP_AUTHORIZATION;
$_SERVER['REMOTE_USER'];
$_SERVER['HTTP_AUTH_USER'];


Wie man sehen kann versuche cih auch den User vom client nicht vom Server auszulesen. Das bitte beachten. :)

Hat sonst noch jemand eine Idee, warum diese nicht funzen, oder wie ich es dennoch hinbekommen könnte.

Um kritiken vorzubeugen und hier eine riesen Diskussion ausartet, das alles ist für ein Intranet. Die User werden darüber informiert und es ist alles legel.

So long
KriS
User avatar
Kristian Marcroft
AF Moderator
 
Posts: 2962
Joined: 03. January 2003 12:08
Location: Diedorf

Postby Wiedmann » 03. March 2004 18:33

Hi KriS,

Ich denke mit mod_ntlm dürftest du zum Ziel kommen...
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Kristian Marcroft » 04. March 2004 13:02

Hi,

unter Apache2 gibt es das nicht.
Dort heisst es mod_sspi welches im XAMPP ja drin ist, allerdings kann man damit den User gegenüber der Domäne Authentifizieren, aber nicht den User "auslesen"
Ich möchte genau das verhindern, das der User sich "anmelden" muss.
Der User meldet sich ja schon am PC an, und diesen User benötige ich ohne weitere Eingabeaufforderung.

So long
KriS
User avatar
Kristian Marcroft
AF Moderator
 
Posts: 2962
Joined: 03. January 2003 12:08
Location: Diedorf

Postby Wiedmann » 04. March 2004 16:37

unter Apache2 gibt es das nicht. Dort heisst es mod_sspi

Wie auch immer :? Du brauchst jedenfalls etwas was dir NTLM-Authentifizierung bereitstellt.

aber nicht den User "auslesen"

Richtig. Ist PHP ja eine serverseitige Sprache und keine Clientseitige (mit der wüsstest du ja sofort den Namen). Allerdings hast du ja mit $_SERVER['REMOTE_USER'] eine Variable mit der du den Benutzer auslesen kannst, sofern der sich am Server angemeldet hat.

Ich möchte genau das verhindern, das der User sich "anmelden" muss.

Und da kommt NTLM (kann auf jeden Fall der IE und Mozilla) ins Spiel. Die Anmeldung über NTLM ist transparent (siehe IE: Integrierte Windows-Authentifizierung aktivieren / automatischen Anmelden in der Intranet Zone). Sie läuft im Hintergrund ohne das der Benutzer etwas eingeben muß. Ausnahme: Der Server weist die Anmeldung zurück. Dann kommt wieder ein Anmelde-Dialog.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Kristian Marcroft » 04. March 2004 17:42

Hi,

dann hätte ich nun gerne eine entsprechende Doku die mir das bestätigt.
Sofern das mit NTLM oder SSPI läuft wäre das super.
DA wir momentan sspi einsetzen, wäre eine Doku dafür nicht schlecht.
Aber wenns nur mit NTLM geht, würde ich es auch schaffen hier den Apache 1.X wieder zu installen.

So long
KriS

P.S: ein kleiner Code ausschnitt würde auch schon reichen.
User avatar
Kristian Marcroft
AF Moderator
 
Posts: 2962
Joined: 03. January 2003 12:08
Location: Diedorf

Postby Wiedmann » 05. March 2004 15:15

DA wir momentan sspi einsetzen

Wo ist dann da noch das Problem wenn ihr eh schon SSPI einsetzt? Oder anders gefragt, wie setzt ihr SSPI ein?

Da ich die NTLM-Authentifizierung sonst im Zusammenhang mit dem IIS benutzt (der kann das einfach schon von Haus aus...) hab ich das jetzt testweise mal mit dem Apache ausprobiert.

Also über den Eintrag:
LoadModule sspi_auth_module modules/mod_auth_sspi.so
das SSPI-Modul aktiviert.

In einem Directory-Abschnitt oder alternativ in der .htaccess folgendes rein:
AuthName "Intranet"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
Require valid-user

fertig.

zum Test noch eine PHP-Datei erstellt (user.php):
<?php
echo $_SERVER['REMOTE_USER'];
?>

Sobald ich jetzt die Datei über:
http://server/user.php
aufrufe wird mein Benutzername mit dem ich mich an der Workstation angemeldet habe ausgegeben.

Infos zur NTLM-Authentifizierung und/oder SSPI im Allgemeinen findest du z.B. im TechNet bei Microsoft.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Kristian Marcroft » 06. March 2004 14:37

Hi,

sorry sorry sorry...
Alles was du sagtest war richtig....
ABer da ich hier in einer Bank arbeite sind die Sicherheits Einstellung vom IE sehr restriktive eingestellt.

Damit das mit dem REMOTE_USER funzt, ohne das man sich einloggen muss, muss in den "Internet Optionen unter Sicherheit -> Intranet -> Stufe anpassen -> Benutzerauthentifizierung -> Automatische Benutzeranmeldung im Intranet" gesetzt sein. Das war bei uns nicht der Fall. Nun wurde unsere Policy überarbeitet und nun sollte es hoffentlich ab Montag funktionieren :)

So long
KriS
User avatar
Kristian Marcroft
AF Moderator
 
Posts: 2962
Joined: 03. January 2003 12:08
Location: Diedorf


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests