方法 : ローカル発行者を設定する
ここでは、発行済みトークンに対してローカル発行者を使用するようにクライアントを構成する方法を説明します。
クライアントがフェデレーション サービスと通信する場合、クライアントが自分をフェデレーション サービスに対して認証するときに使用するトークンの発行元となるセキュリティ トークン サービスのアドレスが、サービスによって指定されることがよくあります。特定の状況では、クライアントがローカル発行者を使用するように構成されることがあります。
フェデレーション バインディングの発行者アドレスが https://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous または null である場合、Windows Communication Foundation (WCF) はローカル発行者を使用します。そのような場合は、ローカルの発行者およびバインディングのアドレスと共に ClientCredentials を構成し、その発行者との通信に使用する必要があります。
メモ : |
---|
ClientCredentials クラスの SupportInteractive プロパティが true に設定されており、ローカル発行者アドレスが指定されておらず、wsFederationHttpBinding elementまたは他のフェデレーション バインディングで指定される発行者アドレスが https://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self、https://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous、または null である場合、Windows の CardSpace 発行者が使用されます。 |
コードでローカル発行者を構成するには
IssuedTokenClientCredential 型の変数を作成します。
ClientCredentials クラスの IssuedToken プロパティから返されるインスタンスに変数を設定します。このインスタンスは、(ClientBase から継承された) クライアントの ClientCredentials プロパティ、または ChannelFactory の Credentials プロパティから次のように返されます。
LocalIssuerAddress プロパティを EndpointAddress の新規インスタンスに設定します。このとき、次のようにコンストラクタに対する引数としてローカル発行者のアドレスを使用します。
あるいは、次のように新規の Uri インスタンスをコンストラクタへの引数として作成します。
次に示すように、
LocalIssuerBinding プロパティを使用して、ローカル発行者のバインディングを次のように設定します。
省略可能。ローカル発行者に対して構成したエンドポイントの動作を LocalIssuerChannelBehaviors プロパティから返されるコレクションに追加することにより、この動作を次のように追加します。
構成でローカル発行者を構成するには
その要素自体がエンドポイント動作の <clientCredentials> 要素の子要素である <issuedToken> 要素の子として、<localIssuer> 要素を作成します。
address 属性を、トークン要求を受け入れるローカル発行者のアドレスに設定します。
binding および bindingConfiguration 属性を、ローカル発行者のエンドポイントと通信するときに使用する適切なバインディングを参照する値に設定します。
省略可能。<localIssuer> 要素の子要素として <identity> 要素を設定し、ローカル発行者の ID 情報を指定します。
省略可能。<localIssuer> 要素の子要素として <headers> 要素を設定し、ローカル発行者を正しくアドレス指定するために必要な追加ヘッダーを指定します。
セキュリティ
特定のバインディングに対して発行者アドレスとバインディングが指定されている場合、ローカル発行者はこのバインディングを使用するエンドポイントには使用されません。ローカル発行者を常に使用する必要があるクライアントには、このようなバインディングが使用されることがないこと、または発行者アドレスが null となるようにクライアントによってバインディングが変更されることが保証されている必要があります。
関連項目
タスク
方法 : フェデレーション サービスで資格情報を設定する
方法 : フェデレーション クライアントを作成する
方法 : WSFederationHttpBinding を作成する