WSS API를 사용하여 서명 정보 구성

클라이언트 측 요청 생성기(전송자) 바인딩에 대해 서명 정보를 구성할 수 있습니다. 서명 정보는 SOAP 본문, 시간소인 정보 및 사용자 이름 토큰을 포함한 메시지 파트에 서명하고 유효성을 검증하는 데 사용됩니다. 요청 서명을 위해 클라이언트를 구성하려면, 클라이언트를 구성할 때 어떤 메시지 파트를 디지털 서명할지를 지정하십시오.

시작하기 전에

WebSphere® Application Server는 XML 디지털 서명을 기존 알고리즘(예: RSA, HMAC, SHA1)과 같이 사용합니다. XML 서명은 키 정보를 설명하는 많은 메소드를 정의하고 새 메소드 정의를 사용합니다. 이러한 단계를 완료하기 전에 디지털 컨텐츠의 디지털 서명을 확인하고 서명하기 위한 XML 디지털 서명에 대해 익히십시오.

이 태스크 정보

XML 서명을 SOAP 메시지에 포함하여 다음 문제가 실현됩니다. 메시지 무결성 및 인증. 기밀성이 암호화를 나타내는 반면 무결성은 디지털 서명을 나타냅니다. 무결성은 인터넷에서 데이터를 전송하는 중 데이터 수정 위험을 줄입니다. WebSphere Application Server는 기본 생성기에 대한 서명 정보를 사용하여 메시지의 파트(예: 본문, 시간소인 및 사용자 이름 토큰)에 서명합니다.

서명 정보의 경우 다음을 지정해야 합니다.
  • 서명할 메시지 파트
  • 서명 키에 대한 키 정보에서 참조되는 키 정보
  • 서명 알고리즘

WebSphere Application Server는 바인딩에 대해 기본값을 제공합니다. 그러나 관리자는 프로덕션 환경의 기본값을 수정해야 합니다.

WSSSignature API는 다음 파트를 서명 파트로 구성합니다.

표 1. 사전 구성된 서명 파트. 서명 정보를 사용하여 메시지의 파트를 유효성 검증합니다.
파트 설명
보안 토큰 오브젝트 이 오브젝트는 클라이언트를 인증합니다. 이 옵션을 지정하면 메시지가 서명됩니다. 로그인 구성 인증 메소드가 선택된 경우 보안 토큰을 사용하여 메시지를 디지털 서명할 수 있습니다.
WSSTimestamp 오브젝트 이 오브젝트는 시간소인을 메시지에 추가합니다. 메시지를 전송하고 수신한 시간에 기반하여 시간소인은 메시지의 유효성을 판별합니다.
WSSSignature 파트 오브젝트 이 오브젝트는 서명 파트를 메시지에 추가합니다.
대상으로서의 SOAP 헤더 및 QName 이 서명 파트는 QName이 지정한 헤더를 검증 파트로 추가합니다.

WSS API를 사용하면 키워드 또는 XPath 표현식을 사용하여 서명할 메시지 파트를 지정할 수 있습니다. WebSphere Application Server는 다음 키워드의 사용을 지원합니다.

표 2. 지원되는 서명 키워드. 서명되는 메시지 파트를 지정하기 위해 키 정보가 사용됩니다.
키워드 참조
ADDRESSING_HEADERS 웹 서비스 주소 지정(WS-Addressing) 헤더입니다.
BODY SOAP 메시지 본문입니다. 본문은 메시지의 사용자 데이터 부분입니다.
TIMESTAMP 작성 및 만기 시간소인 정보입니다.

WSS API(Web Services Security API)는 바인딩 파일의 요청 생성기(클라이언트 측) 섹션에 대한 서명 정보를 구성하는 데 사용됩니다. 클라이언트 측에서 서명 정보를 구성하려면 WSS API를 사용하거나 관리 콘솔을 사용하여 서명에 대한 정책 세트를 구성하십시오.

WSS API를 사용하여 구성하는 경우, WSSSignature 및 WSSSignPart API는 다음 단계를 완료하여 요청 생성기 서명을 위해 클라이언트를 구성할 때 디지털로 서명할 메시지 파트를 지정합니다.

프로시저

  1. WSSSignature API는 디지털로 서명하기 위해 SOAP 메시지의 필수 파트를 추가합니다. 키워드 또는 XPath 표현식을 사용하여 필수 암호화 파트를 지정할 수 있습니다.
  2. WSSSignature API는 서명 메소드 알고리즘을 설정합니다. 기본 서명 메소드는 RSA_SHA1입니다. WebSphere Application Server는 다음과 같이 미리 구성된 알고리즘을 지원합니다.

    WebSphere Application Server는 DSA-SHA1: http://www.w3.org/2000/09/xmldsig#dsa-sha1에 대해 다음 알고리즘을 지원하지 않습니다. BSP(Basic Security Profile)를 준수하게 하려는 경우 DSA-SHA1 알고리즘을 사용할 수 없습니다.

    서명에서 모든 ds:SignatureMethod/@Algorithm 요소는 대칭 키를 기반으로 하며 값이 RSA-SHA1 또는 HMAC-SHA1이어야 합니다.

    요청 생성기 구성에 대해 지정되는 알고리즘은 요청 이용자 구성에 대해 지정되는 알고리즘과 일치해야 합니다.

  3. WSSSignature API는 정규화 메소드를 설정합니다. 기본 서명 메소드는 EXC_C14N입니다. WebSphere Application Server는 다음과 같이 미리 구성된 알고리즘을 지원합니다.
    • 독점 정규화 알고리즘의 URI, EXC_C14N: http://www.w3.org/2001/10/xml-exc-c14n#.
    • 포함 정규화 알고리즘 C14N의 URI: http://www.w3.org/2001/10/xml-c14n#.

    생성기에 대해 지정한 정형화 알고리즘은 이용자의 알고리즘과 일치해야 합니다.

  4. WSSSignature API는 보안 토큰을 추가합니다. 이 API는 서명에 사용할 보안 토큰에 대해 다음과 같은 정보를 추가합니다.
    • 보안 토큰의 클래스
    • 콜백 핸들러
    • JAAS 로그인 구성의 이름
  5. WSSSignature API는 보안 토큰 유형 및 토큰 참조 유형을 설정합니다. WebSphere Application Server는 사전 구성된 토큰 참조를 지원합니다.
    • SecurityToken.REF_STR

      보안 토큰 참조를 토큰 참조 유형으로 표시합니다.

    • SecurityToken.REF_KEYID

      키 ID 참조를 토큰 참조 유형으로 표시합니다.

    • SecurityToken.REF_EMBEDDED

      임베디드 참조를 토큰 참조 유형으로 표시합니다.

    • SecurityToken.REF_THUMBPRINT

      thumbprint 참조를 토큰 참조 유형으로 표시합니다.

  6. SecurityToken.REF_KEYID가 토큰 참조 유형으로 설정되는 경우, WSSSignature API는 키 정보 서명 유형을 설정하고 키 정보 참조가 참조하는 키 정보를 구성합니다. WebSphere Application Server가 다음을 지원합니다.
    • KeyInfo 요소가 서명되지 않도록 지정
    • 전체 <KeyInfo> 요소가 서명되도록 지정
    • <KeyInfo> 요소의 하위 요소 <Keyinfochildelements>가 서명되도록 지정

    위의 서명 유형 중 하나를 지정하지 않으면 WebSphere Application Server가 기본적으로 전체 <KeyInfo> 요소가 서명되도록 지정합니다.

    Keyinfo 또는 Keyinfochildelements를 선택하고 후속 단계에서 변환 알고리즘으로 http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform을 선택한 경우 WebSphere Application Server는 참조된 토큰도 서명합니다.

    생성기의 키 정보 서명 유형은 이용자의 서명 유형과 일치해야 합니다.

  7. WSSSignature API는 서명 확인 요구 여부를 지정합니다. OASIS WS-Security(Web Services Security) 버전 1.1 스펙은 서명 확인의 사용을 정의합니다. WS-Security 버전 1.0을 사용하고 있는 경우 이 기능을 사용할 수 없습니다.

    서명 확인 값은 수신되는 메시지가 리턴된 후에 서명 확인을 유효성 검증하는 데 사용하기 위해 저장됩니다. 이 메소드는 응답 메시지가 서명 확인을 SOAP 메시지에 첨부할 것으로 예상되는 경우에 호출됩니다.

  8. WSSSignPart API는 파트 참조를 지정합니다. 파트 참조는 디지털 서명할 메시지 파트를 지정합니다.

    파트 참조는 디지털 서명된 메시지 파트를 참조합니다. 파트 속성은 <PartReference> 요소가 서명에 지정된 경우 <Integrity> 요소 이름을 참조합니다. <SigningInfo> 요소에 여러 <PartReference> 요소를 지정할 수 있습니다. 서명 검증에 대해 <PartReference> 요소가 지정된 경우 이 요소에는 <DigestTransform> 및 <Transform>과 같은 2개의 하위 요소가 있습니다.

  9. WSSSignPart API는 요약 메소드 알고리즘을 지정합니다. <DigestMethod> 요소에서 지정되는 요약 메소드 알고리즘은 <SigningInfo> 요소에서 사용됩니다.
    WebSphere Application Server는 다음 사전 구성된 요약 알고리즘을 지원합니다.
    • http://www.w3.org/2000/09/xmldsig#sha1
    • http://www.w3.org/2001/04/xmlenc#sha256
    • http://www.w3.org/2001/04/xmlenc#sha512
  10. WSSSignPart API는 변환 알고리즘을 지정합니다. 변환 알고리즘은 <Transform> 요소에서 지정되는 알고리즘으로, 서명의 변환 알고리즘을 지정합니다. WebSphere Application Server는 다음 사전 구성된 변환 알고리즘을 지원합니다.
    • http://www.w3.org/2001/10/xml-exc-c14n#
    • http://www.w3.org/TR/1999/REC-xpath-19991116

      BSP(Basic Security Profile)를 준수하도록 하려면 이 변환 알고리즘을 사용하지 마십시오. 대신 http://www.w3.org/2002/06/xmldsig-filter2를 사용하여 규제 준수를 확인하십시오.

    • http://www.w3.org/2002/06/xmldsig-filter2
    • http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
    • http://www.w3.org/2002/07/decrypt#XML
    • http://www.w3.org/2000/09/xmldsig#enveloped-signature
    생성기에 대해 선택한 변환 알고리즘은 이용자에 대해 선택한 변환 알고리즘과 일치해야 합니다.
    중요사항: 다음 조건이 모두 참인 경우 WebSphere Application Server는 참조된 토큰에 서명합니다.
    • 이미 Keyinfo 또는 Keyinfochildelements 옵션을 선택했습니다.
    • 변환 알고리즘으로 http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform을 선택합니다.
  11. 클라이언트 및 서버 서명 정보를 올바르게 구성했지만 클라이언트를 실행할 때 Soap body not signed 오류를 수신하면 액터를 구성해야 합니다. 관리 콘솔을 사용하여 서버에서 웹 서비스에 대해 동일한 액터 문자열을 구성하기 위한 정책 세트를 구성하십시오. 그러면 요청이 처리되고 다시 응답을 전송합니다.

    클라이언트 및 서버 모두의 액터 정보는 정확히 동일한 문자열을 참조해야 합니다. 클라이언트 및 서버의 액터 필드가 일치하면 다운스트림으로 전달되는 대신, 요청 또는 응답이 적절히 작동합니다. 다른 웹 서비스에 대해 게이트웨이 역할을 하는 웹 서비스가 있을 경우 액터가 다를 수 있습니다. 그러나 다른 모든 경우에 액터 정보가 클라이언트와 서버에서 일치하는지 확인하십시오. 웹 서비스가 게이트웨이의 역할을 수행하고 게이트웨이를 통해 전달되는 요청으로 동일한 액터가 구성되지 않은 경우 웹 서비스는 클라이언트의 메시지를 처리하지 않습니다. 대신, 이 웹 서비스는 요청을 다운스트림으로 전송합니다. 올바른 액터 문자열을 포함하는 다운스트림 프로세스는 요청을 처리합니다. 응답에서도 동일한 상황이 나타납니다. 그러므로 적합한 클라이언트와 서버 액터 필드가 동기화되었는지 확인하는 것이 중요합니다.

결과

WSSSignature 및 WSSSignPart API가 이러한 단계를 완료하면 바인딩 파일의 생성기 섹션에 대해 서명 정보가 구성됩니다.

다음 예제는 서명을 구성하고 콜백 핸들러를 생성하며 X.509 토큰 유형을 보안 토큰으로 지정하는 WSS API 샘플 코드를 보여줍니다.

WSSFactory factory = WSSFactory.getInstance();
// Instantiate a generation context
WSSGenerationContext gencont = factory.newWSSGenerationContext();

// Generate the callback handler and specify the X.509 token
   X509GenerateCallbackHandler callbackhandler = generateCallbackHandler();
   SecurityToken token = factory.newSecurityToken(X509Token.class, 
                                                  callbackHandler);

// Set the signature information
WSSSignature sig = factory.newWSSSignature(token);
// Add the header using QName
   sig.addSignHeader(new QName("http://www.w3.org/2005/08/addressing", "To"));
   sig.addSignHeader(new QName("http://www.w3.org/2005/08/addressing", "MessageID"));
   sig.addSignHeader(new QName("http://www.w3.org/2005/08/addressing", "Action"));
// Apply the signature
   gencont.add(sig); 

// Secure the message 
gencont.process(msgctx);

다음에 수행할 작업

다음 검증 태스크를 완료하여 클라이언트 측 요청 이용자(수신자) 바인딩에 대한 유사한 서명 정보를 구성해야 합니다.
  • 서명 확인
  • 서명 알고리즘 메소드를 선택합니다.
  • 필요에 따라 서명된 파트를 변경하거나 추가합니다.

서명 검증이 이미 구성되어 있는 경우 암호화 및 복호화 정보를 구성하거나 이용자 및 생성기 토큰을 구성하십시오.


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



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