impro's Software Defined World

improf.egloos.com

포토로그



웹 서비스 정책 연결(WS-PolicyAttachment)

버전 1.0
2002 12 18  

필자

Don Box, Microsoft
Francisco Curbera, IBM
Maryann Hondo(편집자), IBM
Chris Kaler(편집자), Microsoft
Hiroshi Maruyama, IBM
Anthony Nadalin, IBM
David Orchard, BEA
Claus von Riegen, SAP
John Shewchuk, Microsoft

저작권 표시

ⓒ 2001, 2002 BEA Systems Inc., International Business Machines Corporation, Microsoft Corporation 및 SAP AG("필자"라고 통칭함)는 WS-PolicyAttachment 사양을 별도의 사용료 없이 어떤 미디어에나 복사하고 표시할 수 있는 권한을 귀하에게 허가합니다. 단, 귀하가 만드는 WS-PolicyAttachment 사양의 모든 복사본이나 그 일부분에 다음 내용을 포함할 경우에 한합니다.

  1. 이 위치의 사양에 대한 링크 또는 URL

  2. WS-PolicyAttachment 사양에 나오는 저작권 표시

위에서 허가된 저작권 사용권 외에, 필자는 특허를 포함하여 자신이 소유하거나 통제하는 모든 지적 재산권에 대한 사용권을 명시적이든 묵시적이든 허가하지 않습니다.

WS-PolicyAttachment 사양은 "있는 그대로" 제공되며 필자는 상품성, 특정 목적에 대한 적합성, 비침해 또는 권리에 대한 보증을 포함하여(이에 제한되지 않음) 묵시적이든 명시적이든 어떠한 보증도 하지 않습니다. WS-PolicyAttachment 사양의 내용이 모든 용도에 적합함과 그러한 내용을 구현하는 것이 어떠한 타사 특허권, 저작권, 상표 또는 기타 권한을 침해하지 않는다는 어떠한 형태의 보증도 하지 않습니다.

필자는 WS-PolicyAttachment 사양의 사용 또는 배포로 인한 직접, 간접, 특별, 부수적 또는 파생적인 모든 손해에 대하여 어떠한 책임도 지지 않습니다.

WS-PolicyAttachment 사양은 최종 릴리스 전에 변경될 수 있으므로 이 사양의 내용을 신뢰하는 데 있어서 주의를 기울여야 합니다.

필자의 이름과 상표는 구체적인 사전 서면 허가 없이는 이 사양 또는 그 내용에 관련된 광고나 홍보를 포함하여 어떤 식으로든 사용할 수 없습니다. WS-PolicyAttachment 사양의 저작권에 대한 권리는 언제나 필자가 보유합니다.

암시, 금지 또는 그 밖의 방법으로는 어떠한 권리도 허가되지 않습니다.

요약

이 문서에서는 기존 XML 웹 서비스 기술과 함께 정책 식을 사용하기 위한 세 가지 특정 연결 메커니즘을 지정합니다. 특히 정책 식을 WSDL 형식 정의와 UDDI 엔터티에 연결하는 방법을 정의합니다. 특정 구현으로부터 제공될 경우 구현별 정책을 WSDL portType의 전부 또는 일부와 연결하는 방법도 정의합니다.

작성 가능한 아키텍처

WS* 사양은 XML, WSDL 및 SOAP 확장성 모델을 통해 서로 결합되어 풍부한 웹 서비스 환경을 제공할 수 있도록 설계되었습니다. WS-PolicyAttachment 자체는 웹 서비스에 대한 협상 솔루션을 제공하지 않습니다. WS-PolicyAttachment는 다양한 정책 교환 모델을 수용하기 위해 다른 웹 서비스 및 응용 프로그램 관련 프로토콜과 함께 사용되는 빌딩 블록입니다.

상태

이 WS-PolicyAttachment 사양은 검토와 평가만을 위한 최초의 공개 시험판입니다. BEA, IBM, Microsoft 및 SAP은 귀하의 의견과 제안을 기다리고 있습니다. BEA, IBM, Microsoft 및 SAP은 이 사양과 관련하여 어떤 식으로든 보증을 하지 않습니다.

목차

1. 소개1. 소개
2. 노테이션 및 용어2. 노테이션 및 용어
2.1. 노테이션 규칙2.1. 노테이션 규칙
2.2. 네임스페이스2.2. 네임스페이스
2.3. 용어2.3. 용어
2.4. 예제 WS-Policy 식2.4. 예제 WS-Policy 식
3. 정책 연결3. 정책 연결
3.1. XML 요소 연결3.1. XML 요소 연결
3.2. 임의의 리소스 연결3.2. 임의의 리소스 연결
4. WSDL에 정책 연결4. WSDL에 정책 연결
4.1. 실제 정책 및 요소 정책4.1. 실제 정책 및 요소 정책
4.2. 정책 및 WSDL 메시지 4.2. 정책 및 WSDL 메시지
4.3. 정책 및 WSDL portType 4.3. 정책 및 WSDL portType
4.4. 정책과 WSDL 서비스 및 포트4.4. 정책과 WSDL 서비스 및 포트
4.5. 배포된 종점 참조4.5. 배포된 종점 참조
5. UDDI 5. UDDI
6. 보안 고려 사항 6. 보안 고려 사항
7. 감사의 말 7. 감사의 말
8. 참고 자료 8. 참고 자료

1. 소개

WS-Policy 사양에서는 이론적인 정책 모델과 정책 어설션 작성을 위한 XML 정책 식 문법을 정의합니다. 이 사양에서는 정책 식을 주체와 연결하기 위한 범용 메커니즘을 정의합니다. 정책 어설션이 주체 정의의 일부로 정의되거나 정책 어설션이 독립적으로 정의되어 주체에 대한 외부 바인딩을 통해 연결되는 등의 두 가지 연결 방법이 제공됩니다.

이 사양에서는 WS-Policy를 기존 웹 서비스 기술과 함께 사용할 수 있도록 WSDL 및 UDDI와 함께 이러한 범용 메커니즘을 사용하는 것에 대해 설명합니다. 특히 다음 방법들을 정의합니다.

WSDL 정의에서 정책을 참조하는 방법

정책을 WSDL 서비스의 특정 인스턴스와 연결하는 방법

정책을 UDDI 엔터티와 연결하는 방법

2. 노테이션 및 용어

이 절에서는 이 사양에서 사용하는 노테이션, 네임스페이스 및 용어를 지정합니다.

2.1. 노테이션 규칙

이 문서에 나오는 "MUST(~해야 한다)", "MUST NOT(~해서는 안 된다)", "REQUIRED(필수 사항)", "SHALL(~할 것이다)", "SHALL NOT(~하지 않을 것이다)", "SHOULD(~해야 한다)", "SHOULD NOT(~해서는 안 된다)", "RECOMMENDED(~을 권장한다)", "MAY(~일 수도 있다)", "OPTIONAL(선택 사항)" 등의 키워드는 RFC2119의 설명대로 해석됩니다.

"some-URI"와 같은 일반적인 형식의 네임스페이스 URI는 RFC2396에 정의된 대로 일부 응용 프로그램 또는 컨텍스트에 종속되는 URI를 나타냅니다.

QName(Qualified Name - 정규화된 이름)은 [XML Namespaces]에서 도입되었습니다. 요소와 특성 이름(만)을 위해 정의된 것으로, URI/로컬 이름 쌍을 간결하게 식별하기 위한 메커니즘을 제공합니다. W3C에서는 이에 대한 견해를 http://www.w3.org/2001/tag/doc/qnameids에 수록했습니다.

WS-PolicyAttachment는 WSDL 서비스 설명, UDDI businessServices와 bindingTemplates 및 SOAP 메시지 구조 등의 일반 웹 서비스 프레임워크 및 메시지 프로세싱 모델과 함께 작동하도록 디자인되었습니다. 따라서 WS-PolicyAttachment는 모든 버전의 SOAP 또는 WSDL에 적용될 수 있어야 합니다.

2.2. 네임스페이스

이 문서에 사용된 네임스페이스는 다음과 같습니다.

접두어

네임스페이스

xs

http://www.w3.org/2001/XMLSchema  toUS.gif  

wsse

http://schemas.xmlsoap.org/ws/2002/12/secext  toUS.gif  

wsu

http://schemas.xmlsoap.org/ws/2002/07/utility  toUS.gif

wsp

http://schemas.xmlsoap.org/ws/2002/12/policy  toUS.gif  

이 문서에서는 유틸리티 스키마(http://schemas.xmlsoap.org/ws/2002/07/utility)의 wsu:Id 특성을 참조합니다. 그러한 ID를 필요로 하는 다른 사양에서도 여기에 나오는 대로 참조할 수 있도록 wsu:Id 특성을 유틸리티 스키마에 포함했습니다.

2.3. 용어

이 문서에서 사용되는 일부 용어에 대한 정의는 다음과 같습니다.

정책 문 정책 문은 정책 어설션의 그룹입니다.

정책 어설션 정책 어설션은 개별 우선 순위, 요구 사항, 기능 또는 그 밖의 속성을 나타냅니다.

정책 식 정책 식은 하나 이상의 정책 문을 XML Infoset으로 나타낸 것입니다.

정책 주체 정책 주체는 정책이 바운드될 수 있는 엔터티(예: 종점, 개체 또는 리소스)입니다.

정책 연결 정책을 하나 이상의 주체와 연결하기 위한 메커니즘을 정책 연결이라고 합니다.

2.4. 예제 WS-Policy 식

이 사양에서는 WS-Policy 식을 다양한 XML 웹 서비스 엔터티와 연결하기 위한 몇 가지 메커니즘을 정의합니다. 요약하자면, 이 문서의 나머지에서 참조하는 세 개의 샘플 정책 식을 정의합니다. 이러한 정책에는 XML 네임스페이스 확장성을 사용하여 도메인 관련 정책을 나타내는 사용자 지정(실제가 아닌) 어설션이 포함됩니다. 여기서 식은 여러 가지 정책을 나타냅니다. 첫 번째는 요소에 디지털 서명을 하기 위한 정책이고, 두 번째는 암호화에 대한 정책이며, 세 번째는 배달에 대한 정책입니다.

<wsp:Policy xmlns:wsp="..." xmlns:wsu="..." xmlns:xxx="..."     xml:base="http://www.fabrikam123.com/policies"    wsu:Id="P1"     Name="Q1" TargetNamespace="http://www.fabrikam123.com/policies">  <xxx:Sign wsp:Usage="wsp:Required" />   </wsp:Policy> 

<wsp:Policy xmlns:wsp="..." xmlns:wsu="..." xmlns:xxx="..."     xml:base="http://www.fabrikam123.com/policies"    wsu:Id="P2"    Name="Q2" TargetNamespace="http://www.fabrikam123.com/policies">  <xxx:Encrypt wsp:Usage="wsp:Required" /></wsp:Policy> 

 
<wsp:Policy xmlns:wsp="..." xmlns:wsu="..." xmlns:xxx="..."    xml:base="http://www.fabrikam123.com/policies"    wsu:Id="P3"    Name="Q3" TargetNamespace="http://www.fabrikam123.com/policies">  <xxx:ExpeditedDelivery wsp:Usage="wsp:Required" /></wsp:Policy>

이러한 정책 식에 대한 URI는 각각 http://www.fabrikam123.com/policies#P1, http://www.fabrikam123.com/policies#P2, http://www.fabrikam123.com/policies#P3입니다. 정책 식에 대한 QName 식별자(xmlns:f123=http://www.fabrikam123.com/policies로 가정함)는 각각 f123:Q1, f123:Q2, f123:Q3입니다.

3. 정책 연결

이 절에서는 정책 식을 하나 이상의 주체 또는 리소스와 연결하는 두 가지 범용 메커니즘을 정의합니다. 첫 번째 메커니즘을 사용하면 XML 기반의 리소스 정의(XML 요소로 나타냄)에서 정책 문을 고유한 해당 정의의 일부로 연결할 수 있습니다. 두 번째 메커니즘에서는 정책 식이 해당 정의와는 별도로 임의의 리소스와 연결될 수 있습니다.

3.1. XML 요소 연결

정책 어설션을 XML 요소와 연결하는 것이 바람직한 경우가 많습니다. 이를 돕기 위해 이 사양에서는 요소 정보 항목에 대한 XML(Infoset) 확장을 제안합니다. 이 확장의 이름은 [Element Policy]이며 그 형식은 WS-Policy에 정의된 바와 같이 정책 식입니다. [Element Policy]가 검색된 후 어떻게 처리되는지에 대한 정확한 의미는 스키마별로 달라지지만, 구현 작업은 아래 나오는 WSDL 및 정책에 대한 절에 지정된 전례를 따르는 경우가 많습니다.

이 사양에서는 임의의 XML 요소와 함께 정책 식이 연결될 수 있는 두 개의 전역 특성을 정의합니다. 다음은 정책 연결 특성에 대한 스키마 정의입니다.

<xs:schema> <xs:attribute name="PolicyURIs" type="wsp:tPolicyURIs" /> <xs:attribute name="PolicyRefs"  type="wsp:tPolicyRefs" /></xs:schema>

이 특성에 대한 네임스페이스 URI는 http://schemas.xmlsoap.org/ws/2002/12/policy입니다.

wsp:PolicyURIs 특성에는 하나 이상의 URI 목록이 포함됩니다. 마찬가지로 wsp:PolicyRefs에는 하나 이상의 QName 목록이 포함됩니다. 이러한 특성 중 어느 하나가 사용되면 각 값은 WS-Policy에서 정의된 대로 정책 식을 식별합니다. URI 또는 NQName을 두 개 이상 지정하면 개별적으로 참조된 정책 식이 함께 병합되어 하나의 실제 정책 식을 구성합니다. 그러면 병합된 정책 식이 요소 정보 항목의 [Element Policy] 속성과 연결됩니다. 이것에 대한 예제는 2.4절에 나오는 샘플 정책을 사용하여 아래에 제공됩니다.

이 정책 참조 메커니즘을 사용하는 구현에서는 URI와 QName을 모두 지원할 필요가 없습니다. 즉, URI만, QName만 또는 두 가지를 모두 지원하도록 선택할 수 있습니다.

<MyElement xmlns:wsp="http://schemas.xmlsoap.org/ws/2002/12/policy" wsp:PolicyURIs="http://www.fabrikam123.com/policies#P1 http://www.fabrikam123.com/policies#P2"/> 

위와 같은 XML 요소가 병합을 처리한 경우에는 다음과 같은 XML 1.0 표시의 [Element Policy]가 만들어집니다.

<wsp:Policy>  <xxx:Sign wsp:Usage="wsp:Required" />  <xxx:Encrypt wsp:Usage="wsp:Required" /></wsp:Policy> 

[Element Policy] 식에는 의미 있는 URI가 없습니다.

wsp:PolicyURIs 또는 wsp:PolicyRefs 특성 중 하나가 있으면 구현에서 정책 식을 XML 기반 구문에 연결하기 위해 추가 메커니즘을 사용할 필요가 없습니다.

이 전역 특성을 사용하면 WSDL 설명의 요소를 확장할 수 있습니다.

3.2. 임의의 리소스 연결

이 메커니즘에서는 <wsp:PolicyAttachment> 요소를 사용하여 해당 정의 및/또는 표시에 관계 없이 정책 식이 리소스에 연결될 수 있습니다. 이 새로운 요소에는 연결의 범위, 바운드되는 정책 식, 선택적 보안 정보 등 세 가지 구성 요소가 있습니다. 연결의 범위는 일반적으로 URI를 기반으로 웹 기반 리소스를 식별하는 확장 가능한 범위 식을 사용하여 정의됩니다.

범위 식은 연결의 도메인을 식별합니다. 즉, 범위에 포함하기 위해 고려되는 리소스 집합을 말합니다.

범위 식의 도메인은 확장 가능한 도메인 식 모델을 사용하여 식별됩니다. 도메인 식은 고려할 리소스를 식별하여 정리되지 않은 리소스 집합을 만듭니다.

다음은 <wsp:PolicyAttachment> 요소에 대한 의사(pseudo) 스키마입니다.

<wsp:PolicyAttachment>    <wsp:AppliesTo>       <xxx:DomainExpression/> +     </wsp:AppliesTo>    (<wsp:Policy>...</wsp:Policy> |      <wsp:PolicyReference>...</wsp:PolicyReference>).../>) +     <wsse:Security>...</wsse:Security> </wsp:PolicyAttachment>

다음은 위 스키마 개요에 나열된 특성과 요소에 대한 설명입니다.

/PolicyAttachment

방향이 지정된 정책 연결을 설명합니다.

/PolicyAttachment/AppliesTo

이 필수 요소는 바인딩 범위 식의 도메인을 나타냅니다.

/PolicyAttachment/AppliesTo/{any}

도메인 식에 대한 확장성 요소를 사용할 수 있습니다. 도메인 식에는 도메인에 리소스를 제공하는 고유한 XML 요소가 있습니다. 도메인 식이 두 개 이상 있으면 해당 도메인에 각 식의 결과가 통합됩니다. 이 문서에서는 도메인 식 하나를 정의하고 나머지는 후속 사양에서 정의할 것입니다.

/PolicyAttachment/Policy

이 요소는 범위 내 모든 리소스에 적용되는 정책 식을 포함합니다.

/PolicyAttachment/PolicyReference

이 요소는 범위 내 모든 리소스에 적용되는 정책 식을 참조합니다. 자세한 내용은 WS-Policy를 참조하십시오.

/PolicyAttachment/wsse:Security

이 요소를 사용하면 서명과 같은 보안 정보를 포함할 수 있습니다. 이 요소의 구문에 대한 설명은 WS-Security에 있습니다.

/PolicyAttachment/@{any}

추가 특성을 지정할 수 있는 확장성 메커니즘입니다.

/PolicyAttachment/{any}

다른 바인딩 구문을 지정할 수 있는 확장성 메커니즘입니다. 확장 요소에 "true" 값을 가진 최상위 수준(<PolicyAttachment>의 하위 요소) "wsu:mustUnderstand" 특성이 없으면 구현에서 그 요소를 무시할 수도 있습니다.

다음은 다음 절에 나오는 배포된 WSDL 종점에 대한 도메인 식과 함께 이 선언을 사용하는 것을 보여 주는 예제입니다.

<wsp:PolicyAttachment>   <wsp:AppliesTo>        <wsp:EndpointReference xmlns:fabrikam="...">           <wsp:ServiceName Name="fabrikam:InventoryService"/>           <wsp:PortType Name="fabrikam:InventoryPortType"/>           <wsp:Address URI="http://www.fabrikam123.com/acct"/>        </wsp:EndpointReference>   </wsp:AppliesTo>   <wsp:PolicyReference Ref="http://www.fabrikam123.com/acct-policy.xml"/></wsp:PolicyAttachment>

이 예제에서는 http://www.fabrikam123.com/acct-policy.xml의 정책 식이 http://www.fabrikam123.com/acct의 서비스에서 fabrikam:InventoryPortType을 구현하는 서비스의 모든 출력 리소스에 적용됩니다.

4. WSDL에 정책 연결

WSDL/1.1에서는 확장성 요소를 portType과 메시지에 적용할 수 없습니다. 그러므로 이 사양에서는 wsp:PolicyURIs wsp:PolicyRefs 특성을 사용합니다.

정책 주석이 달린 WSDL 문서의 소비자가 정책 연결을 처리할 수 있도록 하기 위해 이 사양에서는 이 절에 정의된 정책 연결 메커니즘을 사용하는 메시지 또는 portType의 포함 <wsdl:definitions/> 요소에서 확장성 요소로 나타나야 하는 단일 확장성 요소 <wsp:UsingPolicy/>를 정의합니다. 또한 <wsp:UsingPolicy> 요소가 <wsdl:definitions> 요소 아래 나타날 경우 필수 확장(예: wsdl:required="true" 특성을 사용함)으로 표시되어야 합니다.

이 절에서는 정책이 WSDL portType, 메시지, 서비스 또는 포트 정의 안에 나타날 때 그 정책을 해석하는 방법을 정의합니다. 이러한 모든 경우, WSDL의 계층적 특징을 고려하여 이론상의 메시징 형식의 특정 측면에 대한 실제 정책을 결정합니다.

4.1. 실제 정책 및 요소 정책

여러 수준의 계층 [Elements]에 정책을 연결할 때는 주의를 기울여야 합니다. 상위 수준에서 연결된 정책은 상속됩니다. 하위 수준의 추가 정책만이 상속된 정책을 추가로 한정하는 것이 좋습니다.

이 사양에서는 WSDL 데이터 모델에 대한 확장을 정의합니다. 이러한 확장을 [Effective Policy]라고 하며 이 절의 나머지 부분에서는 그 정의와 해석을 주로 다룹니다.

일반적으로 [Effective Policy]는 상위 노드에서 상속됩니다. 예를 들어, 연산은 상위 portType으로부터 [Effective Policy]를 상속 받습니다. 상위 노드 형식에만 적용되는 어설션 형식은 [Effective Policy]를 계산할 때 무시됩니다.

WSDL 형식 정의(portType과 메시지)의 경우, WSDL 형식 정의에 대한 [Effective Policy]가 형식 정의에 내재된 부분으로 간주되며 해당 형식을 사용하는 모든 경우, 특히 해당 WSDL portType의 모든 구현에 적용됩니다.

배포된 리소스(서비스 또는 포트)에 적용되는 정책의 경우에는 [Effective Policy]가 배포된 리소스 자체에만 적용됩니다.

4.2. 정책 및 WSDL 메시지

WSDL/1.1은 WSDL 메시지 형식을 정의할 때 함께 사용되는 다음 두 요소를 정의합니다.

wsdl:message
wsdl:message/wsdl:part

이러한 각각의 요소들은 이 사양의 3절에 따라 [Element Policy] 속성을 가질 수도 있습니다. 이 절의 나머지 부분에서는 [Effective Policy] 계산을 위해 [Element Policy]가 해석되는 방법을 정의합니다.

WSDL 메시지 형식에 대한 [Effective Policy]는 해당 메시지 형식을 정의하는 wsdl:message 요소의 [Element Policy]입니다.

WSDL 메시지 부분에 대한 [Effective Policy]는 해당 부분의 상위 메시지 형식에 대한 실제 정책과 함께 병합된 메시지 부분을 정의하는 wsdl:part 요소의 [Element Policy]입니다.

QName을 사용하여 정책을 참조하는 다음과 같은 WSDL 메시지 형식 정의를 검토합니다.

< xml version="1.0"><wsdl:definitions name="Inventory"   xmlms:wsdl="http://schemas.xmlsoap.org/wsdl"   targetNamespace="http://example.com/inventory.wsdl"   ...   xmlns:ps="http://example.com/policies"><wsp:UsingPolicy wsdl:Required="true"/><wsdl:message name="LookupResponse"      wsp:PolicyRefs="ps:Q1">  <wsdl:part name="key" type="xs:string"               wsp:PolicyRefs="ps:Q2" />  <wsdl:part name="value" type="xs:string"              wsp:PolicyRefs="ps:Q3" />  <wsdl:part name="hint" type="xs:string"  /></wsdl:message></wsdl:definitions>

LookupResponse 메시지 형식에는 다음과 같은 XML 1.0 표시의 [Effective Policy]가 있습니다.

<<wsp:Policy>  <xxx:Sign wsp:Usage="wsp:Required" /></wsp:Policy>

LookupResponse 메시지 형식의 "key" 부분에는 다음과 같은 XML 1.0 표시의 [Effective Policy]가 있습니다.

<wsp:Policy>  <xxx:Sign wsp:Usage="wsp:Required" />  <xxx:Encrypt wsp:Usage="wsp:Required" /></wsp:Policy>

LookupResponse 메시지 형식의 "value" 부분에는 다음과 같은 XML 1.0 표시의 [Effective Policy]가 있습니다.

<wsp:Policy>  <xxx:Sign wsp:Usage="wsp:Required" />  <xxx:ExpeditedDelivery wsp:Usage="wsp:Required" /></wsp:Policy>

LookupResponse 메시지 형식의 "hint" 부분에는 [Element Policy]가 없으므로 "hint" 메시지 부분의 [Effective Policy]는 다음과 같습니다.

<wsp:Policy>  <xxx:Sign wsp:Usage="wsp:Required" /></wsp:Policy>

4.3. 정책 및 WSDL portType

WSDL/1.1은 portType을 정의할 때 함께 사용되는 다음 다섯 요소를 정의합니다.

wsdl:portType

wsdl:portType/wsdl:operation

wsdl:portType/wsdl:operation/wsdl:input

wsdl:portType/wsdl:operation/wsdl:output

wsdl:portType/wsdl:operation/wsdl:fault

이러한 각각의 요소들은 이 사양의 3절에 따라 [Element Policy] 속성을 가질 수도 있습니다. 아웃바운드 연산에 정책을 연결할 때는 예상되는 결과가 나오도록 주의를 기울여야 합니다.

이 절의 나머지 부분에서는 실제 정책 계산을 위해 [Element Policy]가 해석되는 방법을 정의합니다.

WSDL portType에 대한 [Effective Policy]는 portType을 정의하는 wsdl:portType 요소의 [Element Policy]입니다.

WSDL 연산에 대한 [Effective Policy]는 해당 연산의 상위 portType의 [Effective Policy]와 함께 병합된 연산을 정의하는 wsdl:operation 요소의 [Element Policy]입니다.

WSDL 입력 메시지에 대한 [Effective Policy]는 메시지의 상위 연산의 [Effective Policy] 및 참조된 WSDL 메시지 형식의 [Effective Policy]와 함께 병합된 입력 메시지를 정의하는 wsdl:input 요소의 [Element Policy]입니다.

WSDL 출력 메시지에 대한 [Effective Policy]는 메시지의 상위 연산의 [Effective Policy] 및 참조된 WSDL 메시지 형식의 [Effective Policy]와 함께 병합된 출력 메시지를 정의하는 wsdl:output 요소의 [Element Policy]입니다.

WSDL 오류 메시지에 대한 [Effective Policy]는 메시지의 상위 연산의 [Effective Policy] 및 참조된 WSDL 메시지 형식의 [Effective Policy]와 함께 병합된 오류 메시지를 정의하는 wsdl:fault 요소의 [Element Policy]입니다.

4.4. 정책과 WSDL 서비스 및 포트

이 절에서는 WSDL 서비스 또는 포트 정의가 wsp:PolicyURIs wsp:PolicyRefs 특성을 사용하여 적용되는 정책 목록을 참조하는 정책을 나타낼 수 있는 방법을 살펴보겠습니다.

WSDL/1.1에서 WSDL 서비스를 정의하는 데는 다음 두 요소가 사용됩니다.

wsdl:service

wsdl:service/port

여러 가지 네임스페이스의 추가 확장성 요소를 wsdl:service/port에서 사용하여 전송 및 주소 정보를 나타낼 수 있습니다. 이러한 사항은 여기서 살펴보지 않겠습니다.

WSDL 서비스에 대한 [Effective Policy]는 서비스를 정의하는 wsdl:service 요소의 [Element Policy]입니다.

WSDL 포트에 대한 [Effective Policy]는 포트의 상위 서비스의 [Effective Policy]와 함께 병합된 포트를 정의하는 wsdl:port 요소의 [Element Policy]입니다.

4.5. 배포된 종점 참조

이 절에서는 <wsp:PolicyAttachment> 메커니즘을 사용하여 배포된 웹 서비스의 특정 종점을 참조할 수 있는 새로운 도메인 식을 정의합니다.

다음 스키마 개요는 이러한 확장을 설명합니다.

<wsp:PolicyAttachment>      <wsp:AppliesTo>        <wsp:EndpointReference>           [<ServiceName Name="..."/> ]           [<PortType Name="..."/> ]           <Address URI="..."/>        </wsp:EndpointReference>+      </wsp:AppliesTo>      (<wsp:Policy>...</wsp:Policy> |        <wsp:PolicyReference>...</wsp:PolicyReference>)+    </wsp:PolicyAttachment>

다음은 위 스키마 개요에 나열된 특성에 대한 설명입니다.

/PolicyAttachment/AppliesTo/EndpointReference 

이 요소는 배포된 종점을 참조(종점에 적용)하는 데 사용됩니다.

/PolicyAttachment/AppliesTo/EndpointReference/ServiceName 

이 선택적 요소는 참조되는 wsdl:service 정의를 지정합니다.

/PolicyAttachment/AppliesTo/EndpointReference/ServiceName/@Name 

이 필수 특성은 서비스의 QName을 지정합니다.

/PolicyAttachment/AppliesTo/EndpointReference/PortType 

이 선택적 요소는 참조되는 포트의 형식 affiliation을 지정합니다.

/PolicyAttachment/AppliesTo/EndpointReference/PortType/@Name 

이 필수 특성은 포트의 QName을 지정합니다.

/PolicyAttachment/AppliesTo/EndpointReference/Address 

이 필수 요소는 대상 종점에 대한 주소를 지정합니다.

/PolicyAttachment/AppliesTo/EndpointReference/Address/@URI 

이 필수 특성은 서비스의 URI 주소를 지정합니다.

/PolicyAttachment/AppliesTo/EndpointReference/@{any}

추가 특성을 지정할 수 있는 확장성 메커니즘입니다.

/PolicyAttachment/AppliesTo/EndpointReference/{any}

추가 종점 특성을 지정할 수 있는 확장성 메커니즘입니다.

5. UDDI

이 절에서는 WS-PolicyAttachment 기반 정책 식을 UDDI 레지스트리의 엔터티와 연결하기 위한 최소의 지원 수준을 정의합니다. 사실 정책 식을 UDDI 데이터와 쿼리 모델에 더욱 깊이 통합할 수 있지만 그러한 매핑은 이 사양의 범위를 벗어나는 것입니다. 다음 사양에서는 UDDI와 WS-PolicyAttachment 간에 더욱 정교하고 섬세한 통합이 소개될 것입니다.

UDDI tModels는 임의의 메타데이터 문을 서비스 및 UDDI 레지스트리의 기타 엔터티와 연결하기 위한 일반 메커니즘을 제공합니다. WS-PolicyAttachment를 UDDI 모델에 적절히 통합하기 위해 WS-PolicyAttachment는 WS-PolicyAttachment 식을 UDDI 레지스트리의 엔터티와 연결하는 데 사용하는 한 개의 tModel을 미리 정의합니다.

이 새로운 tModel은 다음과 같이 정의됩니다.

<tModel tModelKey="uuid:bd3966a8-faa5-416e-9772-128554343571" >  <name>http://schemas.xmlsoap.org/ws/2002/07/policytmodel</name>  <description>WS-PolicyAttachment policy expression</description></tModel>

잘 알려진 tModelKey(uuid:bd3966a8-faa5-416e-9772-128554343571)를 사용하는 것이 좋습니다. 이 tModel이 범주 모음의 키로 적용될 경우 keyedReference의 해당 값이 정책 식의 URI가 됩니다. 이 tModel이 tModelInstanceDetail의 키로 적용되면 해당 instanceParam에 정책 식의 URI가 포함됩니다.

위에 정의된 tModel이 주어질 경우에는 서비스의 범주 모음을 사용하여 정책 식을 businessService와 연결할 수 있습니다.

<businessService>  <name>...</name>  <description>...</description>  <bindingTemplates>...</bindingTemplates>  <categoryBag>    <keyedReference            tModelKey="uuid:bd3966a8-faa5-416e-9772-128554343571"           keyName="http://schemas.xmlsoap.org/ws/2002/07/policytmodel"           keyValue="http://www.example.com/myservice/policy"/>  </categoryBag>   </tModel>

tModelKey와 keyedReference의 keyName은 WS-PolicyAttachment의 일부로 정의된 고정 tModel과 일치해야 합니다. keyValue는 정책 식의 URI여야 합니다.

정책 식을 UDDI bindingTemplate과 연결하려면 tModelInstanceInfo를 사용해야 합니다.

<bindingTemplate>  <accessPoint>...</accessPoint>  <tModelInstanceDetails>    <tModelInstanceInfo            tModelKey="uuid:bd3966a8-faa5-416e-9772-128554343571" >      <instanceDetails>        <instanceParams>           http://www.example.com/myservice/policy        </instanceParams>      </instanceDetails>    </tModelInstanceInfo>  </tModelInstanceDetails></tModel>

tModelInstanceInfo의 tModelKey는 WS-PolicyAttachment의 일부로 정의된 고정 tModel과 일치해야 합니다. instanceParams는 정책 식의 URI여야 합니다.

UDDI 레지스트리는 tModelInstanceInfo를 사용하여 정책 식을 bindingTemplate과 연결해야 합니다.

UDDI 3.0 레지스트리는 bindingTemplate의 범주 모음을 사용하여 정책 식을 tModelInstanceInfo뿐 아니라 bindingTemplate에도 연결할 수 있습니다.

이전에 살펴본 메커니즘을 사용하는 것 외에도 구현을 통해 UDDI 레지스트리의 특정 WS-Policy 식을 별개의 tModel로 등록할 수도 있습니다. tModel의 이름은 정책 식의 URI가 됩니다. 다음은 http://www.example.com/myservice/policy의 정책 식에 대한 tModel 설명입니다.

<tModel tModelKey="uuid:11111111-1111-1111-1111-111111111111" >  <name>http://www.example.com/myservice/policy</name>  <description xml:lang="ko"> myservice를 위한 정책 식 </description>  <overviewDoc>    <description xml:lang="ko">WS-Policy 식</description>    <overviewURL>http://www.example.com/myservice/policy</overviewURL>  </overviewDoc>  <categoryBag>    <keyedReference            tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"           keyName="uddi-org:types"           keyValue="xmlSpec"/>  </categoryBag></tModel>

/name 요소는 정책 식의 고유한 URI여야 합니다. UDDI 2.0 이전 버전에서는 tModelKey가 레지스트리에서 생성한 UUID입니다. UDDI 3.0 버전에서는 tModelKey의 값이 정책 식의 URI와 동일할 수도 있습니다.

6. 보안 고려 사항

무단 변경을 방지하기 위해 정책 바인딩은 반드시 서명할 것을 권장합니다. 이렇게 하면 바인딩의 범위를 "증명"할 수 있는 권한이 서명자에게 있는지 확인함으로써 바인딩 설명을 인증할 수 있는 메커니즘도 제공됩니다.

정책에 서명이 되어 있고 정책이 포함된 범위를 "증명"할 수 있는 권한이 서명자에게 있음을 지정하는 보안 토큰이 연결되어 있는 경우가 아니라면 그 정책을 받아들여서는 안 됩니다.

7. 감사의 말

이 사양이 있기까지 다음 분들의 노고에 감사의 말씀을 드립니다.

Erik Christensen, Microsoft
Giovanni Della-Libera, Microsoft
Martin Gudgin, Microsoft
Scott Konersmann, Microsoft
Frank Leymann, IBM
Steve Lucco, Microsoft
Steve Millet , Microsoft
Nataraj Nagaratnam, IBM
Henrik Frystyk Nielsen, Microsoft
Keith Stobie, Microsoft
Tony Storey, IBM
Sanjiva Weerawarana, IBM

8. 참고 자료

[키워드]

S. Bradner, "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119  toUS.gif , Harvard University, 1997년 3월

[RFC2068]

IETF Standard, "Hypertext Transfer Protocol -- HTTP/1.1toUS.gif 1997년 1월

[SOAP]

W3C Note, "SOAP: Simple Object Access Protocol 1.1toUS.gif , 2000년 5월 8일

[URI]

T. Berners-Lee, R. Fielding, L. Masinter, "Uniform Resource Identifiers (URI): Generic Syntax", RFC 2396  toUS.gif , MIT/LCS, U.C. Irvine, Xerox Corporation, 1998년 8월

[WS-Security]

"Web Services Security LanguagetoUS.gif , IBM/Microsoft/VeriSign, 2002년 4월

[WS-Policy]

"Web Services Policy FrameworktoUS.gif , BEA, IBM, Microsoft 및 SAP, 2002년 11월

[WSDL]

"Web Services Description LanguagetoUS.gif , IBM/Microsoft, 2001년 3월 15일

[XML-Encrypt]

W3C Recommendation, "XML Encryption Syntax and ProcessingtoUS.gif , 2002년 12월 10일

[XML-ns]

W3C Recommendation, "Namespaces in XMLtoUS.gif , 1999년 1월 14일

[XML-Schema1]

W3C Recommendation, "XML Schema Part 1: StructurestoUS.gif , 2001년 5월 2일

[XML-Schema2]

W3C Recommendation, "XML Schema Part 2: Datatypes" toUS.gif , 2001년 5월 2일

[XML Signature]

W3C Recommendation, "XML Signature Syntax and ProcessingtoUS.gif , 2002년 2월 12일

최종 수정일: 2003년 2월 24일

 


핑백

  • impro : 웹 서비스 세계에서의 보안 2010-02-25 13:48:11 #

    ... .egloos.com/2380657Policy Attachment (WS-Policy-Attachment) 문서: 정책들을 웹 서비스에 어태치하는 방법 정의.http://improf.egloos.com/2304712일반적인 정책 선언 (WS-Policy-Assertions).보안 정책 선언 (WS-Security Policy) . ... more

덧글

댓글 입력 영역