SingleSignOn auf Client mittels Windows Credentials

C

CodeRed

Gast
Hallo,

ich arbeite gerade an einer Client-/Server-Anwendung, bei der sich der Client per Kerberos am Server anmeldet. Solange ich die Anmeldedaten am Client zur Verfügung stelle, funktioniert die Anmeldung ohne Probleme.

Nun würde ich jedoch gerne eine Single-Sign-On-Lösung schaffen, bei der am Client auf den angemeldeten Windows-User zurückgegriffen wird. Ich habe mit verschiedensten Einstellungen in der JAAS-Konfiguration experimentiert, darunter auch 'useticketcache'. Leider waren bisher alle meine Versuche ohne Erfolg.

Auf den Clients sind die Windows-Versionen WinXP, Vista und Win7 im Einsatz, jeweils mit aktuellem Java (6.20).

Hat mir vielleicht jemand einen Tipp, an welcher Stelle ich noch weiter suchen kann?
 

DerEisteeTrinker

Bekanntes Mitglied
wenn du Daten vom Client zum Server schickst und nun ein SingleSigneOn realisieren willst, dann versuch doch Daten abzulegen, die den Client eindeutig identifizieren. So ala HttpSession. Ich bin leider eher auf der Webschiene, da gibt es das ja schon :D
 

Der Müde Joe

Top Contributor
>ch habe so was schon mit SPNEGO und

Tomcat umgesetzt.

>Insgesamt solltest du dich aber mit der Materie gut auskennen!!!

Das kann ich nur bestätigen. Da gibts Fehlermeldungen en masse.


Wie wars noch gleich?
"java.security.krb5.conf" --> saubere Kerberos Konfig
"java.security.auth.login.config" --> saubere andere config
und ein
keytab file, erstellt auf dem DC (auf Win ca: ktpass - princ HTTP/pc.domain.tld@DOMAIN.TLD -mapuser user -pass password -crypto ALL -ptype KRB5_NT_PRINCIPAL -out foo.keytab), welches auf dem Server benötigt wird und in der (2ten Konfg referenziert wird)

So in etwa. Ein recht komplexes und fehleranfälliges Thema.
 

Niki

Top Contributor
ist es eigentlich möglich, dass der browser bei fehlerhaften sso auf ein login-form kommt?

hintergrund ist der, dass die webapp im internet über form-based authentication laufen soll, und im intranet über sso. im notfall sind es halt zwei unterschiedliche war-files, angenehmer fürs deployment wäre halt, wenn es ein und das selbe paket wäre
 

FArt

Top Contributor
ist es eigentlich möglich, dass der browser bei fehlerhaften sso auf ein login-form kommt?

hintergrund ist der, dass die webapp im internet über form-based authentication laufen soll, und im intranet über sso. im notfall sind es halt zwei unterschiedliche war-files, angenehmer fürs deployment wäre halt, wenn es ein und das selbe paket wäre

Ja, das ist möglich. Du brauchst passende Loginmodule (z.B. eines für die Authentifizierung mit Kerberos, eines für die Authorisierung über den LDAP-Server und eines für den Login mit User/Password. Ich glaube das Feature heißt "stacking". Da kann man Loginmodule logisch miteinander verknüpfen.

Je nach Anforderungen würde ich aber getrennte Server vorziehen, oder zumindest getrennte Einsprungstellen (Annahme: der JBoss mit seinem Tomcat hängt sowieson nicht direkt im Internet, sondern hat noch einen Apache in der DMZ vor sich).
 

Niki

Top Contributor
ich bin mir nicht sicher ob das mit stacking funktioniert, da ich ja da schon im login-ablauf drinnen bin. ich möchte aber bei fehlerhaften login versuch mittels sso auf form-based wechseln. ich glaub beim stacking werden die login-module die ich konfiguriert habe nur hintereinander aufgerufen. soweit ich das richtig verstanden habe könnte z.b. das erste login modul das login machen und die weiteren würden dann z.b. rollen von irgendwoher laden. ich müsste jedoch den login-prozess abbrechen und auf form-based wechseln
 

FArt

Top Contributor
Ja, das kann durchaus sein. Ich wäre mir über die genaue Konfiguration auch noch nicht im Klaren und würde das mit einem kleinen Protoypen mal ausprobieren, natürlich erst mal mit "einfachen" Loginmodulen (z.B. basierend auf Properties).
Die Logik kann ich über Stacking abbilden (die ersten beiden Loginmodule müssen erfüllt sein oder das dritte). Danach müsste ich auch erst mal experimentieren.
Mein erster Gedanke war, dass von Außen erst mal alle drei Loginmodule (der Login fehlt ja noch) den Zugriff verweigern. Der Fehler führt zu einem Redirect auf die Loginseite. Das nächste mal zieht das letzte Loginmodul, welches ja dann mit Credentials versorgt wurde. Das ist aber u.U. wieder verwirrend für User aus dem Intranet, die nicht an der Domäne angemeldet sind... die würde dann auch diese Seite zu sehen bekommen, außer dieses Szenario kann nicht vorkommen.
 

Der Müde Joe

Top Contributor
Ich weiss jetzt nicht genau, wie das beim JBoss läuft. Beim Tomcat added man einfach beide Valve s zum Context. Oder besser gesagt, die werden zur Pipeline geadded (macht der Context). Danach im SSO-Autheticator wenn nicht erfolgreich den nächsten in der Pipeline aufrufen (getNext().invoke(req,res) (wenn vorhanden). Der FormAuthenticator leitet dann weiter an den LoginScreen.

Das Realm muss dabei sowohl Form als auch SSO können (CombinedRealm oder ne eigene Implementation) (So ca hab ichs noch in den Gedanken)
 
Zuletzt bearbeitet:
C

CodeRed

Gast
Mein Problem ist, dass ich nicht auf die SingleSignOn Lösungen der Browser (SPNEGO) zurückgreifen kann, sondern mir am Client das Service-Ticket selber mit Java-Mitteln besorgen muss.

Dabei möchte ich keine keytab-Datei bereitstellen, sondern über das TGT des Windows-Benutzers gehen. Die Server-Seite funktioniert einwandfrei. Auch die Client-Seite mit keytab würde funktionieren, aber dann hätte ich kein SingleSignOn über die Windows Authentifizierung.

Ich suche also eine Möglichkeit, den Ticket-Cache von Windows über Java anzuzapfen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
B Axis2 Webservice mit Client Zertifikat Authentifizierung Netzwerkprogrammierung 3
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
T Jetty mit Client-Zertifikat nur bei spezifischer URL Netzwerkprogrammierung 1
J Einlesen von Servernachrichten von TCP-Client Netzwerkprogrammierung 17
J Client-Server und SOAP Netzwerkprogrammierung 23
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
T Client zu Client Kommunikation Netzwerkprogrammierung 2
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
ruutaiokwu ständig "sender address rejected: improper use of smtp" bei smtp-client Netzwerkprogrammierung 4
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
A Chatserver/-client - Code stoppt bei readUTF() Netzwerkprogrammierung 7
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
L Zugriffprobleme Client - Webservice AspenTechnology Netzwerkprogrammierung 0
A Client Client Übertragung Netzwerkprogrammierung 12
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
K Socket Netty Client wirft Fehler! Netzwerkprogrammierung 3
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
U Socket Client mit hash authentifizieren Netzwerkprogrammierung 3
F HTTP HTTP Rest Client mit TLS1.2 und selbst signiertem Zertifikat Netzwerkprogrammierung 2
P Server als Client nutzen Netzwerkprogrammierung 8
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
Cromewell Socket Multithreaded Server und Client Netzwerkprogrammierung 1
Y Client/Server/DB communication Netzwerkprogrammierung 3
JavaWolf165 Socket mit .writeUtf etwas vom Client zum Server schicken Netzwerkprogrammierung 13
J Client - Serversocket Netzwerkprogrammierung 1
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
brainless Client Server Kommunikation verschlüsseln Netzwerkprogrammierung 13
gamebreiti Socket Server / Client Anwendung Manipulation von Objekten durch Server Netzwerkprogrammierung 9
T Socket Server/Client Kommunikation Netzwerkprogrammierung 8
N Fragen zu Sockets Client Netzwerkprogrammierung 3
F Extasys TCp Client extends Funktion Netzwerkprogrammierung 0
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
O Client zwischen XML und JSON auswählen lassen Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
A Socket Wie ein einfacher Multithreads Service mit Telnet als Client mit Observable/Observer gelöst.... Netzwerkprogrammierung 0
K C# Server - Android Client Netzwerkprogrammierung 0
T Application Client NullPointerExc Netzwerkprogrammierung 7
V TCP Client funktioniert auf Emulator aber nicht auf Smartphone Netzwerkprogrammierung 5
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
H HTTP REST Jersey - PUT-Beispiel von Client senden Netzwerkprogrammierung 0
J Sichere Kommunikation bei Server Client Netzwerkprogrammierung 3
T Frage zu Client-Server Applikation Netzwerkprogrammierung 2
H Socket Client/Server Socket Programmieren Netzwerkprogrammierung 1
M Theoretische Frage zu Server - Client Netzwerkprogrammierung 2
P HTTP Server / Client Netzwerkprogrammierung 1
N FTP FTP Client invalid IPv6 address (Apache Commons Net API) Netzwerkprogrammierung 6
F TCP Client, verbindung aufrecht halten Netzwerkprogrammierung 0
X RMI: Woher kennt der Client das Schnittstellen-Interface? Netzwerkprogrammierung 2
E Thematik Client server Netzwerkprogrammierung 2
D UDP Client empfängt nichts Netzwerkprogrammierung 2
D Client/Server per Crossover Lan Kabel Netzwerkprogrammierung 1
S Client Server Connection Netzwerkprogrammierung 4
V erste Client - Server Anwendung, paar Fragen wie Socketverbindung checken usw. Netzwerkprogrammierung 4
S Client Anwendung mit zentraler SQL-Datenbank Netzwerkprogrammierung 3
N Client Identifikation eines Servers Netzwerkprogrammierung 1
S Sichere Server/Client Architektur Netzwerkprogrammierung 1
D Chat Server/mehre Client Netzwerkprogrammierung 9
I Server+Client Netzwerkprogrammierung 3
N Client am Server abmelden Netzwerkprogrammierung 0
F Server/Client Probleme Netzwerkprogrammierung 3
D SSH Client Netzwerkprogrammierung 7
U Socket Instant Messanger (Server Linux, Client Windows) Netzwerkprogrammierung 1
B TCP Client Android Netzwerkprogrammierung 3
Athena Grundsatzfragen zu Client-Server-Architektur / Matchmaking Netzwerkprogrammierung 1
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
F Client Server DB Netzwerkprogrammierung 0
A Verständnisfrage Multi-Threaded Client/Server Netzwerkprogrammierung 5
F Tipps zum Thema Server/Client vie SOAP Netzwerkprogrammierung 0
OnDemand Ist Client noch angemeldet? Netzwerkprogrammierung 7
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
D Socket UDP Client reagiert nicht auf spontane Meldungen Netzwerkprogrammierung 5
R Zeitliche Syncronisation Server - Client Netzwerkprogrammierung 0
S Server-Client: Image senden Netzwerkprogrammierung 2
C Multithreading Client / Server erklärt Netzwerkprogrammierung 11
M Client sendet nur, wenn das Socket geschlossen wird Netzwerkprogrammierung 53
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
S Socket (client) verbindet nicht Netzwerkprogrammierung 6
V Templates für Java Client rabbitmq Netzwerkprogrammierung 4
J Client Server - Serialisierung Netzwerkprogrammierung 8
C Client connection per Portforwarding auf einen lokalen Serverport Netzwerkprogrammierung 3
Luk10 Server / Client: Clients speichern! Netzwerkprogrammierung 6

Ähnliche Java Themen


Oben