Toewijzing van metagegevens
De inhoud van een metagegevensdocument komt overeen met de metagegevens-API zoals uitgelegd in de volgende secties.
De volgende naamruimtevoorvoegsels worden in deze documentatie gebruikt:
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 de volgende secties worden API-constructies beschreven, samen met de metagegevensconstructies (WSDL of Policy) waarmee ze overeenkomen.
Bekendheid met metagegevensspecificaties zoals WSDL en Beleid zal u helpen bij het begrijpen van deze sectie.
Eindpuntadres
Het adres van een eindpunt (zie WS_ENDPOINT_ADDRESS) wordt verkregen uit een uitbreidbaar element in het wsdl:port-element van het WSDL-document. De volgende uitbreidbaarheidselementen worden ondersteund voor het opgeven van het adres:
<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
De kanaalbinding (zie WS_CHANNEL_BINDING) wordt als volgt bepaald door het transport van de gebruikte soapbinding:
<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
De envelopversie (zie WS_CHANNEL_PROPERTY_ENVELOPE_VERSION) wordt als volgt bepaald door welke zeepbinding wordt gebruikt:
<wsdl:binding...>
<soap11:binding.../> => WS_ENVELOPE_VERSION_SOAP_1_1
</wsdl:binding>
<wsdl:binding...>
<soap12:binding.../> => WS_ENVELOPE_VERSION_SOAP_1_2
</wsdl:binding>
Adresseringsversie
De adresseringsversie (zie WS_CHANNEL_PROPERTY_ADDRESSING_VERSION) wordt bepaald door de volgende asserties in het eindpuntbeleid:
<wsp:Policy...>
<wsa09p:UsingAddressing.../> => WS_ADDRESSING_VERSION_0_9
</wsp:Policy>
<wsp:Policy...>
<wsa10p:UsingAddressing.../> => WS_ADDRESSING_VERSION_1_0
</wsp:Policy>
Als er geen adresseringsverklaring aanwezig is, wordt aangenomen dat WS_ADDRESSING_VERSION_TRANSPORT van toepassing is.
Berichtcodering
De codering van het bericht (zie WS_CHANNEL_PROPERTY_ENCODING) wordt bepaald door de volgende asserties in het eindpuntbeleid:
<wsp:Policy...>
<binp:BinaryEncoding.../> => WS_ENCODING_XML_BINARY_SESSION_1, WS_ENCODING_XML_BINARY_1
</wsp:Policy>
Houd er rekening mee dat de assertie van het binaire coderingsbeleid geen informatie bevat over of de binaire codering sessievol of sessieloos is. Dit wordt bepaald door de beperking van de coderingseigenschap (die geschikt moet zijn op basis van of de WS_CHANNEL_TYPE die wordt gebruikt, sessievol is of niet).
<wsp:Policy...>
<mtomp:OptimizedMimeSerialization.../> => WS_ENCODING_XML_MTOM_UTF8, WS_ENCODING_XML_MTOM_UTF16LE, WS_ENCODING_XML_MTOM_UTF16BE
</wsp:Policy>
Als geen van de bovenstaande beweringen aanwezig is, wordt er een tekstcodering gebruikt: WS_ENCODING_XML_UTF8, WS_ENCODING_XML_UTF16LE, WS_ENCODING_XML_UTF16BE.
Houd er rekening mee dat het beleid geen informatie bevat over de tekenset voor MTOM of tekstcoderingen (of het nu UTF8, UTF16LE of UTF16BE is). De werkelijke waarde van de tekenset die wordt gebruikt, wordt bepaald door de beperking van de coderingseigenschap.
Beperkingen met HTTP-headerverificatie
Deze sectie is van toepassing wanneer de beveiligingsbindingbeperking WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT is opgegeven.
Deze beveiligingsbinding wordt aangegeven in het beleid door verschillende asserties waarin staat dat zowel HTTP-headerverificatie moet worden gebruikt als dat een bepaald verificatieschema moet worden gebruikt. De beleidsverklaringen komen als volgt overeen met de waarden van de 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>
Beperkingen met SLL-transportbeveiliging
Deze sectie is van toepassing wanneer de beveiligingsbinding beperking WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT is opgegeven. In dit geval worden de volgende beleidsverklaringen gebruikt:
<wsp:Policy...>
<sp:TransportBinding...>
<wsp:Policy...>
<sp:TransportToken...>
<wsp:Policy...>
<sp:HttpsToken.../>
</wsp:Policy...>
</wsp:Policy>
</sp:TransportBinding...>
</wsp:Policy>
Beperkingen met SSPI-transportbeveiliging
Deze sectie is van toepassing wanneer de WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT beveiligingsbindingsbeperking is opgegeven. In dit geval worden de volgende beleidsverklaringen gebruikt:
<wsp:Policy...>
<sp:TransportBinding...>
<wsp:Policy...>
<sp:TransportToken...>
<wsp:Policy...>
<netf:WindowsTransportSecurity.../>
</wsp:Policy...>
</wsp:Policy>
</sp:TransportBinding...>
</wsp:Policy>
Beperkingen met transportbeveiliging
De WS_SECURITY_PROPERTY_TRANSPORT_PROTECTION_LEVEL eigenschapsbeperking kan worden opgegeven als een van de beveiligingsbindingsbeperkingen is opgegeven:
WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT
De waarde van een policy is altijd WS_PROTECTION_LEVEL_SIGN_AND_ENCRYPT.
WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT
De waarde van het beleid wordt als volgt opgegeven als onderdeel van de WindowsTransportSecurity-assertie:
<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
De waarde van het beleidselement is altijd WS_PROTECTION_LEVEL_NONE.
Beperkingen met Kerberos APREQ-beveiligingsbinding
Deze sectie is van toepassing wanneer de WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT beveiligingsbinding beperking wordt gespecificeerd. In dit geval worden de volgende beleidsverklaringen gebruikt:
<sp:EndorsingSupportingTokens...>
<wsp:Policy>
<sp:KerberosToken>
<WssGssKerberosV5ApReqToken11.../>
</sp:KerberosToken>
</wsp:Policy>
</sp:EndorsingSupportingTokens>
Beperkingen van beveiligingsbinding voor berichten
Deze sectie is van toepassing wanneer de WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT beveiligingsbindingsbeperking is opgegeven. In dit geval worden de volgende beleidsverklaringen gebruikt:
<sp:SignedSupportingTokens>
<wsp:Policy>
<sp:UsernameToken.../>
</wsp:Policy>
</sp:SignedSupportingTokens>
WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT
Deze sectie is van toepassing wanneer de WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT beveiligingsbindingsbeperking is opgegeven. In dit geval worden de volgende beleidsverklaringen gebruikt:
<sp:EndorsingSupportingTokens>
<wsp:Policy>
<sp:X509Token.../>
</wsp:Policy>
</sp:EndorsingSupportingTokens>
WS_UITGEGEVEN_TOKEN_BERICHT_BEVEILIGING_VERBINDINGS_VOORWAARDE
Deze sectie is van toepassing wanneer de WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT beveiligingsbindingsbeperking is opgegeven. In dit geval worden de volgende beleidsverklaringen gebruikt:
<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>
Hier volgt een beschrijving van de toewijzing van velden van de WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT aan het bovenstaande beleid:
Het veld claimConstraints wordt gebruikt om de set claimtype-URI's te controleren die worden weergegeven in het bovenstaande element wsi:ClaimType.
Het veld issuerAddress komt overeen met het bovenstaande wsp:Issuer-element. Dit is de WS_ENDPOINT_ADDRESS van de service die het token kan uitgeven.
Het veld requestSecurityTokenTemplate komt overeen met de onderliggende elementen van het element wsp:RequestSecurityTokenTemplate.
WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT
Deze sectie is van toepassing wanneer de WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT beveiligingsbindingsbeperking is opgegeven. In dit geval worden de volgende beleidsverklaringen gebruikt:
<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>
De entropiemodus wordt bepaald door de <sp:Trust10> assertie. <sp:RequireClientEntropy/> en <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_AANVRAAG_BEVEILIGINGS_TOKEN_EIGENSCHAP_TRUST_VERSIE
Deze sectie is van toepassing wanneer de WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT beveiligingsbindingsbeperking is opgegeven. De volgende beleidsverklaringen worden gebruikt om de WS_TRUST_VERSION en de bijbehorende opties te identificeren.
<sp:Trust10> => WS_TRUST_VERSION_FEBRUARY_2005
<sp:Policy>
<sp:MustSupportClientChallenge/> ?
<sp:MustSupportServerChallenge/> ?
<sp:RequireClientEntropy/> ?
<sp:RequireServerEntropy/> ?
<sp:MustSupportIssuedTokens/> ?
</sp:Policy>
</sp:Trust10>
De trustversie kan worden gespecificeerd met de WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT met een eigenschaps-id van WS_REQUEST_SECURITY_TOKEN_PROPERTY_TRUST_VERSION.
WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION
Deze sectie is van toepassing wanneer een van de volgende bindingsbeperkingen wordt gebruikt:
- 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
De beveiligingsversie van de header (zoals opgegeven door WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION) wordt bepaald door een van de volgende beleidsverklaringen:
<wsp:Wss10> ... </wsp:Wss10> => WS_SECURITY_HEADER_VERSION_1_0
<wsp:Wss11> ... </wsp:Wss11> => WS_SECURITY_HEADER_VERSION_1_1
Beperkingen met de beveiligingsindeling voor kopteksten
Deze sectie is van toepassing wanneer een van de volgende bindingsbeperkingen wordt gebruikt:
- 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
De indeling van de beveiligingskoptekst (zoals opgegeven door WS_SECURITY_PROPERTY_SECURITY_HEADER_LAYOUT) wordt bepaald door een van de volgende beleidsverklaringen:
<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>
Beperkingen met tijdstempelbeveiliging
Deze sectie is van toepassing wanneer een van de volgende bindingsbeperkingen wordt gebruikt:
- 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
Of een tijdstempel al dan niet is opgenomen in de beveiligingsheader (zoals opgegeven door WS_SECURITY_PROPERTY_TIMESTAMP_USAGE) wordt bepaald door de aanwezigheid van de sp:IncludeTimestamp op de volgende locatie:
<sp:TransportBinding>
<wsp:Policy>
<sp:IncludeTimestamp.../>
</wsp:Policy>
</sp:TransportBinding>
Als de sp:IncludeTimestamp-assertie aanwezig is, wordt de waarde vanuit het beleid WS_SECURITY_TIMESTAMP_USAGE_ALWAYS.
Als de assertie sp:IncludeTimestamp niet aanwezig is, komt de waarde vanuit het beleid op WS_SECURITY_TIMESTAMP_USAGE_NEVER.