Сопоставление метаданных
Содержимое документа метаданных сопоставляется с API метаданных способами, описанными в следующих разделах.
В этой документации используются следующие префиксы пространства имен:
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
В последующих разделах описываются конструкции API, а также то, какие конструкции метаданных (WSDL или Policy) они соответствуют.
Знакомство с спецификациями метаданных, такими как WSDL и Политика, поможет понять этот раздел.
Адрес конечной точки
Адрес конечной точки (см. WS_ENDPOINT_ADDRESS) получается из элемента расширяемости в элементе wsdl:port документа WSDL. Для указания адреса поддерживаются следующие элементы расширяемости:
<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
Привязка канала (см. WS_CHANNEL_BINDING) определяется транспортом используемой привязки soap следующим образом:
<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
Версия конверта (см. WS_CHANNEL_PROPERTY_ENVELOPE_VERSION) определяется тем, какую привязку мыла используется следующим образом:
<wsdl:binding...>
<soap11:binding.../> => WS_ENVELOPE_VERSION_SOAP_1_1
</wsdl:binding>
<wsdl:binding...>
<soap12:binding.../> => WS_ENVELOPE_VERSION_SOAP_1_2
</wsdl:binding>
Адресация версии
Версия адресации (см. WS_CHANNEL_PROPERTY_ADDRESSING_VERSION) определяется следующими утверждениями в политике конечных точек:
<wsp:Policy...>
<wsa09p:UsingAddressing.../> => WS_ADDRESSING_VERSION_0_9
</wsp:Policy>
<wsp:Policy...>
<wsa10p:UsingAddressing.../> => WS_ADDRESSING_VERSION_1_0
</wsp:Policy>
Если утверждение адресации отсутствует, предполагается WS_ADDRESSING_VERSION_TRANSPORT .
Message Encoding
Кодировка сообщения (см. WS_CHANNEL_PROPERTY_ENCODING) определяется следующими утверждениями в политике конечной точки:
<wsp:Policy...>
<binp:BinaryEncoding.../> => WS_ENCODING_XML_BINARY_SESSION_1, WS_ENCODING_XML_BINARY_1
</wsp:Policy>
Обратите внимание, что утверждение политики двоичной кодировки не содержит сведения о том, является ли двоичная кодировка сеансовой или сеансовой. Это определяется ограничением свойства кодирования (которое должно быть уместно в соответствии с тем, является ли используемый WS_CHANNEL_TYPE сеансным или нет).
<wsp:Policy...>
<mtomp:OptimizedMimeSerialization.../> => WS_ENCODING_XML_MTOM_UTF8, WS_ENCODING_XML_MTOM_UTF16LE, WS_ENCODING_XML_MTOM_UTF16BE
</wsp:Policy>
Если ни ни из указанных выше утверждений нет, используется кодировка текста: WS_ENCODING_XML_UTF8, WS_ENCODING_XML_UTF16LE, WS_ENCODING_XML_UTF16BE.
Обратите внимание, что политика не содержит сведения о кодировке MTOM или текстовом кодировании (будь то UTF8, UTF16LE или UTF16BE). Фактическое используемое значение набора символов определяется ограничением свойства кодирования.
Ограничения с проверкой подлинности заголовка HTTP
Этот раздел применяется при указании ограничения привязки безопасности WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT .
Эта привязка безопасности указывается в политике различными утверждениями, которые указывают на то, что следует использовать проверку подлинности заголовка HTTP, и что следует использовать определенную схему проверки подлинности. Утверждения политики соответствуют значениям 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>
Ограничения с безопасностью транспорта SLL
Этот раздел применяется при указании ограничения привязки безопасности WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT . В этом случае используются следующие утверждения политики:
<wsp:Policy...>
<sp:TransportBinding...>
<wsp:Policy...>
<sp:TransportToken...>
<wsp:Policy...>
<sp:HttpsToken.../>
</wsp:Policy...>
</wsp:Policy>
</sp:TransportBinding...>
</wsp:Policy>
Ограничения с безопасностью транспорта SSPI
Этот раздел применяется при указании ограничения привязки безопасности WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT . В этом случае используются следующие утверждения политики:
<wsp:Policy...>
<sp:TransportBinding...>
<wsp:Policy...>
<sp:TransportToken...>
<wsp:Policy...>
<netf:WindowsTransportSecurity.../>
</wsp:Policy...>
</wsp:Policy>
</sp:TransportBinding...>
</wsp:Policy>
Ограничение безопасности транспорта
Ограничение свойства WS_SECURITY_PROPERTY_TRANSPORT_PROTECTION_LEVEL можно указать, если указаны какие-либо из ограничений привязки безопасности:
WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT
Значение политики всегда WS_PROTECTION_LEVEL_SIGN_AND_ENCRYPT.
WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT
Значение из политики указывается как часть утверждения WindowsTransportSecurity, как показано ниже.
<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
Значение политики всегда WS_PROTECTION_LEVEL_NONE.
Ограничения с привязкой безопасности Kerberos APREQ
Этот раздел применяется при указании ограничения привязки безопасности WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT . В этом случае используются следующие утверждения политики:
<sp:EndorsingSupportingTokens...>
<wsp:Policy>
<sp:KerberosToken>
<WssGssKerberosV5ApReqToken11.../>
</sp:KerberosToken>
</wsp:Policy>
</sp:EndorsingSupportingTokens>
Ограничения с привязкой безопасности сообщений
Этот раздел применяется при указании ограничения привязки безопасности WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT . В этом случае используются следующие утверждения политики:
<sp:SignedSupportingTokens>
<wsp:Policy>
<sp:UsernameToken.../>
</wsp:Policy>
</sp:SignedSupportingTokens>
WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT
Этот раздел применяется при указании ограничения привязки безопасности WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT . В этом случае используются следующие утверждения политики:
<sp:EndorsingSupportingTokens>
<wsp:Policy>
<sp:X509Token.../>
</wsp:Policy>
</sp:EndorsingSupportingTokens>
WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT
Этот раздел применяется при указании ограничения привязки безопасности WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT . В этом случае используются следующие утверждения политики:
<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>
Ниже описано сопоставление полей WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT с приведенной выше политикой.
Поле claimConstraints используется для проверки набора URI типа утверждения, который отображается в элементе wsi:ClaimType выше.
Поле issuerAddress соответствует приведенному выше элементу wsp:Issuer, который является WS_ENDPOINT_ADDRESS службы, которая может выдать маркер.
Поле requestSecurityTokenTemplate соответствует дочерним элементам элемента wsp:RequestSecurityTokenTemplate.
WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT
Этот раздел применяется при указании ограничения привязки безопасности WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT . В этом случае используются следующие утверждения политики:
<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>
Режим энтропии определяется утверждением <sp:Trust10> . <sp:RequireClientEntropy/> and <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
Этот раздел применяется при указании ограничения привязки безопасности WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT . Следующие утверждения политики используются для идентификации WS_TRUST_VERSION и связанных параметров.
<sp:Trust10> => WS_TRUST_VERSION_FEBRUARY_2005
<sp:Policy>
<sp:MustSupportClientChallenge/> ?
<sp:MustSupportServerChallenge/> ?
<sp:RequireClientEntropy/> ?
<sp:RequireServerEntropy/> ?
<sp:MustSupportIssuedTokens/> ?
</sp:Policy>
</sp:Trust10>
Версию доверия можно указать с помощью WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT с идентификатором свойства WS_REQUEST_SECURITY_TOKEN_PROPERTY_TRUST_VERSION.
WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION
Этот раздел применяется при использовании любого из следующих ограничений привязки:
- 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
Версия безопасности заголовка (как указано в WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION) определяется одним из следующих утверждений политики:
<wsp:Wss10> ... </wsp:Wss10> => WS_SECURITY_HEADER_VERSION_1_0
<wsp:Wss11> ... </wsp:Wss11> => WS_SECURITY_HEADER_VERSION_1_1
Ограничения с макетом безопасности заголовков
Этот раздел применяется при использовании любого из следующих ограничений привязки:
- 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
Макет заголовка безопасности (как указано в WS_SECURITY_PROPERTY_SECURITY_HEADER_LAYOUT) определяется одним из следующих утверждений политики:
<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>
Ограничения с безопасностью меток времени
Этот раздел применяется при использовании любого из следующих ограничений привязки:
- 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
Указывает, включена ли метка времени в заголовок безопасности (как указано в WS_SECURITY_PROPERTY_TIMESTAMP_USAGE) определяется наличием sp:IncludeTimestamp в следующем расположении:
<sp:TransportBinding>
<wsp:Policy>
<sp:IncludeTimestamp.../>
</wsp:Policy>
</sp:TransportBinding>
Если утверждение sp:IncludeTimestamp присутствует, значение политики WS_SECURITY_TIMESTAMP_USAGE_ALWAYS.
Если утверждение sp:IncludeTimestamp отсутствует, значение политики WS_SECURITY_TIMESTAMP_USAGE_NEVER.