WIF を使用して構築されたカスタム STS の証明書利用者である WCF サービスがあります。私の STS は、私のクライアント アプリケーションにホルダー オブ キー トークンを発行します。既存の「フロントエンド」サービスから呼び出す必要がある新しい「バックエンド」WCF サービスを作成しました。 STS から新しいトークンを取得せずに、フロントエンド サービスで着信セキュア トークンを使用してバックエンド サービスを呼び出すにはどうすればよいですか?
これまでのところ、私のフロントエンド サービスでは、カスタム Saml11SecurityTokenHandler を使用して着信 SamlSecurityToken に問題なくアクセスできます。
その後、アウト オブ バンド トークンをターゲット バックエンド サービスのサービス呼び出しにアタッチする 2 つの異なる方法を試しました。
- カスタム IssuedSecurityTokenProvider を作成する
- ChannelFactoryOperations.CreateChannelWithIssuedToken を使用する
ただし、これらの試みはどちらもエラーになります。私が知る限り、それは同じ行き止まりのようです - 彼らは署名された SamlSecurityToken を受け入れません。これらのメソッドはどちらも基本の SecurityToken クラスを受け入れますが、両方とも、SamlSecurityToken ではなく GenericXmlSecurityToken インスタンスが与えられた場合にのみ機能するようです。
更新: これは、箇条書き 1のコード サンプルと例外の詳細です。
更新 2: さらに調査を行った結果、私が見つけた最も近いものは、基本的に ActAs トークンのみを使用する WIF/ADFS のID 委任の使用に関する記事でした。この記事では、フロント エンド サービスがトークンを使用して STS に要求を発行します。クライアント アプリケーションから受け取ります。これには、カスタム STS の更新が必要になりますが、現時点では更新しないことを望んでいます。私の図に示したアプローチが、WIF や WS-Trust でも有効なのかどうか疑問に思い始めています。