# Windows Benutzer Authentifizierung



## D. Jansen (9. Aug 2006)

Hallo,

ich habe folgendes Problem:
wie kann ich in einer Webanwendung (JSP / Servlet) eine Windows Benutzerauthentifizierung durchführen, d.h. es sollen nur Benutzer zugelassen werden, die sich in der selben Windows- Domäne befinden.

Es besteht bereits eine Webanwendung auf ASP + IIS Basis die mittels des Befehls:
Request.ServerVariables("AUTH_USER")
diese Benutzerauthentifizierung durchführt. Diese Anwendung soll nun nach Java, sprich JSP /Servlet portiert werden. 
Unter Java + Tomcat 5.5 (Apache) muss es doch auch eine Möglichkeit geben Windows Benutzer zu authentifizieren.

Herzlichen Dank


----------



## AlArenal (9. Aug 2006)

Indem du im IIS die Anwendung/Site so konfigurierst, dass eben nur benutzer der entsprechenden Domain/Gruppe Zugriff haben. Das wäre die einfachste Möglichkeit, weil man sich nicht nochmal zusätzlich in der Anwendung anmelden müsste.

Die Umgebungsvariable dürfte auch aus Java heraus abrufbar sein, so dass du anwendungsseitig mitbekommst, um welchen User es sich gerade handelt.


----------



## D. Jansen (10. Aug 2006)

Danke schonaml für die schnelle Antwort!

Ich hatte eigentlich vor den IIS nicht mehr zu benutzen und alles dem Tomcat zu überlassen. Ist es denn vielleicht möglich den IIS dem Tomcat "vorzuschalten"? Also, so dass der IIS die Anfragen ersteinmal entgegen nimmt und dann an den Tomcat weiterleitet? Wäre es dann noch möglich auf die Servervariablen des IIS zu zugreifen, so dass ich erfahren kann um welchen Benutzer es sich handelt?
Und weiss du zufällig wie die Befehle dann in Java lauten?

Herzlichen Dank


----------



## AlArenal (10. Aug 2006)

Ich kenne s normalerweise nur so, dass man nach außen (zum User) hin nicht direkt den Tomcat werkeln lässt, sondern über einen Webserver gewissermaßen tunnelt. Für den Apache Webserver gab und gibt es da diverse Module (z.B. mod_jk2). So kann man beides auf einem Server laufen lassen und nach außen alles über den HTTP-Port abfrühstücken.
Ich würde vermuten, dass sich die entsprechenden Parameter in den Umgebungsvariablen wiederfinden (System#getProperties)
Wie das beim ISS aussieht, weiß ich nicht. Musste mal googlen. Bin mir aber recht sicher, dass es da ebenfalls eine Lösung gibt. Ob du an die Servervariablen des IIS rankommst, weiß ich nicht, dazu ist das zu wenig meine Baustelle. Wenn, würde ich vermuten, dass sie in der Request-Instanz zu finden sind.


----------



## AlArenal (10. Aug 2006)

Wenig erbauliche News für dich, aber dennoch: http://blogs.msdn.com/david.wang/archive/2005/10/11/How_does_JSP_work_on_IIS.aspx

Oder vielleicht doch?
http://www.jguru.com/faq/view.jsp?EID=1045412


----------



## b35bug (10. Aug 2006)

Kann man denn die Windows Athetifizierung auch unter dem Tomcat z.B. mit JSF direkt abfragen?


----------



## bronks (11. Aug 2006)

b35bug hat gesagt.:
			
		

> Kann man denn die Windows Athetifizierung auch unter dem Tomcat z.B. mit JSF direkt abfragen?


Ja! Ein NTLM-Filter erledigt das für dich.


----------



## b35bug (11. Aug 2006)

Gibt es da auch ein Beispiel zu...  :roll:


----------



## bronks (11. Aug 2006)

D. Jansen hat gesagt.:
			
		

> ... IIS ... "vorzuschalten"? Also, so dass der IIS die Anfragen ersteinmal entgegen nimmt und dann an den Tomcat weiterleitet? Wäre es dann noch möglich auf die Servervariablen des IIS zu zugreifen, so dass ich erfahren kann um welchen Benutzer es sich handelt? ...


Einmal funktioniert das wunderbar: http://tomcat.apache.org/download-connectors.cgi

Auf der anderen Seite gibt es den Samba-NTLM-Filter, der ohne IIS auskommt und für deine Zwecke ausreichen sein sollte.


----------



## b35bug (11. Aug 2006)

Wo finde ich diesen Samba-NTLM-Filter dennn? Google liefert mir da nix...


----------



## bronks (11. Aug 2006)

b35bug hat gesagt.:
			
		

> Wo finde ich diesen Samba-NTLM-Filter dennn? Google liefert mir da nix...


Bitte schön: http://jcifs.samba.org/


----------



## Guest (11. Aug 2006)

Super. Besten Dank.


----------

