0

現在、ユーザーが 2 つの ThinkTecture IDP サーバー経由で接続できるようにする ASP.NET MVC アプリケーションがあります。MVC アプリはこれらの IDP サーバーの両方を信頼し、ユーザーを完全に認証します。

現在の設定では、web.configのセクションで< System.IdentityModel.Services.WSFederationAuthenticationModule >と を使用してこれらを処理します。 < System.IdentityModel.Services.SessionAuthenticationModule >< modules >

SAML v2 トークンを送信してユーザーを認証したい新しい関係者がいますが、MVC アプリはそれを認識していないようです。

IDP サーバー (SAML1) と新しいログイン サーバー (SAML2) の両方からの POST 応答を比較しましたが、微妙な違いがいくつかあり、それが問題を引き起こしている可能性があります。

IDP サーバーは、< trust:RequestedSecurityToken >属性を使用してラップするよう< saml:Assertion >です。一方、新しいクライアントは、次を含む POST 要求本文を送信します。< saml >< samlp:Response >

私の質問は次のとおりです。

1)< samlp:Response >これは Microsoft WIF でサポートされていない新しい SAML2P バージョンですか? それとも< saml:Assertion >要素に興味があるだけですか?

2) WIF は SAML トークンをどこで検索しますか? ポスト本体? 認証ヘッダー (ベアラー)?

3) 現在、ユーザーが認証されていない場合、ユーザーはローカル IDP サーバーにリダイレクトされ、ログインして SAML 応答が返され、それがピックアップされます。ただし、新しいクライアントは、SAML トークンを使用してページを表示する要求を渡すだけです (真のシングル サインオン)。この違いが問題を引き起こしているのだろうか。現在、ユーザーのローカル IDP へのリダイレクトを手動で処理しているため、新しいクライアントではこれをオフにしようとしました。

編集 多くの掘り下げた後...

  1. SAML2 プロトコルは Microsoft WIF でサポートされておらず、今後もサポートされる可能性があります。

  2. SAML2 プロトコル メッセージは、通常、HTTP POST の本文内のフォーム パラメータ (saml= < saml:Response>< など) です。私の場合、(saml=) の標準パラメータ形式を使用していませんでした。 HTTP POST 本文に直接インライン化されていました。

4

3 に答える 3

1

私の知る限り、samlp は (まだ?) WIF でサポートされていないプロトコルです。これは、WS-Federation で使用されるクエリ文字列パラメーターに代わるものです。サード パーティの拡張機能を探す必要があります ( ASP.NET MVC 4 サービス プロバイダーで SAMLP 2.0 を実装するにはどうすればよいですか? )。私は自分で使用したことがないので、これ以上のアドバイスはできません。

于 2015-07-17T18:30:48.763 に答える