2

トークンがそれらのオーディエンスから来ているかどうかを確認し、X509証明書の拇印と発行者をチェックするカスタムのセキュアトークンサービスがあれば、WSFederationが必要ですか?カスタムSTSがある場合、フェデレーション認証が必要ですか?もしそうなら、なぜですか?

私のSTSは、特定のアプリケーションからトークンがすでに届いていて、ACS経由でルーティングされていることを確認しているため、必要なものをすべて確認していませんか?私は、アプリケーションAがカスタムSTSからアプリケーションBに要求を送信した要求をACSに送信したことを知っています。明確にするため

編集:私はのorignalポスト内のビットは不明であった

申し訳ありません。私は、セキュリティトークンハンドラの代わりにSTSを使用したので混乱が起こったと思います(異なる方法、ちょうどタイプミス)。 アプリケーションAはカスタムログインサービスで、ユーザー、google/facebook/yahoo/etcのログインオプションを表示します。これらのサービスを介してログインすると、ACSからトークンが取得され、アプリケーションB、依拠当事者に返されます。このRPにはカスタムトークンハンドラがあり、トークンを受け取り、トークンがアプリケーションAと一致するオーディエンスURIを持つことを検証します。また、発行者がACSであり、拇印がトークンの署名に使用された証明書ACS。

これは、理論的にアプリケーションBが、アプリケーションAが(そのオーディエンスURIから来るように)ログインに使用され、ACSがトークンを送信したことを知っていることを意味します(発行者と拇印一致)。私が願っているのは、アプリケーションBに連合アイデンティティーが必要かどうかです。トークンの出所をすでに証明していれば、それを使って正確に何を得ることができますか?

答えて

2

ご質問には何らかの説明が必要な場合があります。

最初に、アプリケーションAとアプリケーションBが意味することと、このシナリオでのSTSの適合を具体的に説明したいと思うかもしれません。アプリケーションでは通常、トークンは発行されず、STSのみがトークンを発行します。この意味で、ACSはアプリケーションを相互に接続せず、信頼するパーティアプリケーションを第三者のアイデンティティプロバイダに接続します。

第2に、Web上での認証について話していて、ACSのトークンを発行しているカスタムIDプロバイダSTSがある場合は、既にWS-Federationを使用している可能性があります。ただし、トークンの取得がブラウザベースではなく、ACSへのバックエンドHTTPコールを行っている場合、WS-Federationはこのシナリオには関係ありません。

第3に、STSの観点から、許容される視聴者のセットはトークン発行者に関するものではなく、STSによって発行されたトークンを消費するエンティティを指します。つまり、STSがトークンを発行するのは、一連のサブジェクトです。これは、アプリケーション自体、またはフェデレーションチェーンに沿った他の仲介STSである可能性があります。第12に、あなたが入ってくるトークンで発行者の証明書を検証するときに、単に拇印を比較するだけではありません。拇印は、トークンの暗号証明の一部ではありません。トークン発行者が証明書の秘密鍵を所有していることを確認するには、トークンのデジタル署名を検証する必要があります。

これで問題が解決することを希望しますが、質問に答えられない場合はお知らせください。

+0

4点目として、ここではBertocciの例を使用していました。 blogs.msdn.com/b/vbertocci/archive/2008/11/26/an-identity-provider-and-its-sts-writing-a -custom-sts-the-october-beta-of-the-geneva-フレームワーク。aspx あなたがする必要があるように見えるのは、拇印と発行者を確認することです。 –

+0

Ah。この記事は少し古いもので、Vittorio自身が投稿したように、この例はデモンストレーションのためだけであり、生産準備ができていないことに注意してください。 WIFは独自のカスタムセキュリティトークンハンドラを必要としないため、大したことではありません。WIFは現在、X509証明書署名検証を実行するセキュリティトークンハンドラをいくつか提供しています。 –

+0

"WIFは今日、あなたに適切なX509証明書署名検証を実行する組み込みのセキュリティトークンハンドラを提供しています" そうかもしれないが、私はサイト固有のweb.configで設定したくない。そのため、オーディエンスURIタグを削除するには、デフォルトのセキュリティトークンハンドラをオーバーライドする必要がありました。私はあなたのアドバイスを取って、他の場所で適切な検証を探して、それを私のコードに追加しました。私はまだフェデレーションされたアイデンティティが必要かどうかについてアドバイスを使うことができました。 –

関連する問題