Lokale Informationen ermitteln (getRemoteUser)

gonzo

Grünschnabel
Hallo zusammen

Wir haben bei uns eine einfache Web-Applikation gebaut mit der Umfragen erstellt werden um die Kundenzufriedenheit zu messen. Da diese Umfragen weltweit durchgeführt werden, benötigen wir für die Auswertung den Standort des teilnehmenden Users.

Bisher haben wir dies so gelöst:
1. User öffnet die Webapplikation und sendet seine Bewertung ab
2. Lokaler NT-User wird ausgelesen (getRemoteUser und JCIFS-Bibliothek)
3. Via LDAP-Abfrage wird der Standort des NT-Users im AD abgefragt

Bis vor kurzem hat dies soweit auch gut funktioniert aber nun teilte mir ein Kollege aus einer anderen Domäne mit, dass sich die Web-Applikation nicht öffnen lässt. Der Browser verlangt ständig eine Eingabe von User und Passwort. Der Grund scheint am HTTPFilter von JCIFS zu sein. Lösche ich diesen aus der web.xml, dann lässt sich die Web-Applikation starten aber dann bekomme ich natürlich den NT-User nicht mehr.

Interessant daran ist, dass in zwei anderen Domänen die Applikation problemlos läuft und da habe ich keine speziellen Rechte erteilt.


Hat jemand von euch eine Idee wie ich ohne JCIFS an den lokalen User komme? Eine vorherige Authentifizierung des Users ist ausgeschlossen, da die Umfragen anonym bleiben sollen.

So sieht unsere Umgebung aus:
Tomcat 5.5
Windows Rechner
Internet Explorer und Firefox Browser



Bin dankbar für jeden Input.

Grüsse
Gonzo
 
Hi Gonzo,

Du schreibst "Der Browser", das ist also IE oder FIre Fox, right? Ich vermute fast, dass das Problem nur bei Fire Fox Anwendern auftritt. Da musst Du in jeder einzelnen about:config zu dem Wert von "network.automatic-ntlm-auth.trusted-uris" die URL der fraglichen Seite hinzufügen. Ansonsten schickt der FF dein Token nicht raus. Das musst Du aber bei _jedem_ einzelnen der Anwender machen, die den FF verwenden wollen ... :)

Google einfach mal nach firefox network.automatic-ntlm-auth.trusted-uris, falls das mit dem FF stimmt.

Falls es der IE ist, ist die Site in den Trusted Sites eingetragen? Je nachdem wie die Sicherheitseinstellungen gezurrt worden sind, kann es sonst sein, dass das Token nicht weiter gegeben wird ...
 
Hallo Sentoo

Danke dir für deine Antwort. Der Dialog erscheint sowohl bei IE als auch FF. Unterdessen habe ich über die Zentralstelle einen Shortcut Trust erstellen lassen da ich das Gefühl nicht loswerden konnte, dass es sich um ein Berechtigungsproblem mit der AT-Domäne handelt. Interessanterweise meldet mir nun der Kollege aus AT, dass der Dialog nicht mehr erscheint. Ich weiss jedoch noch nicht ob er sowohl mit IE als auch FF getestet hat. Scheinbar hat dieser Shortcut Trust etwas gebracht. Interessant ist aber, dass zuvor alle Trusts transitiv waren. Eigentlich hätte es schon vorher funktionieren müssen.

Diese Rückmeldung des Kollegen klingt zwar gut aber er hat mir einen Testuser zur Verfügung gestellt und wenn ich mich damit an der AT-Domäne anmelde bekomme ich beim IE den Dialog, nicht aber beim FF. Also bei ihm erscheint der Dialog mit seinem AT-User nicht, bei meinem AT-Testuser hingegen schon. Da verstehe ich die Logik nicht mehr. Ich habe die Seite im IE auch in die trusted Sites gestellt.

Sobald ich ihn erreichen kann werde ich noch ein paar Tests mit ihm durchführen. So wie es im Moment aussieht wäre das Berechtigungsproblem mit Hilfe des Trusts gelöst. Nun sind vermutlich noch die Browser-Einstellungen in CH etwas eingeschränkter als die in AT. Ich werde wieder berichten sobald ich mehr weiss.

Danke dir auch für den Hinweis zur FF-Konfiguration. Werde auf jeden Fall danach googeln obschon mir der Gedanke gar nicht gefällt, auf jedem Browser Einstellungen vornhemen zu müssen.

Grüsse
Gonzo
 
Hallo Gonzo,

ich habe ebenfalls das Problem, dass der Browser ständig eine Eingabe von User und Passwort verlangt. Das Problem daran, dass Rechner mit Windows 7 keine NTLMv1 Authentifizierung mehr zulassen. Aus Sicherheitsgründen unterstützt Windows 7 nur mehr NTLMv2. Der JCIFS-Filter funktioniert jedoch nur mit NTLMv1. Eine Lösungsmöglichkeit wäre, JESPA als Filter zu verwenden, oder einen IIS vor den Tomcat schalten, der die Authentifizierung übernimmt.
Anscheinend können auch unter Windows 7 die lokalen Sicherheitsrichtlinien modifiziert werden, damit JCIFS wieder funktioniert. Leider habe ich diesbezüglich noch keine Erfolgsmeldung.
Ich hoffe ich konnte dir weiter helfen.

Schöne Grüße!
 
Nachtrag:
NTLMv1 lässt sich unter Windows7 verwenden, wenn folgende Richtlinie des lokalen Computers geändert wird:
gpedit.msc ausführen:
-> Computerkonfiguration -> Windows-Einstellungen -> Sicherheitseinstellungen -> Lokale Richtlinien -> Sicherheitsoptionen
Richtlinie "Netzwerksicherheit: LAN Manager-AUthentifizierungsebene" z.B. auf die Sicherheitseinstellung "LM- und NTLM-Antworten senden" stellen.

Schöne Grüße
 

Neue Beiträge

Zurück