정책 첨부를 통해 웹 서비스 정책 정의

Liberty에서 사용자는 정책 첨부 또는 웹 서비스 애플리케이션의 WSDL(Web Services Description Language) 파일 내에서 웹 서비스 정책(WS-Policy)을 정의할 수 있습니다.

이 태스크 정보

WSDL 파일이 애플리케이션에 패키징되지 않았을 때는 정책 첨부를 사용하여 웹 서비스 애플리케이션에 대한 WS-Policy를 구성할 수 있습니다. 일반적으로 정책 첨부 기능은 JAX-WS(Java API for XML Web Services) 2.2 기능이 사용 가능할 때 자동으로 사용자의 웹 서비스 애플리케이션에서 사용으로 설정됩니다. 애플리케이션의 WS-Policy 첨부 파일을 정의하기 위해서는 웹 서비스 클라이언트와 제공자 측면을 모두 구성하기만 하면 됩니다.

WS-Policy 지원은 애플리케이션 서버에서 다음 스펙을 구현한 것입니다.
  • WS-Policy는 웹 서비스가 XML을 사용하여 보안, 서비스 품질(QoS)에 대한 해당 정책을 알리고, 웹 서비스 고객이 자신의 정책 요구사항을 지정하도록 할 수 있는 스펙입니다. 자세한 정보는 웹 서비스 정책 1.5 - 프레임워크를 참조하십시오.
  • WS-Policy 첨부는 적용되는 주제로 웹 서비스 정책 프레임워크에 정의된 대로 정책을 연관시키기 위한 두 가지 일반적인 목적의 메커니즘을 정의합니다. 자세한 정보는 웹 서비스 정책 1.2 - 첨부를 참조하십시오.

프로시저

  1. policy-attachments-client.xml 파일 또는 policy-attachments-server.xml 파일을 작성하십시오.

    다음 예제는 policy-attachments-client.xml 파일 또는 policy-attachments-server.xml 파일에서 속성을 정의하는 방법을 보여줍니다.

    <attachments
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:wsp="http://www.w3.org/ns/ws-policy"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:sp13="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200802"
    xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
    <wsp:PolicyAttachment wsdlNamespace="http://tempuri.org/AreaService/">
    	<wsp:AppliesTo>
    	   <wsp:URI>http://tempuri.org/AreaService/#wsdl11.service(AreaService)</wsp:URI>
    	</wsp:AppliesTo>
    	<wsp:Policy wsu:Id="UsernameTokenwithPasswordHashoverSSL">
    	   <wsp:ExactlyOne>
    	       <wsp:All>
    		   <sp:SupportingTokens>
    			<wsp:Policy>
    		          <sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
    			      <wsp:Policy>
    				  <sp:WssUsernameToken10 />
    				  <sp:HashPassword />
    			      </wsp:Policy>			   </sp:UsernameToken>
    			</wsp:Policy>		   </sp:SupportingTokens>
    		</wsp:All>
    	   </wsp:ExactlyOne>
    	</wsp:Policy></wsp:PolicyAttachment>
    </attachments>
    정책을 바인딩하는 두 가지 방법이 있습니다.
    • 다음과 같이 엔드포인트 <wsa:EndpointReference>를 사용하여 웹 서비스 URL을 직접 정의하십시오.
      <wsp:AppliesTo>
         <wsa:EndpointReference>
             <wsa:Address>http://localhost:8091/wsatApp/HelloImplService</wsa:Address>
         </wsa:EndpointReference>
      </wsp:AppliesTo>
    • 다음과 같이 URI DomainExpression <wsp:URI>를 사용하여 정책을 바인드하십시오.
      <wsp:AppliesTo>
          <wsp:URI>http://server.test.ws.ibm.com/#wsdl11.service(HelloImplService)</wsp:URI>
      </wsp:AppliesTo>
        

      다음 표에는 정책 첨부 파일의 WSDL 요소 및 해당 ID 표현식이 표시됩니다.

      표 1. <wsp:URI> 표현식 목록
      WSDL 요소 ID 표현식(targetNamespace 생략)
      정의 wsdl11.definitions()
      메시지 wsdl11.message(message)
      메시지/파트 wsdl11.messagePart(message / part)
      portType wsdl11.portType(portType)
      portType/조작 wsdl11.portTypeOperation(portType/operation)
      portType/조작/입력 wsdl11.portTypeOperation.input(portType/operation)
      portType/조작/출력 wsdl11.portTypeOperation.output(portType/operation)
      portType/조작/결함 wsdl11.portTypeOperation.fault(portType/operation/fault)
      바인딩 wsdl11.binding(binding)
      바인딩/조작 wsdl11.bindingOperation(binding/operation)
      바인딩/조작/입력 wsdl11.bindingOperation.input(binding/operation)
      바인딩/조작/출력 wsdl11.bindingOperation.output(binding/operation)
      바인딩/조작/결함 wsdl11.bindingOperation.fault(binding/operation/fault)
      서비스 wsdl11.service(service)
      포트 wsdl11.port(service/port)
  2. policy-attachments-client.xml 파일 또는 policy-attachments-server.xml 파일을 애플리케이션의 WEB-INF 또는 META-INF 폴더에 두십시오.
    • 웹 서비스 클라이언트의 WS-Policy에 대해 policy-attachments-client.xml을 애플리케이션의 WEB-INF 또는 META-INF 폴더에 두십시오.
    • 웹 서비스 제공자의 WS-Policy에 대해 policy-attachments-server.xml을 애플리케이션의 WEB-INF 또는 META-INF 폴더에 두십시오.

결과

사용자의 애플리케이션에 WSDL 파일을 패키징하지 않고 정책 첨부를 통해 WS-Policy 정의를 완료합니다.

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

파일 이름: twlp_dep_policyattach.html