키워드를 사용하여 생성기 보안 제한조건에서 메시지 요소 서명

이 태스크 정보

요청 생성기 또는 응답 생성기에 적용할 생성기 보안 제한조건을 구성하는 경우 디지털로 서명할 메시지 파트를 지정하려면 다음 단계를 완료하십시오. 요청 생성기가 클라이언트에 적합하게 구성되고 응답 생성기가 서버에 적합하게 구성됩니다. 다음 단계 중 2단계에서 클라이언트 측 확장기능을 구성하거나 3단계에서 서버 측 확장기능을 구성해야 합니다.

프로시저

  1. 창 > 퍼스펙티브 열기 > J2EE를 클릭하십시오.
  2. 옵션: 프로젝트 탐색기 창을 사용하여 클라이언트 측 확장기능을 찾으십시오. 클라이언트 배치 디스크립터 창이 표시됩니다. 이 웹 서비스에는 구성해야 하는 확장기능이 포함되어 있습니다.
    1. 웹 서비스 > 클라이언트 섹션을 펼친 후 웹 서비스의 이름을 두 번 클릭하십시오.
    2. WS 확장기능 탭을 클릭하고 요청 생성기 구성 절을 펼치십시오.
  3. 옵션: 프로젝트 탐색기 창을 사용하여 서버 측 확장기능을 찾으십시오. 웹 서비스 편집기 창이 표시됩니다. 이 웹 서비스에는 구성해야 하는 확장기능이 포함되어 있습니다.
    1. 웹 서비스 > 서비스 섹션을 펼친 후 웹 서비스의 이름을 두 번 클릭하십시오.
    2. 확장기능 탭을 클릭하고 응답 생성기 서비스 구성 세부사항 절을 펼치십시오.
  4. 무결성 절을 펼치십시오. 기밀성이 암호화를 참조하는 반면 무결성은 디지털 서명을 참조합니다. 무결성은 네트워크에서 데이터를 전송할 때 데이터가 수정될 위험성을 감소시킵니다. SOAP(Simple Object Access Protocol) 메시지의 디지털 서명에 대한 자세한 정보는 XML 디지털 서명을 참조하십시오.
  5. 추가를 클릭하여 서명할 메시지 파트를 표시하십시오. 무결성 대화 상자 창이 표시됩니다.
    1. 무결성 이름 필드에 무결성 요소의 이름을 지정하십시오. 예를 들어, int_webskey를 지정할 수 있습니다.
    2. 순서 필드에 순서를 지정하십시오. 값(양의 정수여야 함)은 디지털 서명이 처리되는 순서를 지정합니다. 순서 값 1은 서명이 첫 번째로 완료되도록 지정합니다.
  6. 메시지 파트 절에서 추가를 클릭하고 메시지 파트 통용어를 선택하십시오. http://www.ibm.com/websphere/webservices/wssecurity/dialect-was 통용어는 키워드를 사용하여 서명되는 메시지 파트를 지정합니다. 이 통용어를 선택하면 메시지 파트 키워드 표제에서 다음 키워드 중 하나를 선택할 수 있습니다.
    body
    메시지의 사용자 데이터 부분을 지정합니다. 이 키워드를 선택하면 본문이 서명됩니다.
    timestamp
    메시지 내의 독립형 시간소인 요소가 서명되도록 지정합니다. 시간소인 요소는 메시지를 전송하고 수신한 시간에 따라 메시지가 유효한지 여부를 판별합니다. 시간소인 옵션을 선택하는 경우 메시지에 독립형 시간소인 요소가 있는지 확인하십시오. 해당 요소가 없는 경우에는 생성기 보안 제한조건에 독립형 시간소인 추가를 참조하십시오.
    securitytoken
    SOAP 메시지의 UsernameToken이 서명되도록 지정합니다.
    dsigkey
    디지털 서명에 사용되는 키 정보 요소가 서명되도록 지정합니다.
    enckey
    암호화에 사용되는 키 정보 요소가 서명되도록 지정합니다.
    messageid
    메시지 내의 <wsa:MessageID> 요소가 서명되도록 지정합니다.
    to
    메시지 내의 <wsa:To> 요소가 서명되도록 지정합니다.
    action
    <wsa:Action> 요소가 서명되도록 지정합니다.
    relatesto
    메시지 내의 <wsa:RelatesTo> 요소가 서명되도록 지정합니다.
  7. 확인을 클릭하여 구성 변경사항을 저장하십시오.
    참고: 생성기와 이용자의 이 구성이 일치해야 합니다.

다음 예제는 본문 키워드 및 http://www.ibm.com/websphere/webservices/wssecurity/dialect-was 통용어를 사용하여 본문이 서명되는 SOAP 메시지입니다.

<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Header soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/
       2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
         <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/
          oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType=
          "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" 
          wsu:Id="x509bst_956396521418196" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/
          oasis-200401-wss-wssecurity-utility-1.0.xsd"> MA0GCSqGSIb3DQEBBQUAA4GBAHkthdGDgCvdIL9/
          vXUo74xpfOQd/rr1owBmMdb1TWdOyzwbOHC7lkUlnKrkI7SofwSLSDUP571iiMXUx3tRdmAVCoDMMFuDXh9V7212lu
          Xccx0s1S5KN0D3xW97LLNegQC0/b+aFD8XKw2U5ZtwbnFTRgs097dmz09RosDKkLlM
         </wsse:BinarySecurityToken>
         <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <ds:SignedInfo>
               <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                  <ec:InclusiveNamespaces PrefixList="wsse ds xsi soapenc xsd soapenv " 
                   xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
               </ds:CanonicalizationMethod>
               <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
               <ds:Reference URI="#wssecurity_signature_id_5945817517184298591">
                  <ds:Transforms>
                     <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                        <ec:InclusiveNamespaces PrefixList="p896 xsi soapenc xsd wsu soapenv " 
                         xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                     </ds:Transform>
                  </ds:Transforms>
                  <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                  <ds:DigestValue>vyu0JwXXSAvRCUCi6TPkeH8yUTU=</ds:DigestValue>
               </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue>dtbYA609wwAUAA8BmDmJlVHrWShy6OLJB3n4A6ToU0lI9tJrNhBksGqks17cykf+uHTJ
             cgOY18XrRDN4wHTW4zm/tmD5WqQd8K1WpYaGpbwlFoiwKVFNyfQn2K/WbZ2JccmZvJGFaOtqStg6TqSUGLQSA5
             MCSpZUhck545IY2F4=
            </ds:SignatureValue>
            <ds:KeyInfo>
               <wsse:SecurityTokenReference>
                  <wsse:Reference URI="#x509bst_956396521418196" ValueType="http://docs.oasis-open.org/
                   wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
               </wsse:SecurityTokenReference>
            </ds:KeyInfo>
         </ds:Signature>
      </wsse:Security>
   </soapenv:Header>
   <soapenv:Body soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
    wsu:Id="wssecurity_signature_id_5945817517184298591" xmlns:wsu="http://docs.oasis-open.org/
    wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
      <p896:getVersion xmlns:p896="http://msgsec.wssecfvt.ws.ibm.com"/>
   </soapenv:Body>
</soapenv:Envelope>

다음에 수행할 작업

디지털로 서명할 메시지 파트를 지정한 후 메시지에 디지털로 서명하는 데 사용되는 메소드를 지정해야 합니다. 자세한 정보는 어셈블리 도구를 사용하여 생성기 바인딩에 필요한 서명 정보 구성을 참조하십시오.

피드백