中繼資料對應
元資料檔案的內容會以下列各節中所述的方式對應至中繼資料 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 或原則) 對應的內容。
熟悉中繼資料規格,例如 WSDL 和原則有助於瞭解本節。
端點位址
端點位址 (請參閱 WS_ENDPOINT_ADDRESS) 是從 WSDL 檔案的 wsdl:port 元素內的擴充性元素取得。 下列擴充性元素支援指定位址:
<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) 取決於使用哪一個 soap 系結,如下所示:
<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 。
訊息編碼
訊息的編碼方式 (請參閱 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 欄位可用來驗證出現在上述 wsi:ClaimType 元素內的宣告類型 URI 集合。
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>
Entropy 模式是由 < sp:Trust10 > 判斷提示所決定。 <sp:RequireClientEntropy/ > 和 < 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_TRUST_VERSION 的 WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT來指定信任版本。
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。