3

パッシブ STS を介して既に認証されている Web サイトから既存の SAML トークンを渡す最良の方法は何ですか?

認証のために Web サイトにパッシブ クレームを発行する ID プロバイダーを構築しました。これが機能しています。ここで、いくつかの WCF サービスをミックスに追加して、既に認証済みの Web アプリケーションのコンテキストから呼び出します。理想的には、何もせずに SAML トークンを渡したいだけです (つまり、新しいクレームの追加や再署名)。私が見たすべての例では、ActAs sts の実装が必要ですが、これは本当に必要なのでしょうか? これは、私たちが達成したいことに対して少し肥大化しているようです。

CreateChannelActingAs または CreateChannelWithIssuedToken メカニズム (および ChannelFactory.Credentials.SupportInteractive = false を設定) を使用して、正しいバインディングで WCF サービスを呼び出す (それは何でしょうか?)十分でした。

参考としてFabrikamのサンプル コードを使用していますが、ここで述べたように、ここでの ActAs 機能は、私たちが達成しようとしているものに対して過剰であると考えています。

4

1 に答える 1

1

この場合に必要なのは、トークンの内容を各送信メッセージに挿入することです。WIF Identity Training Toolkitを見ると、これを容易にするIssuedTokenHeaderクラスがあります(ClaimsIdentitySessionManagerとともに)。これらのクラスはSilverlight用に構築されていますが、提供するソリューションは変わりません。

これは、ClaimsIdentitySessionManagerクラスからの抜粋です。

using (OperationContextScope scope = new OperationContextScope(contextChannel))
{
   IssuedTokenHeader header = new IssuedTokenHeader(this.TokenCache.GetTokenFromCache(serviceAppliesTo));
   OperationContext.Current.OutgoingMessageHeaders.Add(header);
   asyncOperation();
}
于 2010-07-08T13:08:17.613 に答える