Udostępnij za pośrednictwem


Mapowanie metadanych

Zawartość dokumentu metadanych odpowiada interfejsowi API metadanych w sposób opisany w poniższych sekcjach.

W tej dokumentacji są używane następujące prefiksy przestrzeni nazw:

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

W kolejnych sekcjach opisano konstrukcje związane z interfejsem API oraz odpowiadające im konstrukcje metadanych (WSDL lub Policy).

Znajomość specyfikacji metadanych, takich jak WSDL i Zasady, pomoże zrozumieć tę sekcję.

Adres punktu końcowego

Adres punktu końcowego (zobacz WS_ENDPOINT_ADDRESS) jest uzyskiwany z elementu rozszerzalności w elemecie w pliku wsdl:port dokumentu WSDL. Następujące elementy rozszerzalności są obsługiwane w celu określenia adresu:

<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

Powiązanie kanału (patrz WS_CHANNEL_BINDING) jest określane przez transport używanego powiązania mydła w następujący sposób:

<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

Wersja koperty (patrz WS_CHANNEL_PROPERTY_ENVELOPE_VERSION) jest określana przez to, które powiązanie mydła jest używane w następujący sposób:

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

Wersja adresowania

Wersja adresowania (zobacz WS_CHANNEL_PROPERTY_ADDRESSING_VERSION) jest określana przez następujące asercje w polityce punktu końcowego.

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

Jeśli asercji adresowania nie ma, przyjmuje się, że WS_ADDRESSING_VERSION_TRANSPORT.

Kodowanie komunikatów

Kodowanie komunikatu (zobacz WS_CHANNEL_PROPERTY_ENCODING) jest określane przez następujące asercje w polityce punktu końcowego.

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

Należy pamiętać, że asercji zasad kodowania binarnego nie zawiera informacji o tym, czy kodowanie binarne jest sesjowe, czy bez sesji. Jest to określane przez ograniczenie właściwości kodowania (które powinno być odpowiednie w zależności od tego, czy używany WS_CHANNEL_TYPE jest sesji, czy nie).

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

Jeśli żadne z powyższych asercji nie jest obecne, używane jest kodowanie tekstu: WS_ENCODING_XML_UTF8, WS_ENCODING_XML_UTF16LE, WS_ENCODING_XML_UTF16BE.

Należy pamiętać, że zasady nie zawierają informacji o zestawie znaków dla kodowania MTOM lub tekstu (niezależnie od tego, czy jest to UTF8, UTF16LE czy UTF16BE). Wartość rzeczywistego zestawu znaków jest określana przez ograniczenie właściwości kodowania.

Ograniczenia z uwierzytelnianiem nagłówka HTTP

Sekcja ta ma zastosowanie, gdy ograniczenie powiązania zabezpieczeń WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT zostało określone.

To powiązanie zabezpieczeń jest wskazywane w zasadach przez różne asercje, które stwierdzają, że należy użyć zarówno uwierzytelniania nagłówka HTTP, jak i określonego schematu uwierzytelniania. Asercja zasad odpowiada wartościom WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_SCHEME w następujący sposób:

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

Ograniczenia w bezpieczeństwie transportu SSL

Ta sekcja ma zastosowanie, gdy określono ograniczenie powiązania zabezpieczeń WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT. W tym przypadku są używane następujące asercji zasad:

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

Ograniczenia z zabezpieczeniami transportu SSPI

Ta sekcja ma zastosowanie, gdy określono ograniczenie powiązania zabezpieczeń WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT. W tym przypadku są używane następujące asercji zasad:

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

Ograniczenia w zakresie zabezpieczeń transportu

Ograniczenie właściwości WS_SECURITY_PROPERTY_TRANSPORT_PROTECTION_LEVEL można określić, jeśli podano jakiekolwiek ograniczenia powiązania zabezpieczeń.

Ograniczenia związane z powiązaniem zabezpieczeń protokołu Kerberos APREQ

Ta sekcja ma zastosowanie, gdy określono ograniczenie powiązania zabezpieczeń WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT. W tym przypadku są używane następujące asercji zasad:

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

Ograniczenia związane z powiązaniem zabezpieczeń wiadomości

Ta sekcja ma zastosowanie, gdy określono ograniczenie powiązania zabezpieczeń WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT. W tym przypadku są używane następujące asercji zasad:

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

OGRANICZENIE ZWIĄZANIA BEZPIECZEŃSTWA WIADOMOŚCI WS_CERT

Ta sekcja ma zastosowanie w przypadku określenia ograniczenia powiązania zabezpieczeń WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT. W tym przypadku są używane następujące asercji zasad:

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

WS_WIADOMOŚĆ_Z_OBOWIĄZKIEM_BEZPIECZEŃSTWA_TOKENU

Ta sekcja ma zastosowanie, gdy określono ograniczenie wiązania zabezpieczeń WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT. W tym przypadku są używane następujące asercji zasad:

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

Poniżej opisano mapowanie pól WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT do powyższej polityki:

  • Pole ClaimConstraints służy do weryfikowania zestawu identyfikatorów URI typu oświadczenia, które pojawiają się w elemencie wsi:ClaimType powyżej.

  • Pole issuerAddress odpowiada powyższemu elementowi wsp:Issuer, odpowiadającemu WS_ENDPOINT_ADDRESS usługi pozwalającej na wystawianie tokenów.

  • Pole requestSecurityTokenTemplate odpowiada elementom podrzędnym elementu wsp:RequestSecurityTokenTemplate.

WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT

Ta sekcja ma zastosowanie, gdy ograniczenie powiązania zabezpieczeń WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT jest określone. W tym przypadku są używane następujące asercji zasad:

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

Tryb entropii jest określany przez asercję <sp:Trust10>. <sp:RequireClientEntropy/> i <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

WŁASNOŚĆ_TOKENA_BEZPIECZEŃSTWA_WS_WERSJA_ZAUFANIA

Ta sekcja ma zastosowanie w przypadku określenia ograniczenia powiązania zabezpieczeń WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT. Następujące asercje zasad służą do identyfikowania WS_TRUST_VERSION i skojarzonych opcji.

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

Wersję zaufania można określić przy użyciu WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT o identyfikatorze właściwości WS_REQUEST_SECURITY_TOKEN_PROPERTY_TRUST_VERSION.

WS_SECURITY_PROPERTY_WERSJA_NAGŁÓWKA_BEZPIECZEŃSTWA

Ta sekcja ma zastosowanie, gdy są używane dowolne z następujących ograniczeń powiązań:

Wersja zabezpieczeń nagłówka (określona przez WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION) jest określana przez jedno z następujących asercji zasad:

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

Ograniczenia z układem zabezpieczeń nagłówka

Ta sekcja ma zastosowanie, gdy są używane dowolne z następujących ograniczeń powiązań:

Układ nagłówka zabezpieczeń (określony przez WS_SECURITY_PROPERTY_SECURITY_HEADER_LAYOUT) jest określany przez jedno z następujących asercji zasad:

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

Ograniczenia związane z bezpieczeństwem znaczników czasu

Ta sekcja ma zastosowanie, gdy są używane dowolne z następujących ograniczeń powiązań:

To, czy znacznik czasu jest uwzględniony w nagłówku zabezpieczeń (określonym przez WS_SECURITY_PROPERTY_TIMESTAMP_USAGE), zależy od obecności sp:IncludeTimestamp w następującej lokalizacji:

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

Jeśli asercja sp:IncludeTimestamp jest obecna, wartość z polityki to WS_SECURITY_TIMESTAMP_USAGE_ALWAYS.

Jeśli asercji sp:IncludeTimestamp nie ma, wartość polityki jest WS_SECURITY_TIMESTAMP_USAGE_NEVER.