Bagikan melalui


Pemetaan Metadata

Isi dokumen metadata dipetakan ke API metadata dengan cara-cara yang dijelaskan di bagian berikut.

Awalan namespace berikut digunakan di seluruh dokumentasi ini:

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

Bagian berikutnya menjelaskan konstruksi API bersama dengan konstruksi metadata apa (WSDL atau Kebijakan) yang sesuai dengannya.

Keakraban dengan spesifikasi metadata seperti WSDL dan Kebijakan akan membantu memahami bagian ini.

Alamat titik akhir

Alamat titik akhir (lihat WS_ENDPOINT_ADDRESS) diperoleh dari elemen ekstensibilitas dalam elemen wsdl:port dari dokumen WSDL. Elemen ekstensibilitas berikut didukung untuk menentukan alamat:

<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

Pengikatan saluran (lihat WS_CHANNEL_BINDING) ditentukan oleh pengikatan sabun yang digunakan, sebagai berikut:

<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

Versi amplop (lihat WS_CHANNEL_PROPERTY_ENVELOPE_VERSION) ditentukan oleh pengikatan sabun mana yang digunakan, sebagai berikut:

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

Versi Alamat

Versi pengalamatan (lihat WS_CHANNEL_PROPERTY_ADDRESSING_VERSION) ditentukan oleh pernyataan berikut dalam kebijakan titik akhir:

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

Jika pernyataan alamat tidak ada, maka WS_ADDRESSING_VERSION_TRANSPORT diasumsikan.

Pengodean Pesan

Pengodean pesan (lihat WS_CHANNEL_PROPERTY_ENCODING) ditentukan oleh pernyataan berikut dalam kebijakan titik akhir:

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

Perhatikan bahwa pernyataan kebijakan pengodean biner tidak menyertakan informasi tentang apakah pengodean biner bersifat sesi atau tanpa sesi. Ini ditentukan oleh batasan properti pengodean (yang harus sesuai dengan apakah WS_CHANNEL_TYPE yang digunakan bersifat sesi atau tidak).

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

Jika tidak ada pernyataan di atas, maka pengodean teks digunakan: WS_ENCODING_XML_UTF8, WS_ENCODING_XML_UTF16LE, WS_ENCODING_XML_UTF16BE.

Perhatikan bahwa kebijakan tidak menyertakan informasi tentang karakter yang ditetapkan untuk pengodean MTOM atau teks (baik UTF8, UTF16LE, atau UTF16BE). Nilai set karakter aktual yang digunakan ditentukan oleh batasan properti pengkodean.

Batasan dengan Autentikasi Header HTTP

Bagian ini berlaku ketika batasan pengikatan keamanan WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT ditentukan.

Pengikatan keamanan ini ditunjukkan dalam kebijakan oleh pernyataan yang berbeda yang menyatakan bahwa autentikasi header HTTP harus digunakan, dan bahwa skema autentikasi tertentu harus digunakan. Pernyataan kebijakan berkaitan dengan nilai-nilai dari WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_SCHEME sebagai berikut:

<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>

Batasan dengan Keamanan Transportasi SLL

Bagian ini berlaku ketika batasan pengikatan keamanan WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT ditentukan. Pernyataan kebijakan berikut digunakan dalam kasus ini:

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

Batasan pada Keamanan Transport SSPI

Bagian ini berlaku ketika batasan pengikatan keamanan WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT ditentukan. Pernyataan kebijakan berikut digunakan dalam kasus ini:

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

Kendala dalam Keamanan Transportasi

Batasan properti WS_SECURITY_PROPERTY_TRANSPORT_PROTECTION_LEVEL dapat ditentukan jika salah satu batasan pengikatan keamanan ditentukan:

Batasan dengan Pengikatan Keamanan APREQ Kerberos

Bagian ini berlaku ketika batasan pengikatan keamanan WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT ditentukan. Pernyataan kebijakan berikut digunakan dalam kasus ini:

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

Batasan dengan Pengikatan Keamanan Pesan

Bagian ini berlaku ketika batasan pengikatan keamanan WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT ditentukan. Pernyataan kebijakan berikut digunakan dalam kasus ini:

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

WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT

Bagian ini berlaku ketika batasan pengikatan keamanan WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT ditentukan. Pernyataan kebijakan berikut digunakan dalam kasus ini:

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

Pengikatan Keamanan Pesan WS_DITERBITKAN_TOKEN_CONSTRAINT

Bagian ini berlaku ketika batasan pengikatan keamanan WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT ditentukan. Pernyataan kebijakan berikut digunakan dalam kasus ini:

<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>

Berikut ini menjelaskan pemetaan bidang WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT ke kebijakan di atas:

  • Bidang claimConstraints digunakan untuk memverifikasi kumpulan URI jenis klaim yang muncul dalam elemen wsi:ClaimType di atas.

  • Bidang issuerAddress sesuai dengan elemen wsp:Issuer di atas, yang merupakan WS_ENDPOINT_ADDRESS layanan yang dapat mengeluarkan token.

  • Bidang requestSecurityTokenTemplate sesuai dengan elemen turunan elemen wsp:RequestSecurityTokenTemplate.

WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT

Bagian ini berlaku ketika batasan pengikatan keamanan WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT ditentukan. Pernyataan kebijakan berikut digunakan dalam kasus ini:

<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>

Mode entropi ditentukan oleh pernyataan><sp:Trust10. <sp:RequireClientEntropy/> dan <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_VERSI_KEPERCAYAAN

Bagian ini berlaku ketika batasan pengikatan keamanan WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT ditentukan. Pernyataan kebijakan berikut digunakan untuk mengidentifikasi opsi WS_TRUST_VERSION dan terkait.

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

Versi kepercayaan dapat ditentukan menggunakan WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT dengan properti id WS_REQUEST_SECURITY_TOKEN_PROPERTY_TRUST_VERSION.

WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION

Bagian ini berlaku ketika salah satu batasan pengikatan berikut digunakan:

Versi keamanan header (seperti yang ditentukan oleh WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION) ditentukan oleh salah satu pernyataan kebijakan berikut:

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

Pembatasan pada Tata Letak Keamanan Header

Bagian ini berlaku ketika salah satu batasan pengikatan berikut digunakan:

Tata letak header keamanan (seperti yang ditentukan oleh WS_SECURITY_PROPERTY_SECURITY_HEADER_LAYOUT) ditentukan oleh salah satu pernyataan kebijakan berikut:

<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>

Pembatasan dengan Keamanan Cap Waktu

Bagian ini berlaku ketika salah satu batasan pengikatan berikut digunakan:

Apakah tanda waktu disertakan dalam header keamanan (seperti yang ditentukan oleh WS_SECURITY_PROPERTY_TIMESTAMP_USAGE) ditentukan oleh keberadaan sp:IncludeTimestamp di lokasi berikut:

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

Jika pernyataan sp:IncludeTimestamp ada, maka nilai dari kebijakan adalah WS_SECURITY_TIMESTAMP_USAGE_ALWAYS.

Jika pernyataan sp:IncludeTimestamp tidak ada, nilai kebijakan adalah WS_SECURITY_TIMESTAMP_USAGE_NEVER.