2016-08-04 1 views
0

http://spnego.sourceforge.net/spnego_tomcat.html (SPNEGO 샘플 테스트 코드 HelloKDC.java가 예상대로 작동 함)에 언급 된 모든 단계를 수행했지만 단일 로그온이 작동하지 않습니다.SPNEGO Kerberos Single Sign On이 톰캣 서버의 AD 도메인에서 작동하지 않습니다.

우리의 도메인 이름은 ITLAB (Active Directory 도메인)이며 두 개의 컴퓨터 "Win8Serv"와 "Win8Client"를 가지고 있습니다.

Tomcat7은 "KerbServUser @ ITLAB"자격 증명이있는 "Win8Serv"컴퓨터에서 실행됩니다. 이제 "KerbServUser @ ITLAB"자격 증명을 사용하여 "Win8Client"에 로그인했습니다. IE 브라우저 (IE의 경우 SSO 옵션 사용, 통합 Windows 인증 사용)에 "http://Win8Serv.itlab.com:8181/hello_spnego.jsp"을 입력하면 로그인 창이 나타납니다 ().).

디버깅 SPNEGO 코드, 당신은이 문제를 해결하기 위해

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); 
} 

SpnegoAuthenticator.java

에 제안을 기본 인증

이 있습니까 사용?

추가 정보가 필요하면 알려주십시오.

+0

서버에 대해 SPN을 등록하셨습니까? –

답변

1

AD 사용자 계정 [email protected]에 SPN HTTP/win8serv.itlab.com을 등록해야합니다. 클라이언트 컴퓨터는 Tomcat 서버가 될 DNS에서 FQDN을 찾은 다음 KDC에서 HTTP 서비스 지점을 찾아 (AD 도메인 컨트롤러에서 실행) Tomcat에서 실행중인 HTTP 서비스에 대한 Kerberos 서비스 티켓을 가져와야합니다. SPN의 FQDN이 DNS의 FQDN과 일치하면 클라이언트 컴퓨터는 Kerthikeyan이 주행 중이던 곳으로 가야 할 곳을 알 수 있습니다.

귀하의 웹 브라우저는 로컬 인트라넷 영역에 http://win8serv.itlab.com 사이트가 있어야합니다. Windows는 자격 증명 정보 (이 경우 Kerberos 서비스 티켓)를 요구하는 웹 서버로 전송하기 때문에 (Tomcat이 필요로하는))를 인증합니다.