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="http://schemas.microsoft.com/soap/tcp"/> => WS_TCP_CHANNEL_BINDING
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/> => 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:
WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT
Der Wert aus der Richtlinie ist immer WS_PROTECTION_LEVEL_SIGN_AND_ENCRYPT.
WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT
Der Wert aus der Richtlinie wird wie folgt als Teil der WindowsTransportSecurity-Assertion angegeben:
<netf:WindowsTransportSecurity...>None</netf:WindowsTransportSecurity> => WS_PROTECTION_LEVEL_NONE
<netf:WindowsTransportSecurity...>Sign</netf:WindowsTransportSecurity> => WS_PROTECTION_LEVEL_SIGN
<netf:WindowsTransportSecurity...>EncryptAndSign</netf:WindowsTransportSecurity> => WS_PROTECTION_LEVEL_SIGN_AND_ENCRYPT
WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT
Der Wert aus der Richtlinie ist immer WS_PROTECTION_LEVEL_NONE.
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="xs:anyURI"? ...="" >
<wsp:Issuer>...</wsp:Issuer>?
<wsp:RequestSecurityTokenTemplate TrustVersion='xs:anyURI"?>
...
<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="xs:anyURI"? ...="" >
<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:
- WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT
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:
- WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT
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:
- WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT
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.