メタデータ マッピング
メタデータ ドキュメントの内容は、次のセクションで説明する方法でメタデータ 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 や Policy などのメタデータ仕様に関する知識は、このセクションの理解に役立つでしょう。
エンドポイント アドレス
エンドポイントのアドレス ( 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>
エントロピ モードは、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>
信頼バージョンは、プロパティ ID が 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>
Timestamp Security を使用した制約
このセクションは、次のいずれかのバインド制約が使用される場合に適用されます。
- 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。