클라이언트에 대한 요청 서명 메소드 구성
WSSSignature 및 WSSSignPart API를 사용하여 서명 메소드를 선택할 수 있습니다. 요청 서명 메소드에는 서명, 정규화, 요약 및 변환 메소드가 있습니다.
시작하기 전에
먼저 클라이언트가 전송하는 메시지 중 WSS API를 사용하거나 관리 콘솔을 통해 정책 세트를 구성하여 디지털 서명해야 하는 파트를 지정해야 합니다.
이 태스크 정보
다음 테이블에서는 이 정보의 목적에 대해 설명합니다. 이러한 정의 중 일부는 XML-Signature 명세를 기반으로 하며, 다음 웹 주소에 위치합니다.http://www.w3.org/TR/xmldsig-core
메소드 이름 | 설명 |
---|---|
정형화 알고리즘 | 정보가 서명 오퍼레이션의 일부로서 다이제스트되기 전에 <SignedInfo> 요소를 정규화하십시오. |
서명 알고리즘 | 정규화된 <SignedInfo> 요소의 서명 값을 계산합니다. 클라이언트 요청 수신인 구성에서 선택된 알고리즘은 클라이언트 요청 발신인 구성에서 선택된 알고리즘과 일치해야 합니다. |
변환 메소드 | 서명 조작의 일부로 정보가 요약되기 전에 서명할 파트를 변환합니다. |
다이제스트 메소드 | 변환된 파트의 요약 값을 계산합니다. 클라이언트 요청 전송자 구성에 대해 선택한 알고리즘이 서버 요청 수신자 구성에서 선택한 알고리즘과 일치해야 합니다. |
WSS API를 사용하거나 관리 콘솔을 통해 정책 세트를 구성하여 서명 알고리즘 메소드를 구성할 수 있습니다. WSS API를 사용하는 경우 WSSSignature 및 WSSSignPart API를 사용하여 요청 서명에 대해 클라이언트를 구성할 때 디지털 서명할 메시지 파트를 지정하십시오.
WSSSignature 및 WSSSignPart API는 서명 및 서명된 파트 알고리즘 메소드를 구성하기 위해 다음 단계를 완료합니다.
프로시저
결과
예
다음 예는 HMAC_SHA1을 서명 메소드로, C14N을 정규화 메소드로, SHA256을 요약 메소드로, EXC_C14N 및 TRANSFORM_STRT10을 변환 메소드로 서명 정보를 지정하기 위한 샘플 코드입니다.
//get the message context
Object msgcontext = getMessageContext();
//generate WSSFactory instance
WSSFactory factory = WSSFactory.getInstance();
//generate WSSGenerationContext instance
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
SecurityToken token = factory.newSecurityToken(X509Token.class, callbackHandler);
//generate WSSSignature instance
WSSSignature sig = factory.newWSSSignature(token);
//set the canonicalization method
// DEFAULT: WSSSignature.EXC_C14N
sig.setCanonicalizationMethod(WSSSignature.C14N);
//set the signature method
// DEFAULT: WSSSignature.RSA_SHA1
sig.setSignatureMethod(WSSSignature.HMAC_SHA1);
//set the part specified by WSSSignPart
WSSSignPart sigPart = factory.newWSSSignPart();
//set the digest method
// DEFAULT: WSSSignPart.SHA1
sigPart.setDigestMethod(WSSSignPart.SHA256);
//add the transform method
// DEFAULT: WSSSignPart.TRANSFORM_EXC_C14N
sigPart.addTransformMethod(WSSSignPart.TRANSFORM_EXC_C14N);
sigPart.addTransformMethod(WSSSignPart.TRANSFORM_STRT10);
// add the WSSSignPart to the WSSSignature
sig.addSignPart(sigPart);
//add the WSSSignature to the WSSGenerationContext
gencont.add(sig);
//generate the WS-Security header
gencont.process(msgcontext);
다음에 수행할 작업
클라이언트가 메시지에 디지털 서명하고 알고리즘 메소드를 선택하도록 구성한 후에는 요청 서명의 디지털 서명을 검증하고 알고리즘 메소드를 선택하도록 서버를 구성해야 합니다.
서버에서 서명 검증 정보 및 메소드를 구성하려면 관리 콘솔을 사용하여 정책 세트를 구성하십시오.