2016-08-04 69 views
0

Ich folgte alle Schritte in der http://spnego.sourceforge.net/spnego_tomcat.html (SPNEGO Beispiel Testcode HelloKDC.java funktioniert wie erwartet), aber Single Sign On funktioniert nicht.SPNEGO Kerberos Single Sign On funktioniert nicht in AD-Domäne für Tomcat-Server

Unser Domain Name ist ITLAB (Active Directory Domain), es hat zwei Maschinen "Win8Serv" und "Win8Client".

Tomcat7 läuft auf "Win8Serv" Maschine mit "KerbServUser @ ITLAB" Anmeldeinformationen. Jetzt habe ich mich bei "Win8Client" mit "KerbServUser @ ITLAB" Anmeldeinformationen angemeldet. Ich habe "http://Win8Serv.itlab.com:8181/hello_spnego.jsp" im IE-Browser eingegeben (SSO-Optionen für IE aktiviert, integrierte Windows-Authentifizierung aktiviert), fordert zur Eingabe des Anmeldefensters auf (sollte keine Anmeldeinformationen anfordern).

Gedebuggte SPNEGO-Code, es wird mit grundlegenden auth

in SpnegoAuthenticator.java

final SpnegoAuthScheme scheme = SpnegoProvider.negotiate(req, resp, basicSupported, this.promptIfNtlm, serverRealm); 

if (scheme.isNegotiateScheme()) { 
    principal = doSpnegoAuth(scheme, resp); 

// BASIC scheme 
} else if (scheme.isBasicScheme()) { // it is entering Basic Scheme 
    principal = doBasicAuth(scheme, resp); 
} 

Haben Sie Anregungen haben, dieses Problem zu beheben?

Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

+0

Haben Sie SPN für den Server registriert? –

Antwort

1

Sie müssen den SPN HTTP/win8serv.itlab.com im AD-Benutzerkonto [email protected] registriert haben. Clientcomputer müssen den FQDN in DNS suchen, der Ihr Tomcat-Server sein wird, und als Nächstes den HTTP-Dienstpunkt im KDC (auf Ihrem AD-Domänencontroller) suchen, um ein Kerberos-Dienstticket für den von Tomcat ausgeführten HTTP-Dienst abzurufen. Wenn der FQDN im SPN mit dem FQDN in DNS übereinstimmt, weiß Ihr Clientcomputer genau, wohin er gehen muss. In diesem Fall war Kerthikeyan unterwegs.

Ihr Webbrowser muss die Site in der Zone "Lokales Intranet" enthalten, da Windows Berechtigungsinformationen (in diesem Fall das Kerberos-Serviceticket) an Webserver sendet, die danach fragen (was Tomcat tun muss)) zur Authentifizierung.