Metadatenzuordnung

Der Inhalt eines Metadatendokuments wird der Metadaten-API auf die in den folgenden Abschnitten erläuterte Weise zugeordnet.

In dieser Dokumentation werden die folgenden Namespacepräfixe verwendet:

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

In den folgenden Abschnitten werden API-Konstrukte zusammen mit den Metadatenkonstrukten (WSDL oder Richtlinie) beschrieben, denen sie entsprechen.

Vertrautheit mit Metadatenspezifikationen wie WSDL und Richtlinie hilft ihnen beim Verständnis dieses Abschnitts.

Endpunktadresse

Die Adresse eines Endpunkts (siehe WS_ENDPOINT_ADDRESS) wird aus einem Erweiterbarkeitselement innerhalb des wsdl:port-Elements des WSDL-Dokuments abgerufen. Die folgenden Erweiterbarkeitselemente werden für die Angabe der Adresse unterstützt:

<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

Die Kanalbindung (siehe WS_CHANNEL_BINDING) wird wie folgt durch den Transport bestimmt, den die Soapbindung verwendet:

<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

Die Umschlagversion (siehe WS_CHANNEL_PROPERTY_ENVELOPE_VERSION) wird wie folgt durch die Seifenbindung bestimmt:

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

Adressierungsversion

Die Adressierungsversion (siehe WS_CHANNEL_PROPERTY_ADDRESSING_VERSION) wird durch die folgenden Assertionen in der Endpunktrichtlinie bestimmt:

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

Wenn keine Adressassertion vorhanden ist, wird von WS_ADDRESSING_VERSION_TRANSPORT ausgegangen.

Nachrichtenverschlüsselung

Die Codierung der Nachricht (siehe WS_CHANNEL_PROPERTY_ENCODING) wird durch die folgenden Assertionen in der Endpunktrichtlinie bestimmt:

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

Beachten Sie, dass die Binäre Codierungsrichtlinienassertion keine Informationen darüber enthält, ob die binäre Codierung sitzungsbehaftet oder sitzungslos ist. Dies wird durch die Einschränkung der Codierungseigenschaft bestimmt (die je nachdem geeignet sein sollte, ob die verwendete WS_CHANNEL_TYPE sitzungsbehaftet ist oder nicht).

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

Wenn keine der oben genannten Assertionen vorhanden ist, wird eine Textcodierung verwendet: WS_ENCODING_XML_UTF8, WS_ENCODING_XML_UTF16LE, WS_ENCODING_XML_UTF16BE.

Beachten Sie, dass die Richtlinie keine Informationen zum Zeichensatz für MTOM oder Textcodierungen enthält (unabhängig davon, ob es sich um UTF8, UTF16LE oder UTF16BE handelt). Der tatsächliche verwendete Zeichensatzwert wird durch die Einschränkung der Codierungseigenschaft bestimmt.

Einschränkungen mit HTTP-Headerauthentifizierung

Dieser Abschnitt gilt, wenn die WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT Sicherheitsbindungseinschränkung angegeben wird.

Diese Sicherheitsbindung wird in der Richtlinie durch verschiedene Assertionen angegeben, die sowohl angeben, dass die HTTP-Headerauthentifizierung verwendet werden soll, als auch, dass ein bestimmtes Authentifizierungsschema verwendet werden soll. Die Richtlinienassertionen entsprechen den Werten der WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_SCHEME wie folgt:

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

Einschränkungen mit SLL-Transportsicherheit

Dieser Abschnitt gilt, wenn die WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT Sicherheitsbindungseinschränkung angegeben wird. In diesem Fall werden die folgenden Richtlinienassertionen verwendet:

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

Einschränkungen mit SSPI-Transportsicherheit

Dieser Abschnitt gilt, wenn die WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT Sicherheitsbindungseinschränkung angegeben wird. In diesem Fall werden die folgenden Richtlinienassertionen verwendet:

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

Einschränkungen mit Transportsicherheit

Die WS_SECURITY_PROPERTY_TRANSPORT_PROTECTION_LEVEL-Eigenschaftseinschränkung kann angegeben werden, wenn eine der Sicherheitsbindungseinschränkungen angegeben wird:

Einschränkungen mit Kerberos-APREQ-Sicherheitsbindung

Dieser Abschnitt gilt, wenn die WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT Sicherheitsbindungseinschränkung angegeben wird. In diesem Fall werden die folgenden Richtlinienassertionen verwendet:

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

Einschränkungen mit Nachrichtensicherheitsbindung

Dieser Abschnitt gilt, wenn die WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT Sicherheitsbindungseinschränkung angegeben wird. In diesem Fall werden die folgenden Richtlinienassertionen verwendet:

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

WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT

Dieser Abschnitt gilt, wenn die WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT Sicherheitsbindungseinschränkung angegeben wird. In diesem Fall werden die folgenden Richtlinienassertionen verwendet:

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

WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT

Dieser Abschnitt gilt, wenn die WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT Sicherheitsbindungseinschränkung angegeben wird. In diesem Fall werden die folgenden Richtlinienassertionen verwendet:

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

Im Folgenden wird die Zuordnung der Felder der WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT zur obigen Richtlinie beschrieben:

  • Das Feld claimConstraints wird verwendet, um den Satz von Anspruchstyp-URIs zu überprüfen, die im wsi:ClaimType-Element oben angezeigt werden.

  • Das Feld issuerAddress entspricht dem wsp:Issuer-Element oben, das die WS_ENDPOINT_ADDRESS des Diensts ist, der das Token ausstellen kann.

  • Das RequestSecurityTokenTemplate-Feld entspricht den untergeordneten Elementen des wsp:RequestSecurityTokenTemplate-Elements.

WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT

Dieser Abschnitt gilt, wenn die WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT Sicherheitsbindungseinschränkung angegeben wird. In diesem Fall werden die folgenden Richtlinienassertionen verwendet:

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

Der Entropiemodus wird durch die <sp:Trust10-Assertion> bestimmt. <sp:RequireClientEntropy/> und <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

Dieser Abschnitt gilt, wenn die WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT Sicherheitsbindungseinschränkung angegeben wird. Die folgenden Richtlinienassertionen werden verwendet, um die WS_TRUST_VERSION und die zugeordneten Optionen zu identifizieren.

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

Die Vertrauensversion kann mithilfe des WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT mit der Eigenschafts-ID WS_REQUEST_SECURITY_TOKEN_PROPERTY_TRUST_VERSION angegeben werden.

WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION

Dieser Abschnitt gilt, wenn eine der folgenden Bindungseinschränkungen verwendet wird:

Die Headersicherheitsversion (wie durch WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION angegeben) wird durch eine der folgenden Richtlinienassertionen bestimmt:

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

Einschränkungen mit Headersicherheitslayout

Dieser Abschnitt gilt, wenn eine der folgenden Bindungseinschränkungen verwendet wird:

Das Sicherheitsheaderlayout (wie durch WS_SECURITY_PROPERTY_SECURITY_HEADER_LAYOUT angegeben) wird durch eine der folgenden Richtlinienassertionen bestimmt:

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

Einschränkungen mit Timestamp Security

Dieser Abschnitt gilt, wenn eine der folgenden Bindungseinschränkungen verwendet wird:

Ob ein Zeitstempel im Sicherheitsheader enthalten ist (wie durch WS_SECURITY_PROPERTY_TIMESTAMP_USAGE angegeben), wird durch das Vorhandensein von sp:IncludeTimestamp am folgenden Speicherort bestimmt:

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

Wenn die sp:IncludeTimestamp-Assertion vorhanden ist, wird der Wert aus der Richtlinie WS_SECURITY_TIMESTAMP_USAGE_ALWAYS.

Wenn die sp:IncludeTimestamp-Assertion nicht vorhanden ist, wird der Wert aus der Richtlinie WS_SECURITY_TIMESTAMP_USAGE_NEVER.