<wsFederationHttpBinding>
WS フェデレーションをサポートするバインディングを定義します。
<system.serviceModel>
<bindings>
<wsFederationHttpBinding>
<wsFederationHttpBinding>
<binding
bypassProxyOnLocal="Boolean"
closeTimeout="TimeSpan"
hostNameComparisonMode="StrongWildcard/Exact/WeakWildcard"
maxBufferPoolSize="integer"
maxReceivedMessageSize="integer"
messageEncoding="Text/Mtom"
name="string"
openTimeout="TimeSpan"
privacyNoticeAt="Uri"
privacyNoticeVersion="Integer"
proxyAddress="Uri"
receiveTimeout="TimeSpan"
sendTimeout="TimeSpan"
textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/ Utf8TextEncoding"
transactionFlow="Boolean"
useDefaultWebProxy="Boolean">
<security mode="None/Message/TransportWithMessageCredential">
<message
algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
issuedTokenType="string"
issuedKeyType="SymmetricKey/PublicKey"
negotiateServiceCredential="Boolean" >
<claimTypeRequirements>
<add claimType="URI"
isOptional="Boolean" />
</claimTypeRequirements>
<issuer address="Uri" >
<headers>
<add name="String"
namespace="String" />
</headers>
<identity>
<certificate encodedValue="String"/>
<certificateReference findValue="String"
isChainIncluded="Boolean"
storeName="AddressBook/AuthRoot/CertificateAuthority/Disallowed/My/Root/TrustedPeople/TrustedPublisher"
storeLocation="LocalMachine/CurrentUser"
X509FindType=System.Security.Cryptography.X509certificates.X509findtype/>
<dns value="String"/>
<rsa value="String"/>
<servicePrincipalName value="String"/>
<usePrincipalName value="String"/>
</identity>
</issuer>
<issuerMetadata address=String" >
<headers>
<add name="String"
namespace="String" />
</headers>
<identity>
<certificate encodedValue="String"/>
<certificateReference findValue="String"
isChainIncluded="Boolean"
storeName="AddressBook/AuthRoot/CertificateAuthority/Disallowed/My/Root/TrustedPeople/TrustedPublisher"
storeLocation="LocalMachine/CurrentUser"
x509FindType=System.Security.Cryptography.X509certificates.X509findtype/>
<dns value="String"/>
<rsa value="String"/>
<servicePrincipalName value="String"/>
<usePrincipalName value="String"/>
</identity>
</issuerMetadata>
<tokenRequestParameters>
<xmlElement>
</xmlElement>
</tokenRequestParameters>
</message>
</security>
<reliableSession ordered="Boolean"
inactivityTimeout="TimeSpan"
enabled="Boolean" />
<readerQuotas maxDepth="integer"
maxStringContentLength="integer"
maxByteArrayContentLength="integer"
maxBytesPerRead="integer"
maxNameTableCharCount="integer" />
</binding>
</wsFederationBinding>
属性および要素
属性
属性 | 説明 |
---|---|
bypassProxyOnLocal |
ローカル アドレスでプロキシ サーバーをバイパスするかどうかを示すブール値。既定値は false です。 |
closeTimeout |
クローズ操作が完了するまでの期間を指定する TimeSpan 値。この値は必ず Zero 以上である必要があります。既定値は 00:01:00 です。 |
hostnameComparisonMode |
URI の解析に使用する HTTP ホスト名比較モードを指定します。この属性は HostnameComparisonMode 型で、URI が一致したときにサービスへのアクセスにホスト名を使用するかどうかを指定します。既定値は StrongWildcard で、一致しているホスト名を無視します。 |
maxBufferPoolSize |
このバインディングに使用するバッファ プール サイズの上限を指定する整数。既定は 524,288 バイト (512 * 1024) です。Windows Communication Foundation (WCF) では、多くの部分でバッファを使用します。使用するたびに毎回バッファを作成および破棄すると負荷が高くなります。バッファのガベージ コレクションも同様です。バッファ プールを使用すると、バッファをプールから取得して使用し、作業が終わったらプールに戻すことができます。これで、バッファの作成と破棄のオーバーヘッドを回避できます。 |
maxReceivedMessageSize |
チャネルで受信可能な最大メッセージ サイズ (ヘッダーを含む) をバイト単位で指定する正の整数が、このバインディングを使用して設定されました。この制限を超えるメッセージの送信者が、SOAP エラーを受信します。受信者がメッセージをドロップし、トレース ログにそのイベントのエントリを作成します。既定値は 65536 です。 |
messageEncoding |
メッセージのエンコードに使用されるエンコーダを定義します。有効な値は次のとおりです。
既定値は Text です。 この属性は WSMessageEncoding 型です。 |
name |
バインディングの設定名を格納する文字列です。この値は、バインディングの ID として使用されるため、一意にする必要があります。 |
openTimeout |
実行中の操作が完了するまでの時間間隔を指定する TimeSpan 値です。この値は必ず Zero 以上である必要があります。既定値は 00:01:00 です。 |
privactyNoticeAt |
プライバシーに関する声明の場所を示す URI を指定する文字列。 |
privactyNoticeVersion |
現在のプライバシーに関する声明のバージョンを指定する整数。 |
proxyAddress |
HTTP プロキシのアドレスを指定する URI。useDefaultWebProxy が true の場合、この設定を null にする必要があります。既定値は null です。 |
receiveTimeout |
受信操作が完了するまでの時間間隔を指定する TimeSpan 値です。この値は必ず Zero 以上である必要があります。既定値は 00:10:00 です。 |
sendTimeout |
送信操作が完了するまでの時間間隔を指定する TimeSpan 値です。この値は必ず Zero 以上である必要があります。既定値は 00:01:00 です。 |
textEncoding |
バインディングでメッセージの発行に使用される文字セット エンコーディングを設定します。有効な値は次のとおりです。
既定値は UTF8 です。この属性は Encoding 型です。 |
transactionFlow |
バインディングが WS-Transactions のフローをサポートするかどうかを指定するブール値です。既定値は false です。 |
useDefaultWebProxy |
システムの自動設定 HTTP プロキシを使用するかどうかを示すブール値。この属性が true の場合、プロキシ アドレスを null (つまり、設定しない) にする必要があります。既定値は true です。 |
子要素
要素 | 説明 |
---|---|
メッセージのセキュリティ設定を定義します。この要素は WSFederationHttpSecurityElement 型です。 |
|
このバインディングを使用して設定されるエンドポイントにより処理可能な、SOAP メッセージの複雑さに対する制約を定義します。この要素は XmlDictionaryReaderQuotasElement 型です。 |
|
チャネルのエンドポイント間に信頼できるセッションを確立するかどうかを指定します。 |
親要素
要素 | 説明 |
---|---|
この要素には、標準バインディングおよびカスタム バインディングのコレクションが保持されます。各エントリは、それぞれの name によって識別されます。サービスは、name を使用してバインディングをリンクすることにより、バインディングを使用します。 |
解説
フェデレーションは、複数のシステム間で認証と承認用の ID を共有する能力です。これらの ID は、ユーザーまたはコンピュータを参照できます。フェデレーション HTTP は、SOAP セキュリティと混合モード セキュリティをサポートしますが、トランスポート セキュリティの単独使用はサポートしません。このバインディングは、WS-Federation プロトコルに対して Windows Communication Foundation (WCF) サポートを提供します。このバインディングで構成されたサービスは、HTTP トランスポートを使用する必要があります。
バインディングは、バインディング要素のスタックで構成されます。
wsFederationHttpBinding のバインディング要素のスタックは、wsHttpBinding に含まれる
スタックと同じです (<wsFederationHttpBinding> の <security> が既定値の Message に設定されている場合)。
wsFederationHttpBinding は、<wsFederationHttpBinding> の <message> 要素 のメッセージ セキュリティ設定の詳細を制御します。いったんバインディングが作成されると、そのバインディングで使用されるセキュリティは変更できなくなるため、<wsFederationHttpBinding> の <security> 要素では get アクセスしか提供されないことに注意してください。
wsFederationHttpBinding は、プライバシーに関する声明の場所を示す URI の設定と取得を行う privactyNoticeAt 属性も提供します。
ポリシーをセキュリティで保護することが、フェデレーション シナリオでは特に重要です。ポリシーを悪意のあるユーザーから保護するには、HTTPS などのセキュリティ形式の使用をお勧めします。
フェデレーション シナリオでこのバインディングを使用する場合は、発行済み (SAML) トークンの暗号化に使用するキー、トークンに入れるクレームの種類などの重要情報がサービス ポリシーに含まれる可能性があります。これが改ざんされると、攻撃者は発行済みトークンのキーを発見してさらに改ざんを行ったり、情報を暴露したりなどの悪意ある行動を取る可能性があります。このような行為を防ぐには、(HTTPS などを使用して) ポリシーをセキュリティで保護し、サービスから安全に取得する必要があります。
このバインディングの詳細については、「How to: Create a WSFederationHttpBinding」を参照してください。
例
<configuration>
<system.ServiceModel>
<bindings>
<wsFederationHttpBinding>
<binding name="test"
bypassProxyOnLocal="false"
transactionFlow="false"
hostNameComparisonMode="WeakWildcard"
maxReceivedMessageSize="1000"
messageEncoding="Mtom"
proxyAddress="http://foo/bar"
textEncoding="Utf16TextEncoding"
useDefaultWebProxy="false">
<reliableSession ordered="false"
inactivityTimeout="00:02:00" enabled="true" />
<security mode="None">
<message negotiateServiceCredential="false"
algorithmSuite="Aes128"
issuedTokenType="saml"
issuedKeyType="PublicKey">
<issuer address="https://localhost/Sts" />
</message>
</security>
</binding>
</wsFederationBinding>
</bindings>
</system.ServiceModel>
</configuration>
関連項目
リファレンス
WSFederationHttpBinding
WSFederationHttpBindingElement
概念
その他の技術情報
How to: Create a WSFederationHttpBinding
Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients