5장. WS-Policy Framework


초록

이 장에서는 WS-Policy 프레임워크의 기본 개념, 정책 제목 및 정책 어설션 정의, 정책 어설션을 결합하여 정책 표현식을 만드는 방법을 설명합니다.

5.1. WS-Policy 소개

5.1.1. 개요

WS-Policy 사양 은 웹 서비스 애플리케이션에서 런타임 시 연결 및 통신의 의미 체계를 수정하는 정책을 적용하기 위한 일반적인 프레임워크를 제공합니다. Apache CXF 보안은 WS-Policy 프레임워크를 사용하여 메시지 보호 및 인증 요구 사항을 구성합니다.

5.1.2. 정책 및 정책 참조

정책을 지정하는 가장 간단한 방법은 정책을 적용하려는 위치에 직접 포함하는 것입니다. 예를 들어 WSDL 계약의 특정 포트와 정책을 연결하려면 다음과 같이 지정할 수 있습니다.

<wsdl:definitions targetNamespace="http://tempuri.org/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" ... >
  ...
  <wsdl:service name="PingService10">
    <wsdl:port name="UserNameOverTransport_IPingService" binding="BindingName">
      <wsp:Policy> <!-- Policy expression comes here! --> </wsp:Policy>
      <soap:address location="SOAPAddress"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

정책을 지정하는 다른 방법은 정책을 적용하려는 시점에 정책 참조 요소 wsp:PolicyReference 를 삽입한 다음 XML 파일의 다른 시점에 정책 요소 wsp:Policy 를 삽입하는 것입니다. 예를 들어 정책 참조를 사용하여 정책을 특정 포트와 연결하려면 다음과 같은 구성을 사용할 수 있습니다.

<wsdl:definitions targetNamespace="http://tempuri.org/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" ... >
  ...
  <wsdl:service name="PingService10">
    <wsdl:port name="UserNameOverTransport_IPingService" binding="BindingName">
      <wsp:PolicyReference URI="#PolicyID"/>
      <soap:address location="SOAPAddress"/>
    </wsdl:port>
  </wsdl:service>
  ...
  <wsp:Policy wsu:Id="PolicyID">
    <!-- Policy expression comes here ... -->
  </wsp:Policy>
</wsdl:definitions>

정책 참조인 wsp:PolicyReference 가 ID, PolicyID 를 사용하여 참조된 정책을 찾습니다( URI 특성에 # 접두사 문자가 추가됨). 정책 자체인 wsp:Policy 는 속성 wsu:Id="PolicyID" 를 추가하여 식별해야 합니다.

5.1.3. 정책 주체

정책이 연결된 엔터티를 정책 주체 라고 합니다. 예를 들어 정책을 끝점과 연결할 수 있으며, 이 경우 끝점 은 정책 제목입니다. 지정된 정책 제목과 여러 정책을 연결할 수 있습니다. WS-Policy 프레임워크는 다음과 같은 종류의 정책 주체를 지원합니다.

5.1.4. 서비스 정책 제목

정책을 서비스와 연결하려면 < wsp:Policy > 요소 또는 < wsp:PolicyReference > 요소를 다음 WSDL 1.1 요소의 하위 요소로 삽입합니다.

  • WSDL:service-이 서비스에서 제공하는 모든 포트(endpoints)에 정책을 적용합니다.

5.1.5. 끝점 정책 제목

정책을 끝점과 연결하려면 < wsp:Policy > 요소 또는 < wsp:PolicyReference > 요소를 다음 WSDL 1.1 요소의 하위 요소로 삽입합니다.

  • WSDL:portType-이 포트 유형을 사용하는 모든 포트(endpoints)에 정책을 적용합니다.
  • WSDL:binding-이 바인딩을 사용하는 모든 포트에 정책을 적용합니다.
  • WSDL:port-이 끝점에만 정책을 적용합니다.

예를 들어 정책 참조를 사용하여 정책을 끝점 바인딩과 연결할 수 있습니다.

<wsdl:definitions targetNamespace="http://tempuri.org/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" ... >
  ...
  <wsdl:binding name="EndpointBinding" type="i0:IPingService">
    <wsp:PolicyReference URI="#PolicyID"/>
    ...
  </wsdl:binding>
  ...
  <wsp:Policy wsu:Id="PolicyID"> ... </wsp:Policy>
  ...
</wsdl:definitions>

5.1.6. 운영 정책 제목

정책을 작업과 연결하려면 < wsp:Policy > 요소 또는 < wsp:PolicyReference > 요소를 다음 WSDL 1.1 요소의 하위 요소로 삽입합니다.

  • wsdl:portType/wsdl:operation
  • wsdl:binding/wsdl:operation

예를 들어 정책 참조를 사용하여 다음과 같이 바인딩의 작업과 정책을 연결할 수 있습니다.

<wsdl:definitions targetNamespace="http://tempuri.org/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" ... >
  ...
  <wsdl:binding name="EndpointBinding" type="i0:IPingService">
    <wsdl:operation name="Ping">
      <wsp:PolicyReference URI="#PolicyID"/>
      <soap:operation soapAction="http://xmlsoap.org/Ping" style="document"/>
      <wsdl:input name="PingRequest"> ... </wsdl:input>
      <wsdl:output name="PingResponse"> ... </wsdl:output>
    </wsdl:operation>
    ...
  </wsdl:binding>
  ...
  <wsp:Policy wsu:Id="PolicyID"> ... </wsp:Policy>
  ...
</wsdl:definitions>

5.1.7. 메시지 정책 제목

정책을 메시지와 연결하려면 < wsp:Policy > 요소 또는 < wsp:PolicyReference > 요소를 다음 WSDL 1.1 요소의 하위 요소로 삽입합니다.

  • wsdl:message
  • wsdl:portType/wsdl:operation/wsdl:input
  • wsdl:portType/wsdl:operation/wsdl:output
  • wsdl:portType/wsdl:operation/wsdl:fault
  • wsdl:binding/wsdl:operation/wsdl:input
  • wsdl:binding/wsdl:operation/wsdl:output
  • wsdl:binding/wsdl:operation/wsdl:fault

예를 들어 정책 참조를 사용하여 다음과 같이 바인딩의 메시지와 정책을 연결할 수 있습니다.

<wsdl:definitions targetNamespace="http://tempuri.org/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" ... >
  ...
  <wsdl:binding name="EndpointBinding" type="i0:IPingService">
    <wsdl:operation name="Ping">
      <soap:operation soapAction="http://xmlsoap.org/Ping" style="document"/>
      <wsdl:input name="PingRequest">
        <wsp:PolicyReference URI="#PolicyID"/>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="PingResponse"> ... </wsdl:output>
    </wsdl:operation>
    ...
  </wsdl:binding>
  ...
  <wsp:Policy wsu:Id="PolicyID"> ... </wsp:Policy>
  ...
</wsdl:definitions>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.