SPNEGO 웹 인증을 사용한 HTTP 요청에 대한 싱글 사인온
사용자는 WebSphere® Application Server에 대한 웹 인증 서비스로 SPNEGO(Simple and Protected GSS-API Negotiation Mechanism)를 사용하여 WebSphere Application Server의 보안 설정된 자원에 대한 HTTP 요청을 안전하게 협상 및 인증할 수 있습니다.
- 사용자는 관리 콘솔을 사용하여 SPNEGO 웹 인증 및 WebSphere Application Server의 필터를 구성 및 사용할 수 있습니다.
- WebSphere Application Server을 중지한 후 다시 시작하지 않고 SPNEGO를 동적으로 다시 시작할 수 있습니다.
- SPNEGO 웹 인증이 실패하는 경우 애플리케이션 로그인 메소드에 대한 폴백이 제공됩니다.
- SPNEGO는 WebSphere 보안 도메인 레벨에서 사용자 정의할 수 있습니다. 자세한 정보는 다중 보안 도메인의 내용을 참조하십시오.
SPNEGO TAI 또는 SPNEGO 웹 인증 중 하나를 사용할 수 있으나 둘 다 사용하지는 못합니다.
다음 절에서는 SPNEGO 웹 인증에 대해 더욱 자세히 설명합니다.
SPNEGO의 개념
SPNEGO는 Simple and Protected GSS-API Negotiation Mechanism(IETF RFC 2478)에서 정의된 표준 스펙입니다.
WebSphere Application Server 글로벌 및 애플리케이션 보안이 사용되고, SPNEGO 웹 인증이 사용되는 경우, 첫 번째 인바운드 HTTP 요청을 처리하면 SPNEGO가 초기화됩니다. 그러면 웹 인증자 컴포넌트가 보안 구성 저장소에서 정의 및 사용된 SPNEGO와 상호작용합니다. 필터 기준이 충족된 경우 SPNEGO는 HTTP 요청에서 정의된 보안 설정된 자원에 대한 액세스 인증을 담당합니다.
활성 디렉토리 도메인이 포함되고 Kerberos KDC(Key Distribution Center)를 연관한 Microsoft Windows 서버입니다. 지원되는 Microsoft Windows Server에 대한 자세한 정보는 Windows에서 WebSphere Application Server 버전 9.0의 시스템 요구사항을 참조하십시오.
- 예를 들어, IETF RFC 2478에 정의된 대로 SPNEGO 웹 인증 메커니즘을 지원하는 클라이언트 애플리케이션, Microsoft .NET, 또는 웹서비스 및 J2EE 클라이언트입니다. Microsoft Internet Explorer 버전 5.5 이상 및 Mozilla Firefox 버전 1.0은 브라우저 예입니다. 브라우저는 SPNEGO 웹 인증 메커니즘을 사용하여 구성되어야 합니다. 이 구성을 수행하는 것에 대한 자세한 정보는 SPNEGO을 사용하기 위해 클라이언트 브라우저 구성의 내용을 참조하십시오.
HTTP의 인증은 SPNEGO 토큰을 생성하는 요청자(클라이언트 측)에 의하여 트리거됩니다. WebSphere Application Server은 이 토큰을 수신합니다. 특히, SPNEGO 웹 인증은 SPNEGO 토큰의 요청자 ID를 디코딩 및 검색합니다. 요청자와 애플리케이션 서버 간 보안 컨텍스트를 설정하는 데에 ID가 사용됩니다.
SPNEGO 웹 인증은 WebSphere Application Server의 서버 측 솔루션입니다. 클라이언트 측 애플리케이션은 SPNEGO 웹 인증이 사용하기 위한 SPNEGO 토큰을 생성하는 것을 담당합니다. WebSphere Application Server 보안 레지스트리의 요청자 ID는 SPNEGO 웹 인증이 검색하는 ID와 동일해야 합니다. Microsoft Windows 활성 디렉토리 서버가 WebSphere Application Server에 사용된 LDAP(Lightweight Directory Access Protocol) 서버인 경우 ID가 일치합니다. 사용자 정의 로그인 모듈을 플러그인으로 사용하여 ID의 사용자 정의 맵핑을 활성 디렉토리에서 WebSphere Application Server 보안 레지스트리로 지원할 수 있습니다.
이 사용자 정의 로그인 모듈 사용에 관한 자세한 정보는
클라이언트 Kerberos 프린시펄 이름을 WebSphere 사용자 레지스트리 ID로 맵핑의 내용을
읽으십시오.
WebSphere Application Server는 보안 레지스트리에 대한 ID의 유효성을 검증합니다. 유효성 검증이 성공하면 클라이언트 Kerberos 티켓 및 GSS 위임 신임 정보가 검색되어 클라이언트 제목에 위치하게 되고 LTPA(Lightweight Third Party Authentication) 보안 토큰을 생성합니다. 그리고 나서 쿠키를 위치시키고 HTTP 응답의 요청자에 리턴합니다. WebSphere Application Server의 추가 보안 설정된 자원을 액세스하기 위한 이 동일한 요청자의 후속 HTTP 요청은 반복된 로그인 시도를 피하기 위해 이전에 작성된 LTPA 보안 토큰을 사용합니다.
다음 그림에 표시된 바와 같이, 웹 관리자에게 다음 SPNEGO 보안 컴포넌트 및 연관된 관리자 데이터에 대한 액세스가 있습니다.

SPNEGO 웹 인증의 이점
WebSphere Application Server를 보유하면 WebSphere Application Server에 대한 웹 인증 서비스로 SPNEGO를 사용할 수 있으며 여기에는 다음이 포함됩니다.
활성 디렉토리 도메인을 사용하는 Microsoft Windows 서버가 포함된 통합 싱글 사인온 환경이 설정됩니다.
- 대량의 ID 및 비밀번호를 관리하는 비용이 감소합니다.
- 웹 브라우저나 Microsoft .NET 클라이언트로부터 안전하고 상호적으로 인증된 보안 신임 정보의 전송이 설정됩니다.
- 웹 서비스와 Microsoft .NET의 상호 운용성 또는 전송 레벨에서 SPNEGO 인증을 사용하는 웹서비스 애플리케이션이 아카이브됩니다.
- Kerberos 인증 지원을 통해, SPNEGO 웹 인증은 엔드투엔드 SPNEGO를 Kerberos 솔루션에 제공하고 Kerberos 신임 정보를 클라이언트로부터 유지할 수 있습니다.
하나의 Kerberos 영역에서 SPNEGO 웹 인증
SPNEGO 웹 인증은 하나의 Kerberos 영역에서 지원됩니다. 다음 그림에 인증 확인-응답 핸드쉐이크가 표시됩니다.

이전 그림에서 다음 이벤트가 발생합니다.
- 클라이언트는 HTTP/Post/Get/Web-Service 요청을 WebSphere Application Server에 전송합니다.
- WebSphere Application Server는 HTTP 401 인증/협상을 리턴합니다.
- 클라이언트는 TGT(Ticket Granting Ticket)를 얻습니다.
- 클라이언트는 서비스 티켓(TGS_REQ)을 요청합니다.
- 클라이언트는 서비스 티켓(TGS_REP)을 얻습니다.
- 클라이언트는 HTTP/Post/Get/Web-Service 및 권한 SPNEGO 토큰을 WebSphere Application Server에 전송합니다.
- WebSphere Application Server은 SPNEGO 토큰을 유효성 검증합니다. 유효성이 성공적으로 검증되면 SPNEGO 토큰에서 유효성 검증 및 GSS 위임 신임 정보를 검색합니다. 클라이언트 Kerberos 신임 정보로 KRBAuthnToken을 작성합니다.
- WebSphere Application Server는 WebSphere 사용자 레지스트리로 사용자 ID를 유효성 검증하며 LTPA 토큰을 작성합니다.
- WebSphere Application Server는 HTTP 200, 컨텐츠, LTPA 토큰을 클라이언트에 리턴합니다.
신뢰 Kerberos 영역의 SPNEGO 웹 인증
SPNEGO 웹 인증은 신뢰 Kerberos 영역에서도 지원됩니다. 다음 그림에 인증 확인-응답 핸드쉐이크가 표시됩니다.

이전 그림에서 다음 이벤트가 발생합니다.
- 클라이언트는 HTTP/Post/Get/Web-Service 요청을 WebSphere Application Server에 전송합니다.
- WebSphere Application Server는 HTTP 401 인증/협상을 리턴합니다.
- 클라이언트는 TGT(Ticket Granting Ticket)를 얻습니다.
- 클라이언트는 REALM1 KDC에서 REALM2에 대한 상호 영역 티켓(TGS_REQ)을 요청합니다.
- 클라이언트는 단계 4에서 상호 영역 티켓을 사용하여 REALM2 KDC에서 서비스 티켓을 요청합니다.
- 클라이언트는 HTTP/Post/Get/Web-Service 및 권한 SPNEGO 토큰을 WebSphere Application Server에 전송합니다.
- WebSphere Application Server은 SPNEGO 토큰을 유효성 검증합니다. 유효성이 성공적으로 검증되면 SPNEGO 토큰에서 유효성 검증 및 GSS 위임 신임 정보를 검색합니다. 클라이언트 Kerberos 신임 정보로 KRBAuthnToken을 작성합니다.
- WebSphere Application Server는 WebSphere 사용자 레지스트리로 사용자 ID를 유효성 검증하며 LTPA 토큰을 작성합니다.
- WebSphere Application Server는 HTTP 200, 컨텐츠, LTPA 토큰을 클라이언트에 리턴합니다.
신뢰 Kerberos 영역 환경의 경우, 다음을 주의하십시오.
- Kerberos 신뢰 영역 설정은 각 Kerberos KDC에 대해 수행해야 합니다. Kerberos 신뢰 영역 설정 방법에 대한 자세한 정보는 Kerberos 관리자 및 사용자 안내서를 참조하십시오.
- SPNEGO 토큰의 Kerberos 클라이언트 프린시펄 이름은
WebSphere 사용자
레지스트리에 존재하지 않을 수도 있습니다.
WebSphere 사용자
레지스트리에의 Kerberos 프린시펄 맵핑에서 이것이 필요할 수도 있습니다.
자세한 정보는
클라이언트 Kerberos 프린시펄 이름을 WebSphere 사용자 레지스트리 ID로 맵핑의 내용을 참조하십시오.
HTTP 프로토콜을 사용한 Java™ 클라이언트가 포함된 SPNEGO 웹 인증에 대한 지원 정보
- 동일한 포레스트 내에 있는 도메인 신뢰
- 외부 도메인은 다른 포리스트 내 도메인 사이를 직접적으로 신뢰합니다.
- Kerberos 영역 신뢰
- 상호 포레스트 신뢰
- 포리스트 외부 신뢰
브라우저 클라이언트가 포함된 SPNEGO 웹 인증에 대한 지원 정보
- 상호 포리스트 신뢰
- 동일한 포레스트 내에 있는 도메인 신뢰
- Kerberos 영역 신뢰
- 포리스트 외부 신뢰
- 도메인 외부 신뢰