SAML Bearer 토큰은 Bearer 주제 확인 방법을 사용하는
SAML 토큰입니다. Bearer 주제 확인 방법에서
SOAP 메시지의 발신자는 포함하는 SOAP 메시지의 컨텐츠와 SAML 토큰을 바인딩하는 대응을 설정하지
않아도 됩니다.
SAML Bearer 토큰에 대한 클라이언트 및 제공자 정책 세트 첨부 및 바인딩을 구성할 수 있습니다.
시작하기 전에
SAML을 사용하는
WebSphere® Application Server에서는
많은 기본 SAML 토큰 애플리케이션 정책 세트와 여러 일반 클라이언트 및 제공자 바인딩 샘플을
제공합니다. SAML Bearer 토큰에 대한 클라이언트 및 제공자 바인딩을
구성하기 전에 먼저 다음을 수행해야 합니다.
이 태스크 정보
SAML 토큰 정책은 애플리케이션 서버에서 CustomToken 확장으로
정의됩니다.
CustomToken 확장을 작성하려면 클라이언트 및 제공자 바인딩 문서에서
사용자 정의 특성 관점에서 SAML 토큰 구성 매개변수를 정의해야 합니다.
일반 바인딩에 대한 SAML Bearer 클라이언트 샘플 및 SAML Bearer 제공자 샘플은
사용자 정의 특성에 대한 핵심 구성을 포함합니다.
클라이언트 및 제공자
샘플 바인딩은 SAML11 및 SAML20 토큰 유형 구성 정보를 모두 포함합니다.
이 샘플은 SAML11 및 SAML20 정책 세트 모두에서 사용할 수 있습니다.
SAML 토큰 구현을 계획하는 방식에 따라 설치된 바인딩 샘플에서 특성 값을
수정해야 합니다. 특성 및 특성 값에 대한 예제는 다음 프로시저에서 제공됩니다.
다음 프로시저에 나온 대로, 바인딩 샘플을 수정하려면
먼저 웹 서비스 클라이언트 정책 세트 첨부를 구성하고
웹 서비스 제공자 정책 세트 첨부를 수정해야 합니다. 프로시저에
제공된 예제는 샘플 웹 서비스 애플리케이션 JaxWSServicesSamples를 사용합니다.
프로시저
- 신뢰 클라이언트 구성
외부 STS에 액세스하기 위해 일반
바인딩을 사용하는 경우 클라이언트 애플리케이션에 정책 세트 및 바인딩 첨부 단계를
건너뛰십시오.
애플리케이션 특정 바인딩을 사용하여 외부 STS에 액세스하는 경우
다음 단계를 완료하십시오.
- 바인딩을 구성할 수 있도록 웹 서비스 클라이언트 애플리케이션에
신뢰 클라이언트의 정책 세트를 임시로 첨부하십시오.
신뢰 클라이언트의 정책 세트를 첨부하면
관리 콘솔을 사용하여 클라이언트 바인딩 문서 바인딩을 작성한 후 수정할 수
있습니다. 애플리케이션 특정 바인딩을 사용하여 외부 STS에 액세스하는 경우에만
이 조치를 완료하면 됩니다.
- 관리 콘솔에서 애플리케이션
> 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples
> 서비스 클라이언트 정책 세트 및 바인딩을 클릭하십시오.
- 웹 서비스 클라이언트 자원(JaxWSServicesSamples)을 선택하십시오.
- 클라이언트 정책 세트 첨부를 클릭하십시오.
- 정책 세트 사용자 이름 WSHTTPS 기본값을 선택하십시오.
- 신뢰 클라이언트 바인딩을 작성하십시오.
- 웹 서비스 클라이언트 자원(JaxWSServicesSamples)을 다시 선택하십시오.
- 바인딩 지정을 클릭하십시오.
- 애플리케이션-특성 바인딩을 작성하기 위해 새 애플리케이션 특정 바인딩을 클릭하십시오.
- 새 애플리케이션 특정 바인딩에 대한 바인딩 구성 이름을
지정하십시오. 이 예제에서 바인딩 이름은 SamlTCSample입니다.
- SSL 전송 정책 유형을 바인딩에 추가하십시오.
추가 > SSL 전송을 클릭하고 확인을 클릭하십시오.
- 바인딩에 WS-Security 정책 유형을 추가한 후
신뢰 클라이언트에 대한 인증 설정을 수정하십시오.
- WS-Security 정책 유형이 아직 SamlTCSample 바인딩 정의에 없으면
애플리케이션 > 애플리케이션 유형
> WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples >
서비스 클라이언트 정책 세트 및 바인딩 > SamlTCSample을
클릭하십시오.
- 추가 > WS-Security > 인증 및 보호 > request:uname_token을
클릭하십시오.
- 적용을 클릭하십시오.
- 콜백 핸들러를 선택하십시오.
- 웹 서비스 클라이언트가 외부 STS를 인증하는 데 사용할 사용자 이름 및 비밀번호를
지정하십시오.
- 확인,
저장을 차례로 클릭하십시오.
- 바인딩 설정을 저장한 후에 서비스 클라이언트
정책 세트 및 바인딩 패널로 돌아가 정책 세트 및 바인딩을 분리하십시오.
- 이 페이지의 탐색에서 서비스 클라이언트 정책 세트 및 바인딩을
클릭하거나 애플리케이션 > 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션
> JaxWSServicesSamples >
서비스 클라이언트 정책 세트 및 바인딩을 클릭하십시오.
- 웹 서비스 클라이언트 자원(JaxWSServicesSamples)을 선택하고
클라이언트 정책 세트 분리를 클릭하십시오.
방금 작성한 애플리케이션 특정 바인딩 구성은
정책 세트를 분리해도 파일 시스템에서 삭제되지 않습니다. 따라서
신뢰 클라이언트에서 STS에 액세스하기 위해 작성한 애플리케이션 특정 바인딩을 계속
사용할 수 있습니다.
- SAML 정책 세트 및 바인딩을 클라이언트 애플리케이션에 첨부하십시오.
- 원하는 SAML 정책 세트를 웹 서비스 클라이언트 애플리케이션에
첨부하십시오.
- SAML 정책이 JaxWSServicesSamples의
서비스 클라이언트 정책 세트 및 바인딩 페이지에 없으면
애플리케이션 > 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션
> JaxWSServicesSamples
> 서비스 클라이언트 정책 세트 및 바인딩 을 클릭하십시오.
- 웹 서비스 클라이언트 자원을 선택하십시오.
- 클라이언트 정책 세트 첨부를 클릭하십시오.
- 웹 서비스 클라이언트에 대한 적절한 SAML 정책을 선택하십시오.
- SAML Bearer 클라이언트 샘플 일반 바인딩을 클라이언트에 첨부하십시오.
- 다시 웹 서비스 클라이언트 자원을 선택하십시오.
- 바인딩 지정을 클릭하십시오.
- SAML Bearer 클라이언트 샘플을 선택하십시오.
- 웹 서비스 클라이언트 바인딩을 구성하십시오.
샘플
바인딩에서 STS 엔드포인트 URL을 구성하십시오.
- 애플리케이션
> 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples
> 서비스 클라이언트 정책 세트 및 바인딩 > SAML Bearer 클라이언트 샘플 >
WS-Security > 인증 및 보호를 클릭하십시오.
- 인증 토큰 테이블에서 gen_saml11token 또는
gen_saml20token을 클릭하십시오.
- 콜백 핸들러를 클릭하십시오.
- STS 엔드포인트를 지정하도록 stsURI 특성을 수정하십시오.
이 특성은 중간 서버의 자체 발행자에 대해서는 필요하지 않습니다.
그러나 중간 서버의 자체 발행자에 대해 이 특성을 지정한 경우
www.websphere.ibm.com/SAML/Issuer/Self로 설정됩니다.
- 다음 특성이 필수 값으로 설정되었는지 확인하십시오.
이 특성이 일부 다른 값으로 설정된 경우 특성 설정을 필수 값으로 변경해야 합니다.
- confirmationMethod 특성은 Bearer로 설정되어야 합니다.
- keyType 특성은 http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer로
설정되어야 합니다.
- wstrustClientPolicy 특성은 Username WSHTTPS default로
설정되어야 합니다.
- wstrustClientBinding 특성에 지정된 값은 이전 단계에서 작성된
신뢰 클라이언트의 애플리케이션 특정 바인딩의 이름과 일치해야 합니다.
예를 들어, 이전 단계에서 이름이 SamlTCSample인 애플리케이션 특정 바인딩을
작성했습니다. 이 시나리오에서는 wstrustClientBinding 특성의 값으로 SamlTCSample을
지정해야 합니다.
- 옵션: 애플리케이션 서버가 바인딩을 검색하는 방법을 변경하려는 경우
wstrustClientBindingScope 특성을 지정하고 해당 값을 애플리케이션 또는 도메인에 설정할 수
있습니다.
값이 도메인에 설정된 경우 애플리케이션 서버는
일반 바인딩 문서를 포함하는 파일 시스템 위치에서
wstrustClientBinding을 검색합니다.
값이 애플리케이션으로 설정된 경우 애플리케이션 서버는
애플리케이션 특정 바인딩 문서를 포함하는 파일 시스템 위치에서
wstrustClientBinding을 검색합니다.
wstrustClientBindingScope 특성을
지정하지 않은 경우 애플리케이션 서버의 기본 동작은 애플리케이션 특정 바인딩을 검색한 후
일반 바인딩을 검색하는 것입니다.
wstrustClientBinding을 찾을 수 없으면
애플리케이션 서버는 기본 바인딩을 사용합니다.
- 옵션: 기본 신뢰 클라이언트 SOAP 버전을 수정하려는 경우(애플리케이션 클라이언트와
동일함) wstrustClientSoapVersion 사용자 정의 특성에 대해 새 값을 지정하십시오.
SOAP 버전 1.1로 변경하려면 wstrustClientSoapVersion 사용자 정의 특성을
1.1로 설정하십시오.
SOAP 버전 1.2로 변경하려면 wstrustClientSoapVersion 사용자 정의 특성을
1.2로 설정하십시오.
- 적용과
저장을 차례로 클릭하십시오.
추가적으로 wstrustClientBinding 구성을 수정해야 하고
wstrustClientBinding 특성이 애플리케이션 특정 바인딩을 가리키는 경우(예를 들어, 이 경우
SamlTCSample) 수정을 완료하기 전에 웹 서비스 클라이언트에 애플리케이션 특정 바인딩을
첨부해야 합니다. 첨부는 일시적입니다. 이전 단계에서 설명한 대로,
수정을 완료한 후에 웹 서비스 클라이언트에서 수정된 애플리케이션 특정 바인딩을
분리할 수 있습니다.
다음 단계로 진행하기 전에 외부 STS의 SSL 인증서가
NodeDefaultTrustStore에 있는지 확인하십시오. 자세한 정보는 시작하기 전에 절을 참조하십시오.
- 정책 세트 첨부 수정을 적용할 수 있도록 웹 서비스 클라이언트
애플리케이션을 다시 시작하십시오.
애플리케이션이 다시 시작되면
정책 세트 및 바인딩 첨부 정보가 업데이트되지만 일반 바인딩에서 업데이트된 정보는
모든 일반 바인딩을 새로 고치기 전까지 런타임 시 반영되지 않습니다.
업데이트를 활용하려면 일반 바인딩을 다시 로드한 후에 애플리케이션을 다시 시작해야
합니다. 자세한 정보는 클라이언트 및 제공자 일반 바인딩 다시 로드 및 애플리케이션 다시 시작 단계를
참조하십시오.
- SAML 정책 세트 및 바인딩을 제공자 애플리케이션에 첨부하십시오.
- 적절한 SAML 정책 세트를 웹 서비스 제공자에 첨부하십시오.
- 관리 콘솔에서 애플리케이션
> 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples
> 서비스 제공자 정책 세트 및 바인딩을 클릭하십시오.
- 웹 서비스 제공자 자원(JaxWSServicesSamples)을 선택하십시오.
- 정책 세트 첨부를 클릭하십시오.
- 웹 서비스 제공자에 대한 적절한 SAML 정책을 선택하십시오.
- SAML Bearer 제공자 샘플 일반 바인딩을 지정하십시오.
- 다시 웹 서비스 제공자 자원을 선택하십시오.
- 바인딩 지정을 클릭하십시오.
- SAML Bearer 제공자 샘플을 선택하십시오.
- 웹 서비스 제공자 바인딩을 구성하십시오.
- 웹 서비스 제공자 바인딩이 아직 JaxWSServicesSamples의 서비스 제공자
정책 세트 및 바인딩 페이지에 없는 경우
WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples
> 서비스 제공자 정책 세트 및 바인딩 > SAML Bearer 제공자 샘플을
클릭하십시오.
- WS-Security > 인증 및 보호를 클릭하십시오.
- 인증 토큰 테이블에서 con_saml11token 또는
con_saml20token을 클릭하십시오.
- 콜백 핸들러를 클릭하십시오.
관리
콘솔의 콜백 핸들러 페이지는 외부 STS의 SAML 토큰 발행자 디지털 서명 유효성 검증 바인딩 데이터를
구성하는 데 사용됩니다.
- 옵션: 디지털 서명 유효성 검증을 포기하려는 경우 signatureRequired
사용자 정의 특성을 false로 설정하십시오.
디지털 서명 유효성 검증을 포기하려는 경우 signatureRequired
사용자 정의 특성을 false로 설정할 수 있습니다.
그러나 바람직한 보안 사례는 SAML 어설션의 서명을 요구하고 항상
발행자 디지털 서명 유효성 검증을 요구하는 것입니다. 이 특성의 기본값은 false입니다.
- 옵션: 서명자 인증서 유효성 검증을 허용하지 않으려는 경우 trustAnySigner
사용자 정의 특성을 true로 설정하십시오.
SAML 서명 유효성 검증을 위해 모든 인증서 신뢰 구성 설정은
무시됩니다. 이 특성은 signatureRequired 사용자 정의 특성이
true로 설정된 경우에만 유효합니다(이 특성의 기본값임).
- STS에서 어설션에 서명하고 signatureRequired 사용자 정의 특성이
기본값, true로 설정되었으며
trustAnySigner 사용자 정의 특성이 기본값, false로
설정된 경우 다음 조치를 완료하십시오.
- 외부 STS 서명 인증서에 대해 STS 서명 인증서 자체 또는 해당 루트 CA 인증서와 같은
신뢰 유효성 검증을 통과할 수 있도록 제공자에 대한 신뢰 저장소에 인증서를 추가하십시오.
- trustStorePath 사용자 정의 특성을 신뢰 저장소 파일 이름과 일치하는 값으로 설정하십시오.
이 값은 완전한 값이거나 ${USER_INSTALL_ROOT}와 같은 키워드를 사용할 수 있습니다.
- trustStoreType 사용자 정의 특성을 키 저장소 유형과 일치하는 값으로 설정하십시오.
지원되는 키 저장소 유형은
jks, jceks, pkcs12를 포함합니다.
- trustStorePassword 사용자 정의 특성을 신뢰 저장소 비밀번호와 일치하는 값으로 설정하십시오.
비밀번호는 사용자 정의 특성으로 저장되며,
관리 콘솔에서 인코딩됩니다.
- 선택사항: trustedAlias 사용자 정의 특성을 samlissuer와
같은 값으로 설정하십시오. 이 특성을 지정하면 별명으로
표시되는 X.509 인증서는 SAML 서명 검증에 대해 신뢰되는 유일한
STS 인증서입니다. 사용자 정의 특성을 지정하지 않으면 웹 서비스 런타임 환경은
SAML 어설션 내 서명 인증서를 사용하여 SAML 서명 유효성을 검증하고
구성된 신뢰 저장소에서 인증서를 확인합니다.
- 옵션: 발행자 이름, SAML 어설션에서 발행자의 인증서 SubjectDN 또는
둘 다의 유효성을 검증하도록 수신자를 구성하십시오.
신뢰할 수 있는 발행자 이름 목록 또는 신뢰할 수 있는 인증서 SubjectDN 목록을
작성하거나 두 유형의 목록을 모두 작성할 수 있습니다. 발행자 이름 및 SubjectDN
목록 모두 작성하면 발행자 이름 및 SubjectDN 모두 확인됩니다.
수신된 SAML 발행자 이름 또는 서명자 SubjectDN이 신뢰할 수 있는 목록에 없으면 SAML 유효성 검증에
실패하고 예외가 발행됩니다.
다음
예제에서는 신뢰할 수 있는 발행자 및 신뢰할 수 있는 SubjectDN의 목록을
작성하는 방법을 보여줍니다. 신뢰할 수 있는 각 발행자 이름의 경우
trustedIssuer_n을 사용하십시오. 여기서
n은 양의 정수입니다. 신뢰할 수 있는 각 SubjectDN의
경우 trustedSubjectDN_n을 사용하십시오. 여기서
n은 양의 정수입니다. 두 유형의 목록을 작성하는 경우 정수
n은 동일한 SAML 어설션의 두 목록에서 일치해야 합니다.
정수 n은 1부터 시작하고 1씩 증가합니다.
이 예제에서는
서명자의 SubjectDN에 상관없이 발행자 이름 WebSphere/samlissuer로
SAML 어설션을 신뢰하므로 다음 사용자 정의 특성을 추가합니다.
<properties value="WebSphere/samlissuer" name="trustedIssuer_1"/>
또한
서명자의 SubjectDN이 ou=websphere,o=ibm,c=us인 경우
IBM/samlissuer를 통해 실행된 SAML 어설션을 신뢰할 수 있습니다. 따라서 다음 사용자 정의 특성을
추가합니다.
<properties value="IBM/samlissuer" name="trustedIssuer_2"/>
<properties value="ou=websphere,o=ibm,c=us" name="trustedSubjectDN_2"/>
- SAML 어설션을 복호화하십시오.
SAML 어설션이
STS에 의해 암호화된 경우 SAML 토큰이
Assertion 요소 대신, EncryptedAssertion 요소로 SOAP 보안 헤더에 나타납니다.
SAML 어설션을 복호화하려면 STS에서 어설션을 암호화하는 데 사용된 공개 키에 대응하는 개인 키를
구성해야 합니다.
수신자가 SAML 어설션을 복호화하려면
다음 콜백 핸들러 사용자 정의 특성을 다음 표에서 설명한 값으로 설정해야 합니다.
사용자 정의 특성 |
값 |
keyStorePath |
키 저장소 위치 |
keyStoreType |
일치하는 키 저장소 유형 지원되는 키 저장소 유형: jks, jceks, pkcs12
|
keyStorePassword |
키 저장소에 대한 비밀번호 |
keyAlias |
SAML 암호화에 사용된 개인 키의 별명 |
keyName |
SAML 암호화에 사용된 개인 키의 이름 |
keyPassword |
키 이름에 대한 비밀번호 |
- 옵션: 요청자 ID를 표시하기 위해 SAML 토큰을 선택하도록 호출자 바인딩을
구성할 수 있습니다. 웹 서비스 보안 런타임 환경은 지정된 JAAS 로그인
구성을 사용하여 사용자 이름으로 SAML 토큰 NameId 또는 NameIdentifier를 통해
사용자 레지스트리에서 사용자 보안 이름 및 그룹 멤버십 데이터를 가져옵니다.
- 를 클릭하십시오.
- 새로 작성을 클릭하여 호출자 구성을 작성하십시오.
- 이름(예: caller)을 지정하십시오.
- 호출자 ID 로컬 파트에 대한 값을 입력하십시오.
SAML 1.1 토큰의 경우 다음을 입력하십시오.
http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1SAML 2.0
토큰의 경우 다음을 입력하십시오.
http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0
- 적용과
저장을 차례로 클릭하십시오.
- 클라이언트 및 제공자 일반 바인딩을 다시 로드하고 애플리케이션을 다시 시작하십시오.
일반 바인딩의 정보가 업데이트되는 경우 새 설정은 런타임 시 즉시 반영되지
않습니다. 업데이트를 적용하려면 애플리케이션 서버에서 정책 세트 관리자가
업데이트된 일반 바인딩을 다시 로드해야 합니다. 애플리케이션 서버를
중지하고 다시 시작하거나 wsadmin을 통해 PolicySetManager MBean에서
refresh 명령을 사용하여 업데이트된 정책 세트 및 일반 바인딩을 다시 로드할 수 있습니다.
정책 세트 관리자의 새로 고치기 작업에 대한 자세한 정보는
wsadmin 스크립트를 사용하여 정책 세트 구성 새로 고치기 주제를 참조하십시오.
클라이언트 및 제공자 일반 바인딩을 다시 로드하고 애플리케이션을 다시 시작하려면
다음 조치 중 하나를 완료하십시오.
- 애플리케이션 서버를 다시 시작하십시오. 또는
- PolicySetManager MBean을 새로 고치고 클라이언트 및 제공자 웹 서비스 애플리케이션을
다시 시작하십시오.
결과
프로시저를 완료하면 JaxWSServicesSamples 웹 서비스 애플리케이션은
SAML Bearer 기본 정책 세트, SAML Bearer 클라이언트 샘플, SAML Bearer 제공자
샘플 일반 바인딩을 사용할 수 있습니다.