WSS API를 사용하여 외부 보안 토큰 서비스에서 대칭 키를 포함하는 SAML HoK(holder-of-key) 토큰 요청

외부 보안 토큰 서비스(STS)를 요청하여 대상 서비스에 대해 암호화되는 대칭 키 사용 HoK(holder-of-key) 주제 확인 메소드를 포함하는 SAML 토큰을 발행할 수 있습니다. JAX-WS(Java™ API for XML-Based Web Services) 프로그래밍 모델 및 WSS API(Web Services Security API)를 사용하여 이 태스크를 완료하십시오.

시작하기 전에

이 태스크에서는 사용자가 JAX-WS 프로그래밍 모델, WSS API 인터페이스, SAML 개념 및 웹 서비스 설정을 구성하고 관리하기 위한 정책 세트 사용에 익숙한 것으로 가정합니다. 이 태스크를 시작하기 전에 다음 조치를 완료하십시오.
  • WSS API를 사용한 대칭 키 포함 자체 발행 SAML HoK(holder-of-key) 토큰 전파에 대해 읽어 보십시오.
  • WSS API를 사용한 메시지 보호를 위해 SAML 토큰의 임베디드 키 자료를 사용하는 것을 익히십시오. 사용 시나리오에서는 자체 발행 SAML 토큰을 사용하는 대신 외부 STS에서 SAML 토큰을 요청해야 합니다.
  • 메시지 레벨 보호와 함께 WSS API를 사용하여 외부 STS에서 전파할 SAML 전송자 인증 토큰 요청에 대해 읽어 보십시오.
  • 전송 레벨 보호와 함께 WSS API를 사용하여 외부 STS에서 전파할 SAML 전송자 인증 토큰 요청에 대해 읽어 보십시오.
  • 전송 레벨 보호와 함께 WSS API를 사용하여 외부 STS에서 전파할 SAML 전달자 토큰 요청에 대해 읽어 보십시오.
  • WSS API를 사용하여 외부 STS에 액세스하는 것을 익히십시오.

이 태스크 정보

이 태스크는 WSS API를 사용하여 외부 STS로부터 HoK(holder-of-key) 주제 확인 메소드와 대상 서비스에 대해 암호화되는 임베디드 대칭 키를 포함하는 SAML 토큰을 요청하기 위한 코드 예를 보여줍니다. 이 태스크는 대칭 키를 포함하는 SAML HoK(holder-of-key) 토큰을 요청하기 위해 외부 STS에 WS-Trust 요청 메시지를 전송하는 것에 초점을 맞춥니다.

프로시저

  1. HoK(holder-of-key) 주제 확인 메소드를 포함하는 SAML 보안 토큰을 요청할 STS를 지정하십시오. 예를 들면, 다음과 같습니다.
    com.ibm.websphere.wssecurity.wssapi.WSSFactory factory =
        com.ibm.websphere.wssecurity.wssapi.WSSFactory.getInstance();
    WSSGenerationContext gencont1 = factory.newWSSGenerationContext();
    WSSConsumingContext concont1 = factory.newWSSConsumingContext();
    HashMap<Object, Object> cbackMap1 = new HashMap<Object, Object>();
    cbackMap1.put(SamlConstants.STS_ADDRESS, "https://www.example.com/sts");  //STS URL
    cbackMap1.put(SamlConstants.SAML_APPLIES_TO, "http://myhost:9080/myService");  //Target Service
    cbackMap1.put(IssuedTokenConfigConstants.TRUST_CLIENT_SOAP_VERSION, "1.1");
    cbackMap1.put(IssuedTokenConfigConstants.TRUST_CLIENT_WSTRUST_NAMESPACE,
                      "http://docs.oasis-open.org/ws-sx/ws-trust/200512"); 
    cbackMap1.put(IssuedTokenConfigConstants.TRUST_CLIENT_COLLECTION_REQUEST,
                  "true");   //RST or RSTC
    cbackMap1.put(SamlConstants.TOKEN_TYPE, 
                  "http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0");
    cbackMap1.put(SamlConstants.CONFIRMATION_METHOD, "holder-of-key");

    STS에서 HoK(holder-of-key) SAML 보안 토큰을 요청하려면 신뢰 요청의 KeyType 요소를 통해 대칭 키 또는 공개 키를 임베드할지 여부를 지정해야 합니다. 이 예에서는 다음 단계에 표시된 대로 대칭 키 유형을 필요로 합니다.

  2. SAML 보안 토큰에 임베드할 대칭 키를 지정하십시오. 예를 들면, 다음과 같습니다.
    cbackMap1.put(SamlConstants.KEY_TYPE,
                 "http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey");
    
    SAMLGenerateCallbackHandler cbHandler1 = new SAMLGenerateCallbackHandler(cbackMap1);
    cbHandler1.setWSSConsumingContextForTrustClient(concont1);
    cbHandler1.setWSSGenerationContextForTrustClient(gencont1);
    
    SecurityToken samlToken = factory.newSecurityToken(SAMLToken.class, 
                                                       cbHandler1, "system.wss.generate.saml");
    요청된 SAML 토큰은 대상 서비스에 대해 암호화되는 대칭 키를 포함합니다. STS는 WS-Trust RequestedProofToken 요소를 통해 암호화되지 않은 대칭 키도 리턴합니다. 다음 예를 참조하십시오.
    <wst:RequestedProofToken>
        <wst:BinarySecret
          xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
          wsu:Id="_27325D34CE4BCC83141288966548620">n68rFQba+XTZLNBfEc4prg==</wst:BinarySecret>
    </wst:RequestedProofToken>

    RequestedProofToken 요소가 정보용으로 여기에 표시됩니다. 세부 처리는 WSS API 사용자에게 노출되지 않습니다. RequestedProofToken 요소 및 대칭 키는 웹 서비스 보안 런타임 환경에 의해 처리되거나 보다 정확하게는 system.wss.geenrate.saml JAAS 로그인 구성에서 지정되는 SAMLGenerateLoginModule에 의해 처리됩니다.

결과

WSS API를 사용하여 외부 STS로부터 HoK(holder-of-key) 주제 확인 메소드 및 대칭 키를 포함하는 SAML 토큰을 요청하기 위한 핵심 블록 빌드에 대해 학습했습니다. 요청 메시지에 서명하기 위해 SAML 토큰을 사용하려면 "WSS API를 사용하여 대칭 키를 포함하는 자체 발행 SAML HoK(holder-of-key) 토큰 전파" 주제의 코드 예를 검토하십시오.


주제 유형을 표시하는 아이콘 태스크 주제



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