SAML HoK(holder-of-key) 대칭 키 토큰에 대한 클라이언트 및 제공자 바인딩 구성
SAML HoK(holder-of-key) 토큰에 대한 클라이언트 및 제공자 정책 세트 첨부 및 바인딩을 구성합니다. 이 구성 시나리오에서는 대칭 키를 사용합니다.
시작하기 전에
이 태스크 정보
SAML 토큰 정책은 애플리케이션 서버에서 CustomToken 확장으로 정의됩니다. CustomToken 확장을 작성하려면 클라이언트 및 제공자 바인딩 문서에서 사용자 정의 특성 관점에서 SAML 토큰 구성 매개변수를 정의하십시오. SAML HoK 대칭 클라이언트 샘플 및 SAML HoK 대칭 제공자 샘플 일반 바인딩은 사용자 정의 특성에 대한 핵심 구성을 포함합니다. 클라이언트 및 제공자 샘플 바인딩은 SAML11 및 SAML20 토큰 유형 구성 정보를 모두 포함합니다. 따라서 SAML11 및 SAML20 정책 세트 모두에서 사용할 수 있습니다. SAML 토큰 구현을 계획하는 방식에 따라 설치된 바인딩 샘플에서 특성 값을 수정해야 합니다. 특성 및 특성 값에 대한 예제는 프로시저에서 제공됩니다.
바인딩 샘플을 수정하는 프로시저는 먼저 웹 서비스 클라이언트 정책 세트 첨부를 구성하고 웹 서비스 제공자 정책 세트 첨부를 구성합니다. 프로시저에 나온 예제는 샘플 웹 서비스 애플리케이션 JaxWSServicesSamples를 사용합니다.
프로시저
- 두 개의 기본 정책 세트: SAML20 HoK 대칭 WSSecurity
기본값 및 Username WSHTTPS 기본값을 가져오십시오.
- 서비스 > 정책 세트 > 애플리케이션 정책 세트를 클릭하십시오.
- 가져오기를 클릭하십시오.
- 기본 저장소로부터을 선택하십시오.
- 두 개의 기본 정책 세트를 선택하십시오.
- 확인을 클릭하여 정책 세트를 가져오십시오.
- 신뢰 클라이언트에 정책 세트를 첨부하십시오. 애플리케이션 > 애플리케이션 유형 >
WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples >
서비스 클라이언트 정책 세트 및 바인딩을 클릭하십시오. 정책 세트 첨부 및 분리, 신뢰 클라이언트 바인딩 구성에 속한
단계는 애플리케이션 특정 바인딩이
외부 STS에 액세스하는 데 사용되는 경우에만 필요합니다. 일반 바인딩을 사용하여 외부 STS에 액세스하는 경우에는 이러한 단계를 건너뛰고
STS와의 통신 구성을 설명하는 단계로 이동할 수 있습니다.
- 웹 서비스 클라이언트 자원에 대한 선택란을 선택하십시오.
- 클라이언트 정책 세트 첨부를 클릭하십시오.
- Username WSHTTPS default 정책 세트를 선택하십시오.
- 신뢰 클라이언트 바인딩을 구성하십시오.
- 다시 웹 서비스 클라이언트 자원을 선택하십시오.
- 서비스 클라이언트 정책 세트 및 바인딩 패널에서 바인딩 지정을 클릭하십시오.
- 애플리케이션-특성 바인딩을 작성하기 위해 새 애플리케이션 특정 바인딩을 클릭하십시오.
- 새 애플리케이션 특정 바인딩에 대한 바인딩 구성 이름을 지정하십시오. 이 예제에서는 바인딩 이름이 SamlTCSample입니다.
- 바인딩에 SSL 전송 정책 유형을 추가하십시오. 선택적으로 NodeDefaultSSLSettings 설정을 수정할 수 있습니다. 보안 > SSL 인증서 및 키 관리 > SSL 구성 > NodeDefaultSSLSettings를 클릭하십시오.
- 바인딩에 WS-Security 정책 유형을 추가한 후 인증 설정을 수정하십시오.
- 애플리케이션 > 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples > 서비스 클라이언트 정책 세트 및 바인딩 > SamlTCSample > 추가 > WS-Security > 인증 및 보호 > request:uname_token을 클릭하십시오.
- 적용을 클릭하십시오.
- 콜백 핸들러를 선택하십시오.
- 외부 STS에 웹 서비스 클라이언트를 인증할 사용자 이름 및 비밀번호를 지정하고 비밀번호를 확인하십시오.
- 확인을 클릭하고 저장을 클릭하십시오.
- 바인딩 설정이 저장된 후
서비스 클라이언트 정책 세트 및 바인딩 패널로 돌아가서 정책 세트 및 바인딩을 분리하십시오.
- 애플리케이션 > 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples > 서비스 클라이언트 정책 세트 및 바인딩을 클릭하십시오.
- 웹 서비스 클라이언트 자원에 대한 선택란을 클릭하십시오.
- 클라이언트 정책 세트 분리를 클릭하십시오.
- 무제한 관할 정책 파일을 다운로드하십시오. SAML20 HoK 대칭 WSSecurity 기본 보안 정책은 256비트 암호화 키 크기를 사용하며, 이때 무제한 JCE(Java Cryptography Extension) 정책 파일이 필요합니다. 자세한 정보는 웹 서비스 보안 조정 주제의 무제한 JCE 정책 파일 사용 절을 참조하십시오.
- SAML20 HoK 대칭 WSSecurity 기본 정책 세트를 첨부하고
클라이언트 자원에 Saml HoK 대칭 클라이언트 샘플 바인딩을 지정하십시오.
- 애플리케이션 > 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples > 서비스 클라이언트 정책 세트 및 바인딩을 클릭하십시오.
- 웹 서비스 클라이언트 자원을 선택하십시오.
- 클라이언트 정책 세트 첨부를 클릭하십시오.
- 정책 세트, SAML20 HoK 대칭 WSSecurity 기본값을 선택하십시오.
- 다시 웹 서비스 클라이언트 자원을 선택하십시오.
- 서비스 클라이언트 정책 세트 및 바인딩 패널에서 바인딩 지정을 클릭하십시오.
- Saml HoK 대칭 클라이언트 샘플 일반 바인딩을 선택하십시오.
- 저장을 클릭하십시오.
- STS에서 인증하도록 STS 엔드포인트 URL 및 사용자 이름과 비밀번호를 구성하십시오.
- 애플리케이션 > 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples > 서비스 클라이언트 정책 세트 및 바인딩 > Saml HoK 대칭 클라이언트 샘플 > WS-Security > 인증 및 보호를 클릭하십시오.
- 보호 토큰 테이블에서 gen_saml20token을 클릭하십시오.
- 콜백 핸들러를 클릭하십시오.
- stsURI 특성을 수정하고 STS 엔드포인트를 지정하십시오. 외부 STS를 사용하지 않으며 애플리케이션 서버에서 대칭 키로 HoK(holder-of-key) 어설션을 자체 발행하려는 경우 이 단계를 완료하지 않고 8i단계로 이동합니다.
- 필요한 경우 wstrustClientPolicy 특성을 수정하고 값을 Username WSHTTPS 기본값으로 변경하십시오.
- wstrustClientBinding 특성을 수정하고 이전 단계에서 작성한 애플리케이션 특정 바인딩과 일치하도록 값을 변경하십시오. 이 예제의 경우 값은 SamlTCSample입니다. 이 단계는 WS-Trust 클라이언트 정책 세트를 첨부합니다. 서버에서 WS-Trust 클라이언트를 사용하여 STS로부터 SAML 토큰을 자동 요청하려는 경우 이 단계를 건너뛸 수 있습니다.
- 애플리케이션 서버의 바인딩 검색 방법을 제어하는 wstrustClientBindingScope 특성 값을 변경하십시오. 이 특성 값을 application 또는 domain으로 설정하십시오. 값이 도메인으로 설정된 경우 애플리케이션 서버는 일반 바인딩 문서를 포함하는 파일 시스템 위치에서 wstrustClientBinding을 검색합니다. 이 값이 application으로 설정되면, 애플리케이션 서버가 애플리케이션 특정 바인딩 문서가 포함된 파일 시스템 위치에서 wstrustClientBinding을 검색합니다. wstrustClientBindingScope 특성을 지정하지 않은 경우 애플리케이션 서버의 기본 동작은 애플리케이션 특정 바인딩을 검색한 후 일반 바인딩을 검색하는 것입니다. wstrustClientBinding을 찾을 수 없으면 애플리케이션 서버는 기본 바인딩을 사용합니다.
- confirmationMethod 특성 값이 Holder-of-key인지 확인하십시오.
- keyType 특성 값이 http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey 또는 symmetrickey 별명인지 확인하십시오. wstrustClientWSTNamespace 특성은 symmetrickey 별명을 해석하는 방법을 판별합니다. 이 경우 WS-Trust 1.3 네임스페이스로 설정되었다고 가정합니다. WS-Trust 1.2의 값을 보유한 경우 symmetrickey 별명은 http://schemas.xmlsoap.org/ws/2005/02/trust/SymmetricKey로 해석됩니다.
- 옵션: 기본 신뢰 클라이언트 SOAP 버전을 수정할 수 있습니다(애플리케이션 클라이언트와 동일함). SOAP 버전 1.1로 변경하려면 wstrustClientSoapVersion 사용자 정의 특성을 1.1 값으로 설정하거나, SOAP 버전 1.2로 변경하려면 이 특성 값을 1.2로 설정하십시오.
- 옵션: 외부 STS를 사용하지 않으며 애플리케이션 서버에서
대칭 키로 HoK(holder-of-key) 어설션을 자체 발행하려는 경우
사용자 정의 특성 recipientAlias를 대상 서비스의 키 별명 값으로 설정하십시오. 이 특성을 지정하면 대상 서비스에 대한 대칭 키를 보호합니다.
이 별명은 SAML 발행자의 구성된 신뢰 서비스에 포함된 올바른 키 별명이어야 합니다.
TrustStorePath
특성은 신뢰 저장소 파일의 위치를 지정합니다. TrustStorePath 특성은 애플리케이션 서버에 대한 SAMLIssuerConfig.properties 파일에 정의됩니다. 예를 들어, WebSphere Application
Server의 서버 레벨에서 SAMLIssuerConfig.properties 파일의 위치는 다음과 같습니다.
WebSphere Application Server의 셀 레벨에서 이 파일의 위치는 다음과 같습니다.app_server_root/profiles/$PROFILE/config/cells/$CELLNAME/nodes/$NODENAME/servers/$SERVERNAME/SAMLIssuerConfig.properties
app_server_root/profiles/$PROFILE/config/cells/$CELLNAME/sts/SAMLIssuerConfig.properties
- 적용과 저장을 차례로 클릭하십시오.
- 옵션: wstrustClientBinding 구성을 추가로 수정해야 하고 wstrustClientBinding 특성이 애플리케이션 특정 바인딩을 가리키는 경우에는 웹 서비스 클라이언트에 애플리케이션 특정 바인딩을 첨부해야 수정을 완료할 수 있습니다. 첨부는 일시적입니다. 이전 단계에서 자세히 설명한 대로, 수정이 완료된 후 수정된 애플리케이션 특정 바인딩을 웹 서비스에서 분리할 수 있습니다.
- 외부 STS에서 SSL 인증서를 가져오십시오.
- 보안 > SSL 인증서 및 키 관리 > 엔드포인트 보안 구성 관리 > server_or_node_endpoint > 키 저장소 및 인증서 > NodeDefaultTrustStore > 서명자 인증서를 클릭하십시오.
- 포트에서 검색을 클릭하십시오.
- 외부 STS 서버의 호스트 이름과 포트 번호를 지정하고 인증서에 별명을 지정하십시오. SSL STS 포트를 사용하십시오.
- 서명자 정보 검색을 클릭하십시오.
- 적용 및 저장을 클릭하여 검색된 인증서를 NodeDefaultTrustStore 오브젝트에 복사하십시오.
- 정책 세트 첨부 수정사항이 적용될 수 있도록 웹 서비스 클라이언트 애플리케이션을 다시 시작하십시오.
- SAML20 HoK 대칭 WSSecurity 기본값 정책 세트를 웹 서비스 제공자에 첨부하십시오.
- 무제한 관할 정책 파일을 다운로드하십시오. SAML20 HoK 대칭 WSSecurity 기본 보안 정책은 256비트 암호화 키 크기를 사용하며, 이때 무제한 JCE(Java Cryptography Extension) 정책 파일이 필요합니다. 자세한 정보는 웹 서비스 보안 조정 애플리케이션 주제의 무제한 JCE 정책 파일 사용 절을 참조하십시오.
- Saml HoK 대칭 제공자 샘플 일반 바인딩을 지정하십시오.
- 애플리케이션 > 애플리케이션 유형 > WebSphere
엔터프라이즈 애플리케이션 > JaxWSServicesSamples > 서비스 제공자 정책 세트 및 바인딩 > Saml HoK 대칭 제공자 샘플 > WS-Security > 인증 및 보호를 클릭하십시오.
- 인증 토큰 테이블에서 con_saml20token을 클릭하십시오.
- 콜백 핸들러 링크를 클릭하십시오.
- 이 패널을 사용하여 다음 단계에 나온 대로, 외부 STS에 대한 임베디드 대칭 키 복호화 구성 및 SAML 토큰 발행자 디지털 서명 유효성 검증을 구성하십시오.
- 수신자의 공개 키로 보호되는 SAML 어설션 또는 임베디드 비밀 키를
복호화하도록 구성 바인딩을 구성하십시오. STS는 수신자의 공개 키에 대한 액세스 권한을 보유해야 합니다.
복호화를 위해 키를 구성하는 두 가지 옵션이 있습니다.
- 옵션 1: 다음과 같이 키 저장소 및 개인 키를 구성합니다.
- 키 저장소 이름 필드의 값이 custom인지 확인하십시오.
- 사용자 정의 키 저장소 구성을 클릭하여 키 저장소 구성을 보고 편집하십시오.
- 키 파일의 초기값이 app_server_root/etc/ws-security/samples/enc-service.jceks인지 확인하십시오.
- 옵션 2: 다음과 같이 콜백 핸들러에서 사용자 정의 특성을 설정합니다.
사용자 정의 특성 값 keyStorePath 키 저장소 위치 keyStoreType 일치하는 키 저장소 유형 지원되는 키 저장소 유형: jks, jceks, pkcs12
keyStorePassword 키 저장소에 대한 비밀번호 keyAlias SAML 암호화에 사용된 공개 키의 별명 keyName SAML 암호화에 사용된 공개 키의 이름 keyPassword 키 이름에 대한 비밀번호
- 옵션 1: 다음과 같이 키 저장소 및 개인 키를 구성합니다.
- 신뢰 저장소에 외부 STS 서명 인증서를 추가하십시오.
이 단계는 STS에서 SAML 어설션에 서명하고
signatureRequired 사용자 정의 특성이 지정되지 않았거나 값이
true인 경우 필요합니다. 서비스 제공자에 대해
이 신뢰 저장소가 구성됩니다.
- 키 저장소 유형과 일치하도록 사용자 정의 특성 trustStoreType을 설정하십시오. 지원되는 키 저장소 유형: jks, jceks, pkcs12.
- 사용자 정의 특성 trustStorePath를 키 저장소 파일 위치로 설정하십시오. 예: app_server_root/etc/ws-security/samples/dsig-issuer.jceks. dsig_issuer.jceks 파일은 WebSphere Application Server가 설치된 경우 제공되지 않으므로 파일을 작성해야 합니다.
- 사용자 정의 특성 trustStorePassword를 저장소 비밀번호의 인코딩된 값으로 설정하십시오. 비밀번호는 사용자 정의 특성으로 저장되며, 관리 콘솔에서 인코딩됩니다.
- 옵션: 사용자 정의 특성 trustedAlias를 samlissuer와 같은 값으로 설정할 수 있습니다. 다른 서명자가 SAML 토큰에 서명한 경우(예: STS가 토큰 요청을 다른 토큰 제공자에게 위임하고 각 제공자가 인증서에 서명한 경우) trustedAlias 특성을 설정하지 마십시오. 사용자 정의 특성을 지정하지 않으면 웹 서비스 런타임 환경은 SAML 어설션 내 서명 인증서 비밀번호를 사용하여 서명 유효성을 검증하고 구성된 신뢰 저장소에서 인증서를 확인합니다.
- 옵션: 사용자 정의 특성 trustAnySigner을 true 값으로 설정하여 서명자 인증서 유효성 검증을 수행하지 않습니다. SAML 서명 유효성 검증을 위해 모든 인증서 신뢰 구성 설정은 무시됩니다.
- 옵션: 사용자 정의 특성 signatureRequired를 false로 설정할 수 있습니다. 이 경우 디지털 서명 유효성 검증을 포기합니다. 그러나 바람직한 보안 사례는 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"/>
기본적으로 WebSphere Application Server는 trustedIssuer_n 값을 정의하지 않은 경우 모든 SAML 발행자를 신뢰합니다. 이 기본 동작을 알지 못하면 권한 부여된 STS에서 발행하는 SAML 어설션을 잘못 승인할 수도 있습니다.
- 옵션: SAML 토큰의 서명을 확인하는 데 사용할 수 있는, 루트가 아닌 인증 기관(CA) 인증서 목록을 추가할 수 있습니다. 루트가 아닌 인증서를 추가하려면 이름이 X509PATH_n인 사용자 정의 특성을 추가하십시오. 여기서 n은 루트가 아닌 인증서의 값으로 음수가 아닌 정수입니다.
- 옵션: SAML 토큰의 서명 유효성을 검증하는 데 사용할 수 있는, 인증서 폐기 목록(CRL) 목록을 추가할 수 있습니다. CRL을 추가하려면 이름이 CRLPATH_n인 사용자 정의 특성을 추가하십시오. 여기서 n은 CRL의 값으로 음수가 아닌 정수입니다.
- 적용과 저장을 차례로 클릭하십시오.
- 옵션: 요청자 ID를 표시하기 위해 SAML 토큰을 선택하도록 호출자 바인딩을
구성할 수 있습니다. 웹 서비스 보안 런타임 환경은 지정된 JAAS 로그인
구성을 사용하여 사용자 이름으로 SAML 토큰 NameId 또는 NameIdentifier를 통해
사용자 레지스트리에서 사용자 보안 이름 및 그룹 멤버십 데이터를 가져옵니다.
- 애플리케이션 > 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples > 서비스 제공자 정책 세트 및 바인딩 > Saml HoK 대칭 제공자 샘플 > WS-Security > 호출자를 클릭하십시오.
- 새로 작성을 클릭하여 호출자 구성을 작성하십시오.
- 이름(예: caller)을 지정하십시오.
- 호출자 ID 로컬 파트에 대한 값을 입력하십시오. 예를 들어, http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0과 같습니다. 이는 첨부된 WS-Security 정책에서 CustomToken 요소의 로컬 파트입니다.
- 적용과 저장을 차례로 클릭하십시오.
- 정책 세트 첨부 수정사항을 적용할 수 있도록 웹 서비스 제공자 애플리케이션을 다시 시작하십시오.
결과
하위 주제
SAML 발행자 구성 특성
새 자체 발행된 SAML 토큰을 작성할 때 토큰이 구성되는 방법을 제어하기 위해 구성 특성을 지정할 수 있습니다. 구성 특성은 발행자 위치, 키 저장소 및 신뢰 저장소 파일 경로와 같은 제공자 측 정보에 대해 설명하는 이름/값 쌍입니다.SAML 발행자 구성 특성
새 자체 발행된 SAML 토큰을 작성할 때 토큰이 구성되는 방법을 제어하기 위해 구성 특성을 지정할 수 있습니다. 구성 특성은 발행자 위치, 키 저장소 및 신뢰 저장소 파일 경로와 같은 제공자 측 정보에 대해 설명하는 이름/값 쌍입니다.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configsamlhoktoken
파일 이름:twbs_configsamlhoktoken.html