0

現在、独自の認証データベースと通信する MVC4 自家製のセキュア トークン サービス (STS) を使用しています。このセットアップでは、すべてがうまく機能しています。新しい機能として、ADFS2 を介して、ドメインにいるユーザーに対してシングル サインオン (SSO) の機能を追加する必要があります (現在の un/pw 画面をバイパスし、ユーザーはただ 'in' になります)。ドメイン ユーザー (SSO)、ドメイン クレデンシャル (ドメイン上にないドメイン ユーザーがドメイン un/pw に入る)、およびデータベースからの元の un/pw 認証です。Web.config 設定を依存アプリケーションに追加して STS を接続する方法について知っている場合、wsFederation パッシブ リダイレクト オプション (un/pw の STS への現在のリダイレクトと ADFS オプション) の両方を接続するにはどうすればよいでしょうか? これはコードで処理する必要があるものですか? WSFederationAuthenticationModule などのオーバーロードされたクラスを通じて? 私が望むものを処理する最良の方法は何ですか? コード例はありますか? 御時間ありがとうございます!

4

1 に答える 1

1

カスタム STS にログイン画面があり、「ADFS でログイン」または「ドメイン ユーザーとしてログイン」という 2 つの追加ボタンがあります。どちらのボタンも、STS がフェデレーションされている他の 2 つの STS にリダイレクトされます (STS は、ID 提供 STS または依存 STS のいずれかの役割を果たします)。

それはそれほど複雑ではありません。必要なのは、2 つSignInRequestMessageの を作成し、それらのWriteQueryStringビルド 2 つの URL を 2 つの異なる STS に使用することです。別の方法は、WSFederationAuthenticationModule::CreateSignInRequestメソッドを使用することです。

http://msdn.microsoft.com/en-us/library/system.identitymodel.services.signinrequestmessage(v=vs.110).aspx

http://msdn.microsoft.com/en-us/library/system.identitymodel.services.wsfederationauthenticationmodule.createsigninrequest(v=vs.110).aspx

エンドポイントの役割を果たす単一の uri (または 2 つの異なる uri) が必要なため、応答の消費は巧妙です。uri では、トークン レシーバーが必要であり、プロバイダーから送信された SAML からトークンを作成しようとします。

wif:FederatedPassiveSignIn私が一度書いたメソッドのコミュニティ置換のソースをのぞくと、アイデアが得られます

http://code.google.com/p/net45federatedpassivesignin/source/browse/trunk/+net45federatedpassivesignin+--username+wzychla@gmail.com/Community.IdentityModel.Web/Controls/CommunityFederatedPassiveSignIn.cs?spec=svn6&r=6

(コードの少なくとも半分は WebForms ユーザー コントロール インフラストラクチャを担当しますが、残りの半分は探しているものです)

残念なことに、このようなカスタムの混合シナリオは、フェデレーション モジュールの構成だけでは簡単に処理できません。

于 2014-05-20T18:36:09.093 に答える