메타데이터 매핑

메타데이터 문서의 내용은 다음 섹션에서 설명하는 방식으로 메타데이터 API에 매핑됩니다.

다음 네임스페이스 접두사는 이 설명서 전체에서 사용됩니다.

wsdl   => http://schemas.xmlsoap.org/wsdl/
soap11 => http://schemas.xmlsoap.org/wsdl/soap/
soap12 => http://schemas.xmlsoap.org/wsdl/soap12/
wsa09  => http://schemas.xmlsoap.org/ws/2004/08/addressing
wsa10  => http://www.w3.org/2005/08/addressing
wsa09p => http://schemas.xmlsoap.org/ws/2004/08/addressing/policy
wsa10p => http://www.w3.org/2006/05/addressing/wsdl
binp   => http://schemas.microsoft.com/ws/06/2004/mspolicy/netbinary1
mtomp  => http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization
sp     => http://schemas.xmlsoap.org/ws/2005/07/securitypolicy
wsp    => http://schemas.xmlsoap.org/ws/2004/09/policy
netf   => http://schemas.microsoft.com/ws/2006/05/framing/policy
httpp  => http://schemas.microsoft.com/ws/06/2004/policy/http
wst10  => http://schemas.xmlsoap.org/ws/2005/02/trust
wsi    => http://schemas.xmlsoap.org/ws/2005/05/identity

후속 섹션에서는 API 구문과 해당되는 메타데이터 구문(WSDL 또는 정책)에 대해 설명합니다.

WSDL 및 정책과 같은 메타데이터 사양을 숙지하면 이 섹션을 이해하는 데 도움이 됩니다.

엔드포인트 주소

엔드포인트의 주소( WS_ENDPOINT_ADDRESS 참조)는 WSDL 문서의 wsdl:port 요소 내의 확장성 요소에서 가져옵니다. 주소를 지정하는 데 지원되는 확장성 요소는 다음과 같습니다.

<wsdl:port...>
    <soap11:address.../>
</wsdl:port>
<wsdl:port...>
    <soap12:address.../>
</wsdl:port>
<wsdl:port...>
    <wsa09:EndpointReference.../>
</wsdl:port>
<wsdl:port...>
    <wsa10:EndpointReference.../>
</wsdl:port>

WS_CHANNEL_BINDING

채널 바인딩( WS_CHANNEL_BINDING 참조)은 사용되는 soap 바인딩 전송에 따라 다음과 같이 결정됩니다.

<soap:binding transport=&quot;http://schemas.microsoft.com/soap/tcp&quot;/> => WS_TCP_CHANNEL_BINDING
<soap:binding transport=&quot;http://schemas.xmlsoap.org/soap/http&quot;/> => WS_HTTP_CHANNEL_BINDING

WS_CHANNEL_PROPERTY_ENVELOPE_VERSION

봉투 버전( WS_CHANNEL_PROPERTY_ENVELOPE_VERSION 참조)은 다음과 같이 사용되는 비누 바인딩에 따라 결정됩니다.

<wsdl:binding...>
    <soap11:binding.../> => WS_ENVELOPE_VERSION_SOAP_1_1
</wsdl:binding>
<wsdl:binding...>
    <soap12:binding.../> => WS_ENVELOPE_VERSION_SOAP_1_2
</wsdl:binding>

주소 지정 버전

주소 지정 버전( WS_CHANNEL_PROPERTY_ADDRESSING_VERSION 참조)은 엔드포인트 정책의 다음 어설션에 의해 결정됩니다.

<wsp:Policy...>
    <wsa09p:UsingAddressing.../> => WS_ADDRESSING_VERSION_0_9
</wsp:Policy>
<wsp:Policy...>
    <wsa10p:UsingAddressing.../> => WS_ADDRESSING_VERSION_1_0
</wsp:Policy>

주소 지정 어설션이 없으면 WS_ADDRESSING_VERSION_TRANSPORT 가정합니다.

메시지 인코딩

메시지의 인코딩( WS_CHANNEL_PROPERTY_ENCODING 참조)은 엔드포인트 정책의 다음 어설션에 의해 결정됩니다.

<wsp:Policy...>
    <binp:BinaryEncoding.../> => WS_ENCODING_XML_BINARY_SESSION_1, WS_ENCODING_XML_BINARY_1
</wsp:Policy>

이진 인코딩 정책 어설션에는 이진 인코딩이 세션 또는 세션 없는지 여부에 대한 정보가 포함되지 않습니다. 이는 인코딩 속성 제약 조건에 의해 결정됩니다(사용 중인 WS_CHANNEL_TYPE 세션인지 여부에 따라 적절해야 합니다).

<wsp:Policy...>
    <mtomp:OptimizedMimeSerialization.../> => WS_ENCODING_XML_MTOM_UTF8, WS_ENCODING_XML_MTOM_UTF16LE, WS_ENCODING_XML_MTOM_UTF16BE
</wsp:Policy>

위의 어설션이 모두 없으면 WS_ENCODING_XML_UTF8, WS_ENCODING_XML_UTF16LE, WS_ENCODING_XML_UTF16BE 텍스트 인코딩이 사용됩니다.

정책에는 MTOM 또는 텍스트 인코딩(UTF8, UTF16LE 또는 UTF16BE)에 대한 문자 집합에 대한 정보가 포함되지 않습니다. 사용되는 실제 문자 집합 값은 인코딩 속성 제약 조건에 의해 결정됩니다.

HTTP 헤더 인증을 사용하는 제약 조건

이 섹션은 WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT 보안 바인딩 제약 조건이 지정된 경우에 적용됩니다.

이 보안 바인딩은 HTTP 헤더 인증을 사용해야 하고 특정 인증 체계를 사용해야 함을 나타내는 서로 다른 어설션으로 정책에 표시됩니다. 정책 어설션은 다음과 같이 WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_SCHEME 값에 해당합니다.

<wsp:Policy...>
    <httpp:BasicAuthentication.../> => WS_HTTP_HEADER_AUTH_SCHEME_BASIC
</wsp:Policy>
<wsp:Policy...>
    <httpp:NegotiateAuthentication.../> => WS_HTTP_HEADER_AUTH_SCHEME_NEGOTIATE
</wsp:Policy>
<wsp:Policy...>
    <httpp:NtlmAuthentication.../> => WS_HTTP_HEADER_AUTH_SCHEME_NTLM
</wsp:Policy>
<wsp:Policy...>
    <httpp:DigestAuthentication.../> => WS_HTTP_HEADER_AUTH_SCHEME_DIGEST
</wsp:Policy>

SLL 전송 보안을 사용하는 제약 조건

이 섹션은 WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT 보안 바인딩 제약 조건이 지정된 경우에 적용됩니다. 이 경우 다음 정책 어설션이 사용됩니다.

<wsp:Policy...>
    <sp:TransportBinding...>
        <wsp:Policy...>
            <sp:TransportToken...>
                <wsp:Policy...>
                    <sp:HttpsToken.../>
            </wsp:Policy...>
        </wsp:Policy>
    </sp:TransportBinding...>
</wsp:Policy>

SSPI 전송 보안을 사용하는 제약 조건

이 섹션은 WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT 보안 바인딩 제약 조건이 지정된 경우에 적용됩니다. 이 경우 다음 정책 어설션이 사용됩니다.

<wsp:Policy...>
    <sp:TransportBinding...>
        <wsp:Policy...>
            <sp:TransportToken...>
                <wsp:Policy...>
                    <netf:WindowsTransportSecurity.../>
            </wsp:Policy...>
        </wsp:Policy>
    </sp:TransportBinding...>
</wsp:Policy>

전송 보안으로 제한

보안 바인딩 제약 조건이 지정된 경우 WS_SECURITY_PROPERTY_TRANSPORT_PROTECTION_LEVEL 속성 제약 조건을 지정할 수 있습니다.

Kerberos APREQ 보안 바인딩을 사용하는 제약 조건

이 섹션은 WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT 보안 바인딩 제약 조건이 지정된 경우에 적용됩니다. 이 경우 다음 정책 어설션이 사용됩니다.

<sp:EndorsingSupportingTokens...>
    <wsp:Policy>
        <sp:KerberosToken>
            <WssGssKerberosV5ApReqToken11.../>
        </sp:KerberosToken>
    </wsp:Policy>
</sp:EndorsingSupportingTokens>

메시지 보안 바인딩이 있는 제약 조건

이 섹션은 WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT 보안 바인딩 제약 조건이 지정된 경우에 적용됩니다. 이 경우 다음 정책 어설션이 사용됩니다.

<sp:SignedSupportingTokens>
    <wsp:Policy>
        <sp:UsernameToken.../>
    </wsp:Policy>
</sp:SignedSupportingTokens>

WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT

이 섹션은 WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT 보안 바인딩 제약 조건이 지정된 경우에 적용됩니다. 이 경우 다음 정책 어설션이 사용됩니다.

<sp:EndorsingSupportingTokens>
    <wsp:Policy>
        <sp:X509Token.../>
   </wsp:Policy>
</sp:EndorsingSupportingTokens>

WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT

이 섹션은 WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT 보안 바인딩 제약 조건이 지정된 경우에 적용됩니다. 이 경우 다음 정책 어설션이 사용됩니다.

<sp:EndorsingSupportingTokens...>
    <wsp:Policy>
        <sp:IssuedToken sp:IncludeToken=&quot;xs:anyURI&quot;? ...=&quot;&quot; >
            <wsp:Issuer>...</wsp:Issuer>?
            <wsp:RequestSecurityTokenTemplate TrustVersion='xs:anyURI&quot;?>
                ...
                <wst10:Claims>
                    <wsi:ClaimType Optional='xs:boolean'?>xs:anyURI<wt:ClaimType>*
                </wst10:Claims>
                ...
            </wsp:RequestSecurityTokenTemplate>
            <wsp:Policy>
                <sp:RequireDerivedKeys/> ?
                <sp:RequireExternalReference/> ?
                <sp:RequireInternalReference/> ?
            </wsp:Policy> ?
        </sp:IssuedToken>
    </wsp:Policy>
</sp:EndorsingSupportingTokens>

다음은 위의 정책에 대한 WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT 필드의 매핑에 대해 설명합니다.

  • claimConstraints 필드는 위의 wsi:ClaimType 요소 내에 표시되는 클레임 형식 URI 집합을 확인하는 데 사용됩니다.

  • issuerAddress 필드는 위의 wsp:Issuer 요소에 해당하며, 이는 토큰을 발급할 수 있는 서비스의 WS_ENDPOINT_ADDRESS .

  • requestSecurityTokenTemplate 필드는 wsp:RequestSecurityTokenTemplate 요소의 자식 요소에 해당합니다.

WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT

이 섹션은 WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT 보안 바인딩 제약 조건이 지정된 경우에 적용됩니다. 이 경우 다음 정책 어설션이 사용됩니다.

<sp:EndorsingSupportingTokens...>
    <wsp:Policy>
        <sp:SecureConversationToken sp:IncludeToken=&quot;xs:anyURI&quot;? ...=&quot;&quot; >
            <wsp:Issuer>...</wsp:Issuer>?
            <wsp:Policy>
                <sp:RequireDerivedKeys.../>?
                <sp:RequireExternalUriReference.../>?
                <sp:SC10SecurityContextToken.../>? => WS_SECURE_CONVERSATION_VERSION_FEBRUARY_2005
                <sp:BootstrapPolicy... >?
                   <wsp:Policy> ...  </wsp:Policy> => WS_SECURITY_CONSTRAINTS
                </sp:BootstrapPolicy>
            </wsp:Policy>
        </wsp:SecureConversationToken>
    </wsp:Policy>
</sp:EndorsingSupportingTokens>

엔트로피 모드는 sp:Trust10> 어설션에 <의해 결정됩니다. <sp:RequireClientEntropy/> 및 <sp:RequireServerEntropy/> =>WS_SECURITY_KEY_ENTROPY_MODE_COMBINED<sp:RequireClientEntropy/> =>WS_SECURITY_KEY_ENTROPY_MODE_CLIENT_ONLY<sp:RequireServerEntropy/> =>WS_SECURITY_KEY_ENTROPY_MODE_SERVER_ONLY

WS_REQUEST_SECURITY_TOKEN_PROPERTY_TRUST_VERSION

이 섹션은 WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT 보안 바인딩 제약 조건이 지정된 경우에 적용됩니다. 다음 정책 어설션은 WS_TRUST_VERSION 및 관련 옵션을 식별하는 데 사용됩니다.

<sp:Trust10> => WS_TRUST_VERSION_FEBRUARY_2005
    <sp:Policy>
        <sp:MustSupportClientChallenge/> ?
        <sp:MustSupportServerChallenge/> ?
        <sp:RequireClientEntropy/> ?
        <sp:RequireServerEntropy/> ?
        <sp:MustSupportIssuedTokens/> ?
    </sp:Policy>
</sp:Trust10>

신뢰 버전은 속성 ID가 WS_REQUEST_SECURITY_TOKEN_PROPERTY_TRUST_VERSION WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT 사용하여 지정할 수 있습니다.

WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION

이 섹션은 다음 바인딩 제약 조건을 사용할 때 적용됩니다.

헤더 보안 버전( WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION 지정)은 다음 정책 어설션 중 하나에 의해 결정됩니다.

<wsp:Wss10> ... </wsp:Wss10> => WS_SECURITY_HEADER_VERSION_1_0
<wsp:Wss11> ... </wsp:Wss11> => WS_SECURITY_HEADER_VERSION_1_1

헤더 보안 레이아웃이 있는 제약 조건

이 섹션은 다음 바인딩 제약 조건을 사용할 때 적용됩니다.

보안 헤더 레이아웃( WS_SECURITY_PROPERTY_SECURITY_HEADER_LAYOUT 지정)은 다음 정책 어설션 중 하나에 의해 결정됩니다.

<sp:TransportBinding>
    <wsp:Policy>
        <sp:Layout>
            <sp:Lax.../> => WS_SECURITY_HEADER_LAYOUT_LAX
        </sp:Layout>
    </wsp:Policy>
</sp:TransportBinding>
<sp:TransportBinding>
    <wsp:Policy>
        <sp:Layout>
            <sp:Strict.../> => WS_SECURITY_HEADER_LAYOUT_STRICT
        </sp:Layout>
    </wsp:Policy>
</sp:TransportBinding>
<sp:TransportBinding>
    <wsp:Policy>
        <sp:Layout>
            <sp:LaxTsFirst.../> => WS_SECURITY_HEADER_LAYOUT_LAX_WITH_TIMESTAMP_FIRST
        </sp:Layout>
    </wsp:Policy>
</sp:TransportBinding>
<sp:TransportBinding>
    <wsp:Policy>
        <sp:Layout>
            <sp:LaxTsLast.../> => WS_SECURITY_HEADER_LAYOUT_LAX_WITH_TIMESTAMP_LAST
        </sp:Layout>
    </wsp:Policy>
</sp:TransportBinding>

타임스탬프 보안을 사용하는 제약 조건

이 섹션은 다음 바인딩 제약 조건을 사용할 때 적용됩니다.

타임스탬프가 보안 헤더에 포함되는지 여부( WS_SECURITY_PROPERTY_TIMESTAMP_USAGE 지정됨)는 다음 위치에 sp:IncludeTimestamp가 있는지 여부에 따라 결정됩니다.

<sp:TransportBinding>
    <wsp:Policy>
        <sp:IncludeTimestamp.../>
    </wsp:Policy>
</sp:TransportBinding>

sp:IncludeTimestamp 어설션이 있으면 정책의 값이 WS_SECURITY_TIMESTAMP_USAGE_ALWAYS.

sp:IncludeTimestamp 어설션이 없으면 정책의 값이 WS_SECURITY_TIMESTAMP_USAGE_NEVER.