SPNEGO 웹 인증을 사용한 HTTP 요청에 대한 싱글 사인온

사용자는 WebSphere® Application Server에 대한 웹 인증 서비스로 SPNEGO(Simple and Protected GSS-API Negotiation Mechanism)를 사용하여 WebSphere Application Server의 보안 설정된 자원에 대한 HTTP 요청을 안전하게 협상 및 인증할 수 있습니다.

참고: WebSphere Application Server 버전 6.1에서 SPNEGO(Simple and Protected GSS-API Negotiation Mechanism)를 사용하여 보안 자원에 대한 HTTP 요청을 협상하고 인증하는 TAI(Trust Association Interceptor)가 소개되었습니다. 이 기능은 WebSphere Application Server 버전 7.0에서는 더 이상 사용되지 않습니다. SPNEGO 웹 인증은 다음 개선사항을 제공합니다.
  • 사용자는 관리 콘솔을 사용하여 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 요청에서 정의된 보안 설정된 자원에 대한 액세스 인증을 담당합니다.

WebSphere Application Server 보안 런타임 서비스와 더불어, SPNEGO의 옵션을 사용하기 위해 일부 외부 컴포넌트가 필요합니다. 외부 컴포넌트는 다음과 같습니다.
  • [Windows]활성 디렉토리 도메인이 포함되고 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 보안 레지스트리로 지원할 수 있습니다.

[AIX Solaris HP-UX Linux Windows][IBM i]이 사용자 정의 로그인 모듈 사용에 관한 자세한 정보는 [AIX Solaris HP-UX Linux Windows][IBM i]클라이언트 Kerberos 프린시펄 이름을 WebSphere 사용자 레지스트리 ID로 맵핑의 내용을 읽으십시오.

WebSphere Application Server는 보안 레지스트리에 대한 ID의 유효성을 검증합니다. 유효성 검증이 성공하면 클라이언트 Kerberos 티켓 및 GSS 위임 신임 정보가 검색되어 클라이언트 제목에 위치하게 되고 LTPA(Lightweight Third Party Authentication) 보안 토큰을 생성합니다. 그리고 나서 쿠키를 위치시키고 HTTP 응답의 요청자에 리턴합니다. WebSphere Application Server의 추가 보안 설정된 자원을 액세스하기 위한 이 동일한 요청자의 후속 HTTP 요청은 반복된 로그인 시도를 피하기 위해 이전에 작성된 LTPA 보안 토큰을 사용합니다.

다음 그림에 표시된 바와 같이, 웹 관리자에게 다음 SPNEGO 보안 컴포넌트 및 연관된 관리자 데이터에 대한 액세스가 있습니다.

그림 1. SPNEGO 웹 인증 및 보안 구성 요소 웹 관리자에게 다음 SPNEGO 보안 컴포넌트 및 연관된 구성 데이터에 대한 액세스가 있습니다. 웹 인증 모듈, SPNEGO 신뢰 연관 인터셉터, JGSS 및 SPNEGO 보안 제공자, Kerberos 구성 및 Kerberos keytab 파일, SPNEGO TAI 구성 특성, JVM 시스템 특성

SPNEGO 웹 인증의 이점

WebSphere Application Server를 보유하면 WebSphere Application Server에 대한 웹 인증 서비스로 SPNEGO를 사용할 수 있으며 여기에는 다음이 포함됩니다.

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

하나의 Kerberos 영역에서 SPNEGO 웹 인증

SPNEGO 웹 인증은 하나의 Kerberos 영역에서 지원됩니다. 다음 그림에 인증 확인-응답 핸드쉐이크가 표시됩니다.

그림 2. 하나의 Kerberos 영역에서 SPNEGO 웹 인증 SPNEGO 웹 인증은 하나의 Kerberos 영역에서 지원됩니다. 인증 확인-응답 핸드쉐이크 프로세스가 표시됩니다.

이전 그림에서 다음 이벤트가 발생합니다.

  1. 클라이언트는 HTTP/Post/Get/Web-Service 요청을 WebSphere Application Server에 전송합니다.
  2. WebSphere Application ServerHTTP 401 인증/협상을 리턴합니다.
  3. 클라이언트는 TGT(Ticket Granting Ticket)를 얻습니다.
  4. 클라이언트는 서비스 티켓(TGS_REQ)을 요청합니다.
  5. 클라이언트는 서비스 티켓(TGS_REP)을 얻습니다.
  6. 클라이언트는 HTTP/Post/Get/Web-Service 및 권한 SPNEGO 토큰을 WebSphere Application Server에 전송합니다.
  7. WebSphere Application Server은 SPNEGO 토큰을 유효성 검증합니다. 유효성이 성공적으로 검증되면 SPNEGO 토큰에서 유효성 검증 및 GSS 위임 신임 정보를 검색합니다. 클라이언트 Kerberos 신임 정보로 KRBAuthnToken을 작성합니다.
  8. WebSphere Application Server는 WebSphere 사용자 레지스트리로 사용자 ID를 유효성 검증하며 LTPA 토큰을 작성합니다.
  9. WebSphere Application ServerHTTP 200, 컨텐츠, LTPA 토큰을 클라이언트에 리턴합니다.
참고: 이전에 표시된 대로 SPNEGO를 지원하는 기타 클라이언트(예: 웹 서비스, .NET, J2EE)에는 인증 확인-응답 핸드쉐이크 프로세스를 따르지 않아도 됩니다. 이러한 클라이언트는 대상 서버에 대해 TGT(ticket-granting ticket) 및 Kerberos 서비스 티켓을 얻을 수 있고 SPNEGO 토큰을 작성할 수 있으며, 이를 HTTP 헤더에 삽입한 후 HTTP 요청을 작성하기 위한 일반적인 프로세스를 따를 수 있습니다.

신뢰 Kerberos 영역의 SPNEGO 웹 인증

SPNEGO 웹 인증은 신뢰 Kerberos 영역에서도 지원됩니다. 다음 그림에 인증 확인-응답 핸드쉐이크가 표시됩니다.

그림 3. 신뢰 Kerberos 영역의 SPNEGO 웹 인증 SPNEGO 웹 인증은 신뢰 Kerberos 영역에서도 지원됩니다. 인증 확인-응답 핸드쉐이크 프로세스가 표시됩니다.

이전 그림에서 다음 이벤트가 발생합니다.

  1. 클라이언트는 HTTP/Post/Get/Web-Service 요청을 WebSphere Application Server에 전송합니다.
  2. WebSphere Application ServerHTTP 401 인증/협상을 리턴합니다.
  3. 클라이언트는 TGT(Ticket Granting Ticket)를 얻습니다.
  4. 클라이언트는 REALM1 KDC에서 REALM2에 대한 상호 영역 티켓(TGS_REQ)을 요청합니다.
  5. 클라이언트는 단계 4에서 상호 영역 티켓을 사용하여 REALM2 KDC에서 서비스 티켓을 요청합니다.
  6. 클라이언트는 HTTP/Post/Get/Web-Service 및 권한 SPNEGO 토큰을 WebSphere Application Server에 전송합니다.
  7. WebSphere Application Server은 SPNEGO 토큰을 유효성 검증합니다. 유효성이 성공적으로 검증되면 SPNEGO 토큰에서 유효성 검증 및 GSS 위임 신임 정보를 검색합니다. 클라이언트 Kerberos 신임 정보로 KRBAuthnToken을 작성합니다.
  8. WebSphere Application Server는 WebSphere 사용자 레지스트리로 사용자 ID를 유효성 검증하며 LTPA 토큰을 작성합니다.
  9. WebSphere Application ServerHTTP 200, 컨텐츠, LTPA 토큰을 클라이언트에 리턴합니다.

신뢰 Kerberos 영역 환경의 경우, 다음을 주의하십시오.

  • Kerberos 신뢰 영역 설정은 각 Kerberos KDC에 대해 수행해야 합니다. Kerberos 신뢰 영역 설정 방법에 대한 자세한 정보는 Kerberos 관리자 및 사용자 안내서를 참조하십시오.
  • SPNEGO 토큰의 Kerberos 클라이언트 프린시펄 이름은 WebSphere 사용자 레지스트리에 존재하지 않을 수도 있습니다. WebSphere 사용자 레지스트리에의 Kerberos 프린시펄 맵핑에서 이것이 필요할 수도 있습니다.

    [AIX Solaris HP-UX Linux Windows][IBM i]자세한 정보는 [AIX Solaris HP-UX Linux Windows][IBM i]클라이언트 Kerberos 프린시펄 이름을 WebSphere 사용자 레지스트리 ID로 맵핑의 내용을 참조하십시오.

HTTP 프로토콜을 사용한 Java™ 클라이언트가 포함된 SPNEGO 웹 인증에 대한 지원 정보

다음 시나리오가 지원됩니다.
  • 동일한 포레스트 내에 있는 도메인 신뢰
  • 외부 도메인은 다른 포리스트 내 도메인 사이를 직접적으로 신뢰합니다.
  • Kerberos 영역 신뢰
다음 시나리오는 지원되지 않습니다.
  • 상호 포레스트 신뢰
  • 포리스트 외부 신뢰

브라우저 클라이언트가 포함된 SPNEGO 웹 인증에 대한 지원 정보

다음 시나리오가 지원됩니다.
  • 상호 포리스트 신뢰
  • 동일한 포레스트 내에 있는 도메인 신뢰
  • Kerberos 영역 신뢰
다음 시나리오는 지원되지 않습니다.
  • 포리스트 외부 신뢰
  • 도메인 외부 신뢰

WebSphere Application Server를 위한 웹 인증 메커니즘으로 SPNEGO 설정

관리 콘솔에서 또는 wsadmin 명령을 사용하여 SPNEGO 웹 인증을 설정하기 전에, SPNEGO 웹 인증을 사용하여 HTTP 요청을 위한 싱글 사인온 작성에 나열된 대로 단계를 수행하여 WebSphere Application Server를 위한 SPNEGO 웹 인증을 설정해야 합니다.
참고: 서버 측 SPNEGO 인증은 시스템 관리자가 완료해야 합니다. Kerberos keytab 파일은 보호되어야 합니다.

주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csec_SPNEGO_explain
파일 이름:csec_SPNEGO_explain.html