신뢰 ID 평가자
신뢰 ID 평가자는 주어진 ID 이름이 신뢰되는지 여부를 평가하는 메커니즘입니다.
JAX-RPC 프로그래밍 모델에서 신뢰 ID 평가자 사용
- 기본 인증(사용자 이름 토큰)
- 업스트림 서버가 사용자 이름 및 비밀번호가 있는 사용자 이름 토큰을 다운스트림 서버에 전송합니다. 메시지의 이용자 또는 수신자가 사용자 이름 토큰을 인증하고 TrustedIDEvaluator 구현을 기반으로 신뢰의 유효성을 검증합니다. TrustedIDEvaluator 구현은 com.ibm.wsspi.wssecurity.id.TrustedIDEvaluator Java™ 인터페이스를 구현해야 합니다.
- 서명
- 업스트림 서버가 메시지에 서명합니다. 해당 메시지는 SOAP 본문과 같이 임의의 메시지 파트일 수 있습니다. 업스트림 서버는 X.509 토큰을 다운스트림 서버로 전송합니다. 메시지의 이용자 또는 수신자가 서명을 확인하고 X.509 토큰의 유효성을 검증합니다. 디지털 서명에서 사용하는 X.509 토큰의 식별 이름 또는 ID는 TrustedIDEvaluator 구현을 기반으로 유효성이 검증됩니다. TrustedIDEvaluator 구현은 com.ibm.wsspi.wssecurity.id.TrustedIDEvaluator Java 인터페이스를 구현해야 합니다. X.509 증의 경우, WebSphere® Application Server가 인증의 식별 이름을 요청 ID로 사용합니다.
다음 그림에서는 두 개의 프로그래밍 모델에 대한 ID 어설션 신뢰 프로세스에 대해 설명합니다.
이 그림에서, 서버 s1은 업스트림 서버이며 ID 어설션이 서버 s1과 서버 s2 간에 설정됩니다. s1 서버는 bob ID를 인증합니다. 서버 s1이 bob을 비밀번호와 함께 s2 서버로 전송하고자 합니다. 신뢰 모드는 ID와 비밀번호를 포함하는 s1 신임입니다. 서버 s2가 요청을 수신하고 JAAS(Java Authentication and Authorization Service) 로그인 모듈을 사용하여 사용자를 인증하며 신뢰 ID 평가자를 사용하여 ID를 신뢰할지 여부를 판별합니다. ID가 신뢰된 경우, bob가 서비스를 호출하는 호출자로 사용됩니다. 인증이 필수인 경우, bob이 인증 확인에 사용되는 ID입니다.
ID를 현재 보안 컨텍스트의 RunAs(호출) ID로 검증할 수 있습니다. 예를 들어, 웹 서비스 게이트웨이가 비밀번호 인증과 같은 보안 메소드를 사용하여 요청자를 인증한 다음 요청자 ID를 백엔드 서버에만 전송합니다. 기타 웹 서비스 보안 구현과 상호 운용성을 위해 ID 어설션을 사용할 수도 있습니다.
- 일반 텍스트 파일
- 데이터베이스
- LDAP(Lightweight Directory Access Protocol) 서버
최종 사용자가 일반적으로 다중 홉 환경에서 신뢰 ID 평가자를 사용합니다. 웹 서비스 보안 구현은 신뢰 ID 평가자를 호출하고 매개체의 ID 이름을 매개변수로서 전달합니다. ID를 평가해서 신뢰할 수 있는 것으로 간주되면 프로시저를 계속하십시오. 그렇지 않으면 예외가 작성되고 프로시저가 중지됩니다.
JAX-WS 프로그래밍 모델에서 신뢰 ID 평가자 사용
JAX-WS 프로그래밍 모델에서는 구현이 다른 경우에도 신뢰 ID 평가자에 대해 동일한 개념이 지원됩니다. JAX-WS 런타임의 경우 관리 콘솔의 호출자 바인딩 패널에서 ID 어설션 사용 옵션을 선택하십시오. 이는 신뢰 ID 토큰 유형을 정의하고 하나 이상의 신뢰 ID 목록을 정의합니다. 신뢰 ID 평가자는 신뢰 ID 목록에 대해 신뢰 ID 토큰을 유효성 검증합니다. 신뢰 ID 목록에 대한 자세한 정보는 토큰 또는 메시지 파트에 대한 호출자 순서 변경 주제를 참조하십시오.
WebSphere Application Server 버전 6.1 이상의 경우, Caller 및 TrustMethod 요소는 요청자 로그인을 지원하는 데 사용됩니다. 요청자가 매개체에 메시지를 전송하고 메시지는 서비스에 디스패치됩니다. 보안 정보에 기반하여 서비스는 요청자에 대해 로그인을 수행합니다. 이러한 경우 여러 보안 토큰이 있기 때문에 서비스는 사용할 보안 토큰을 결정해야 합니다. 요청자 ID가 ID 어설션으로 포함되는 경우 서비스는 매개체를 신뢰할 방법을 지정할 수 있습니다. 다음 매개체 시나리오가 지원됩니다.
- <BasicAuth, null, null>
- 인증에 요청자 사용자 이름 및 비밀번호가 사용됩니다. 이러한 경우 요청자 특성에서 인증이 수행되므로 인증을 위해 비밀번호가 필요합니다.
- <Signature, null, null>
- 인증에 요청자 서명이 사용됩니다.
- <IDAssertion, Username, null>
- 요청자를 식별하기 위해 요청자 사용자 이름(비밀번호 없음)이 사용됩니다. UsernameToken 토큰이 ID 어설션으로 사용되므로 사용자 이름을 얻기 위해 비밀번호가 필요하지 않습니다. 이 경우, 서비스는 매개체를 무조건 신뢰합니다.
- <IDAssertion, Username, Username>
- 요청자를 식별하기 위해 요청자 사용자 이름(비밀번호 없음)이 사용되고, 매개체를 인증하기 위해 매개체의 사용자 이름 및 비밀번호가 사용됩니다. 신뢰 ID를 구축하기 위해 UsernameToken 토큰을 사용할 때 토큰의 목적으로 인해 매개체 및 서비스 간에 신뢰가 구축되므로 항상 비밀번호가 필요합니다.
- <IDAssertion, Username, X509>
- 요청자를 식별하기 위해 요청자 사용자 이름(비밀번호 없음)이 사용되고, 매개체를 인증하기 위해 매개체의 서명이 사용됩니다. 이러한 경우 매개체 서명에 대한 신뢰 ID는 X.509 인증을 사용하여 구축되어야 합니다.
- <IDAssertion, X509, null>
- 요청자의 ID가 X.509 인증을 사용하여 구축됩니다. 이러한 경우 요청자의 X.509 인증은 인증의 소유권을 증명하기 위해 서명을 제공하지 않으므로 서비스는 매개체를 조건부로 신뢰합니다.
- <IDAssertion, X509, Username>
- 요청자의 ID가 X.509 인증을 사용하여 구축되고, 매개체를 인증하기 위해 매개체의 사용자 이름 및 비밀번호가 사용됩니다. 신뢰 ID를 구축하기 위해 UsernameToken 토큰을 사용할 때 토큰의 목적으로 인해 매개체 및 서비스 간에 신뢰가 구축되므로 항상 비밀번호가 필요합니다.
- <IDAssertion, X509, X509>
- 요청자의 ID가 X.509 인증을 사용하여 구축되고, 매개체를 인증하기 위해 매개체의 서명이 사용됩니다.