WSSSignPart API를 사용하여 서명 파트 추가

구성의 정책 세트를 사용하지 않고도 WSS API(Web Services Security API)를 사용하여 SOAP 메시지를 보안 설정할 수 있습니다. 요청 생성기(클라이언트 측) 바인딩에 대해 서명할 파트를 구성하려면 WSSSignPart API를 사용하여 메시지의 무결성을 보호하고 요약 및 변환 알고리즘 메소드를 구성하십시오. WSSSignPart API는 com.ibm.websphere.wssecurity.wssapi.signature 패키지의 파트입니다.

시작하기 전에

WSS API를 사용하거나 관리 콘솔을 통해 정책 세트를 구성하여 서명 정보를 구성할 수 있습니다. 서명 정보를 사용하여 SOAP 메시지를 보안 설정하려면 다음 태스크 중 하나를 완료해야 합니다.

  • 서명 정보를 구성합니다.
  • 필요에 따라 서명 파트를 구성합니다.

이 태스크 정보

WebSphere® Application Server는 기본 생성기의 서명 정보를 사용하여 메시지의 파트에 서명하고 기존 알고리즘(예: SHA1 또는 TRANSFORM_EXC_C14N)이 있는 XML 디지털 서명을 사용합니다.

서명 정보는 생성된 메시지에 적용되는 무결성 제한조건을 지정합니다. 서명 파트는 메시지의 무결성을 보호하기 위해 사용됩니다. 메시지 무결성 보호를 위해 추가할 서명 파트를 지정할 수 있습니다.

다음 테이블은 디지털 서명 보안 제한조건(무결성)이 정의되는 경우의 필수 서명 파트를 표시합니다.

표 1. 서명 파트 정보. 서명 파트를 사용하여 메시지를 보안 설정하십시오.
서명 파트 설명
키워드 키워드를 사용하여 서명 파트를 추가합니다. WebSphere Application Server는 서명 파트에 대해 다음 키워드를 지원합니다.
  • BODY
  • ADDRESSING_HEADERS
  • TIMESTAMP
WS-Addressing 헤더는 암호화되지 않지만 서명할 수 있습니다.
xpath XPath 표현식을 사용하여 필수 서명 파트를 추가합니다.
header QName이 지정한 헤더를 서명 파트로 추가합니다.
timestamp WSSTimestamp 오브젝트를 서명 파트로 추가합니다. 지정된 경우 시간소인 정보는 메시지가 생성되는 시간과 만료되는 시간도 지정합니다.

생성기 측의 요청에 대한 메시지 보호에서 여러 메시지 파트를 지정할 수 있습니다. WSSSignPart를 사용하면 변환 알고리즘 추가, 요약 메소드 설정, 오브젝트를 대상으로 설정, 요소 및 SOAP 본문, WS-Addressing 헤더 및 시간소인 정보와 같은 서명 파트 여부 지정이 가능합니다.

서명 정보의 경우 특정 기본 동작이 발생합니다. WSSSignPart API를 사용하는 가장 간단한 방법은 기본 동작을 사용하는 것입니다(예제 코드 참조). 서명 파트 기본 동작에는 다음과 같은 동작이 있습니다.

표 2. 서명 파트의 기본 동작. 기본적으로 여러 서명 파트 특성이 구성됩니다.
서명 결정 기본 동작
서명할 SOAP 메시지 파트

WebSphere Application Server는 서명하고 메시지 보호에 사용할 다음 SOAP 메시지 파트를 지원합니다.

  • WSSSignature.BODY
  • WSSSignature.ADDRESSING_HEADERS
  • WSSSignature.TIMESTAMP
사용할 요약 파트

요약 알고리즘 메소드를 설정합니다. <DigestMethod> 요소 내에 지정되는 요약 메소드 알고리즘은 <SigningInfo> 요소에서 사용됩니다.

WebSphere Application Server는 다음 사전 구성된 요약 메소드를 지원합니다.
  • WSSSignPart.SHA1(기본값): http://www.w3.org/2000/09/xmldsig#sha1
  • WSSSignPart.SHA256: http://www.w3.org/2001/04/xmlenc#sha256
  • WSSSignPart.SHA512: http://www.w3.org/2001/04/xmlenc#sha512
사용할 변환 알고리즘 변환 메소드를 추가합니다. 변환 알고리즘은 <Transform> 요소 내에서 지정되고 서명에 대한 변환 알고리즘을 지정합니다.

WebSphere Application Server는 다음 사전 구성된 변환 알고리즘을 지원합니다.

  • WSSSignPart.TRANSFORM_EXC_C14N(기본값): http://www.w3.org/2001/10/xml-exc-c14n#
  • WSSSignPart.TRANSFORM_XPATH2_FILTER: http://www.w3.org/2002/06/xmldsig-filter2

    BSP(Basic Security Profile)를 준수하도록 하려면 이 변환 메소드를 사용하십시오.

  • WSSSignPart.TRANSFORM_STRT10: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
  • WSSSignPart.TRANSFORM_ENVELOPED_SIGNATURE: http://www.w3.org/2000/09/xmldsig#enveloped-signature

프로시저

  1. WSS API(WSSSignPart)를 사용하여 웹 서비스 보안을 사용으로 설정하려면 먼저 애플리케이션 서버가 설치되어 있는지 확인하십시오.
  2. WSSSignPart API를 사용하여 메시지 파트에 서명하고 SOAP 메시지에 알고리즘을 지정하십시오. 서명 파트에 대한 WSS API 프로세스는 다음과 같은 프로세스 단계를 따릅니다.
    1. WSSFactory.getInstance()를 사용하여 WSS API 구현 인스턴스를 가져옵니다.
    2. WSSFactory 인스턴스로부터 WSSGenerationContext 인스턴스를 작성합니다.
    3. WSSFactory에서 SecurityToken을 작성하여 서명을 위한 키를 구성합니다.
    4. SecurityToken을 사용하여 WSSFactory 인스턴스로부터 WSSSignature를 작성합니다.
    5. WSSFactory 인스턴스에서 WSSSignPart를 작성합니다.
    6. 기본값이 적당하지 않은 경우에는 서명할 파트 및 g단계 또는 h단계에서 지정된 요약 메소드 또는 변환 메소드를 설정합니다.
    7. 기본값이 적당하지 않은 경우에는 요약 메소드를 설정합니다.
    8. 기본값이 적당하지 않은 경우에는 변환 메소드를 설정합니다.
    9. WSSSignPart를 WSSSignature에 추가합니다. WSSSignPart가 WSSSignature로 설정된 후에는 WSSSignature에 지정되는 서명할 기본 파트는 무시됩니다.
    10. WSSSignature를 WSSGenerationContext에 추가합니다.
    11. SOAPMessageContext와 함께 WSSGenerationContext.process()를 호출합니다.

결과

바인딩 파일의 생성기 섹션에서 서명 파트를 구성하기 위한 단계를 완료했습니다. 오류 조건이 있는 경우 WSSException이 제공됩니다. 성공할 경우 WSSGenerationContext.process()가 호출되고 SOAP 메시지에 웹 서비스 보안이 적용됩니다.

다음 예제는 WSSSignPart API에서 정의되는 모든 메소드를 사용하는 샘플 코드를 제공합니다.

// Get the message context
   Object msgcontext = getMessageContext();

// Generate the WSSFactory instance  (step: a)
   WSSFactory factory = WSSFactory.getInstance();

// Generate WSSGenerationContext instance  (step: b)
   WSSGenerationContext gencont = factory.newWSSGenerationContext();
		
// Generate callback handler
   X509GenerateCallbackHandler callbackHandler = new 
      X509GenerateCallbackHandler
      "",
      "dsig-sender.ks",
      "jks", 
      "client".toCharArray(), 
      "soaprequester", 
      "client".toCharArray(), 
      "CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP", null);

// Generate the security token used to the signature  (step: c)
   SecurityToken token = factory.newSecurityToken(X509Token.class, callbackHandler);

// Generate WSSSignature instance (step: d)
   WSSSignature sig = factory.newWSSSignature(token);

// Set the part specified by WSSSignPart  (step: e)
   WSSSignPart sigPart = factory.newWSSSignPart();

// Set the part specified by WSSSignPart  (step: f)
   sigPart.setSignPart(WSSSignature.BODY);

// Set the digest method specified by WSSSignPart  (step: g)
   sigPart.setDigestMethod(WSSSignPart.SHA256);

// Set the transform method specified by WSSSignPart  (step: h)
   sigPart.setTransformMethod(WSSSignPart.TRANSFORM_STRT10);

// Add the part specified by WSSSignPart  (step: i)
   sig.addSignPart(sigPart);

// Add the WSSSignature to the WSSGenerationContext  (step: j)
   gencont.add(sig);
		
// Generate the WS-Security header  (step: k)
gencont.process(msgcontext);
참고: 개인 키가 서명에 사용되므로 X509GenerationCallbackHandler에는 키 비밀번호가 필요합니다.

다음에 수행할 작업

WSSVerifyPart API를 사용하거나 관리 콘솔을 통해 정책 세트를 구성하여 이용자 측에서 서명 파트를 검증하십시오.


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



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