인증 메소드 개요
WebSphere® Application Server에 대한 웹 서비스 보안 구현은 BasicAuth, LTPA(Lightweight Third Party Authentication), 디지털 서명, ID 어설션 인증 메소드를 지원합니다.
BasicAuth 인증 메소드를 사용하도록 WebSphere Application Server가 구성된 경우, 송신자는 LTPA(Lightweight Third Party Authentication) 토큰을 현재 보안 컨텍스트 또는 SOAP 메시지 헤더의 바인딩 파일에 있는 기본 인증 데이터 구성의 BinarySecurityToken으로 첨부합니다. 웹 서비스 보안 메시지 수신자는 구성된 사용자 레지스트리에 대해 사용자 이름과 비밀번호를 유효성 검증하여 송신자를 인증합니다. 송신자는 LTPA 메소드를 사용하여 SOAP 메시지 헤더에 이전에 수신한 LTPA BinarySecurityToken을 첨부합니다. 수신자는 LTPA 토큰과 토큰 만기 시간을 유효성 검증하여 송신자를 인증합니다. 송신자는 디지털 서명 인증 메소드를 사용하여 X509 인증서의 BinarySecurityToken을 메시지 본문의 디지털 서명, 시간소인, 보안 토큰 또는 세 개의 조합과 함께 웹 서비스 보안 메시지 헤더에 첨부합니다. 수신자는 확인된 인증서의 공개 키를 사용하여 X.509 인증서와 디지털 서명의 유효성을 확인하여 송신자를 인증합니다.
ID 어설션 인증 메소드는 다른 세 가지 인증 메소드와 다릅니다. 이 메소드는 신뢰 관계를 기반으로 송신자의 보안 신임 정보를 확립합니다. 예를 들어, 중개 서버가 클라이언트를 대신하여 다운스트림 서버에서 서비스를 호출해야 하지만 클라이언트 인증 정보가 없는 경우 ID 어설션 인증 메소드를 사용할 수 있습니다. 중개 서버는 다운스트림 서버와 신뢰 관계를 확립한 후 동일한 다운스트림 서버에 클라이언트 ID를 어설션할 수 있습니다.
- BasicAuth
- 디지털 서명
- 추정 신뢰
BasicAuth 및 디지털 서명 신뢰 모드를 사용하는 경우 중개 서버는 인증을 위해 자체 인증 정보를 다운스트림 서버로 전달합니다. 추정 신뢰 모드는 일부 외부 메커니즘을 사용하여 신뢰 관계를 확립합니다. 예를 들어, 중개 서버는 다운스트림 서버와의 SSL(Secure Socket Layer) 연결 및 전송 계층 클라이언트 인증서 인증을 통해 SOAP 메시지를 전달합니다.
- 다운스트림 서버가 중개 서버의 인증 정보를 유효성 검증합니다.
- 다운스트림 서버가 인증된 중개 서버에 ID 어설션에 대한 권한이 부여되었는지 여부를 확인합니다. 예를 들어, 중개 서버는 다운스트림 서버의 신뢰 목록에 있어야 합니다.
클라이언트 ID는 이름 문자열, 식별 이름(DN) 또는 X.509 인증서로 표시할 수 있습니다. 클라이언트 ID는 웹 서비스 보안 메시지에서 사용자 이름, DN만 있는 UsernameToken에 또는 인증서의 BinarySecurityToken에 첨부됩니다. 다음 표에는 각 인증 메소드에 필요한 보안 토큰 유형이 요약되어 있습니다.
인증 방법 | 보안 토큰 |
---|---|
BasicAuth | BasicAuth에는 <wsse:Username> 및 <wsse:Password>가 있는 <wsse:UsernameToken>이 필요합니다. |
Signature | 서명에는 <ds:Signature> 및 <wsse:BinarySecurityToken>이 필요합니다. |
IDAssertion | IDAssertion에는 <wsse:Username>이 있는 <wsse:UsernameToken> 또는 <idType>에 따라
클라이언트 ID에 대한 X.509 인증서가 있는
<wsse:BinarySecurityToken>이 필요합니다. 이 메소드에는
<trustMode>에 따라 다른 보안 토큰도 필요합니다.
|
LTPA | LTPA에는 LTPA 토큰이 있는 <wsse:BinarySecurityToken>이 필요합니다. |
<loginConfig xmi:id="LoginConfig_1052760331326">
<authMethods xmi:id="AuthMethod_1052760331326" text="BasicAuth"/>
<authMethods xmi:id="AuthMethod_1052760331327" text="IDAssertion"/>
<authMethods xmi:id="AuthMethod_1052760331336" text="Signature"/>
<authMethods xmi:id="AuthMethod_1052760331337" text="LTPA"/>
</loginConfig>
<idAssertion xmi:id="IDAssertion_1052760331336" idType="Username" trustMode="Signature"/>
<loginConfig xmi:id="LoginConfig_1051555852697">
<authMethods xmi:id="AuthMethod_1051555852698" text="IDAssertion"/>
</loginConfig>
<idAssertion xmi:id="IDAssertion_1051555852697" idType="Username" trustMode="Signature"/>

송신자 보안 핸들러는 javax.security.auth.callback.CallbackHandler 인터페이스 구현의 handle() 메소드를 호출합니다. javax.security.auth.callback.CallbackHandler 인터페이스는 보안 토큰을 작성하고 송신자 보안 핸들러로 보안 토큰을 다시 전달합니다. 송신자 보안 핸들러는 콜백 배열의 인증 정보를 기반으로 보안 토큰을 구성하고 웹 서비스 보안 메시지 헤더에 보안 토큰을 삽입합니다.
수신자 보안 핸들러는 메시지 헤더의 토큰 유형을 배치 디스크립터에 구성된 예상 토큰 유형과 비교합니다. 예상된 토큰 유형을 SOAP 메시지의 웹 서비스 보안 헤더에서 찾을 수 없으면 요청이 거부되고 SOAP 결함 예외가 발생합니다. 그렇지 않으면 토큰 유형은 토큰 유효성 검증을 위해 JAAS(Java™ Authentication and Authorization Service) 로그인 구성에 맵핑하는 데 사용됩니다. 인증에 성공하면 JAAS 주제(Subject)가 작성되고 실행 중인 스레드와 연관됩니다. 그렇지 않으면 요청이 거부되고 SOAP 결함 예외가 발생합니다.