0

技術的な理由から、アプリケーションに 2 つの異なる STS Web サイトを実装しました。これらの STS は、異なる証明書に基づくトークンを発行します。

メイン アプリケーションとサブセット アプリケーションがあり、それぞれがこれらの STS Web サイトの 1 つを使用して信頼するように構成されています。

どちらのアプリケーションもクレーム タイプ名を使用して、ログイン時にユーザー名を設定します。これは、証明書利用者アプリケーションの UI に表示されます。

私の問題は、1 つの STS にログインすればすべて問題ないことです。他のアプリケーション/STS にログインすると、最初のログインで UI に表示された名前が 2 回目のログインの名前に置き換えられます。

STS は完全に異なる証明書を使用してトークンに署名しているため、web.config 内で信頼するように構成されていない限り、証明書利用者によって無視されると想定できます。これが私が設定した方法です。

デバッグから、すべてが正常に動作しているようです。トークンの作成時に、使用する正しい STS と正しい証明書が使用されます。

2 番目のアプリケーションにログインすると、既存の FedAuth Cookie が大きくなり、両方のセッションのクレームが同じ Cookie に追加されていることがわかります。

STS によって発行されたトークンを相互に完全に独立させる方法について、誰かが提案してくれるとありがたいです。

どうもありがとう、ジョン

4

2 に答える 2

0

表示されているのは正しい動作であり、実際には両方のトークンが異なります。構成に 2 番目の STS を追加していない場合、その STS に対する認証は成功する可能性がありますが、「信頼されていない」ソース (宣言されていない STS) から来るため、WIF によって拒否されます。

2 番目の STS を「信頼できる発行者」として追加すると、(アプリ内の) WIF は喜んでそのトークンを受け入れます。クレーム タイプの「名前」は、単にUser.Nameプロパティにマップされるものです。

やりたいことをもう少し詳しく説明していただけると助かります。誰かが 2 番目の STS でログインしたときに、アプリで何が起こるでしょうか?

于 2013-04-11T14:32:03.183 に答える