0

Azure ACS から戻ると、FormCollection 内のフェデレーション認証結果を取得します。必要な情報を含む値は、「wresult」と呼ばれる暗号化された値の中にあります。この値を解読してさらなる認証に使用するのに問題があります。

Cookie の設定を承認しないため、WSFederationAuthenticationModule を使用したくありません。モジュールが使用されると、Federated-Authenticationtype で auth-cookies が自動的に設定されます。

代わりに、wresult に含まれるクレームを取得し、独自のセキュリティ トークン (JWT、SAML 2.0 など) を設定したいと考えています。

これまでに見つけた唯一の回避策は、FAModule を使用し、セッション トークン Cookie をすぐに削除することです。ただし、これにより、応答で auth-cookies が値とともに 2 回設定され、すぐに設定が解除されます。

最終的に達成したいことは次のとおりです。フォーム サイトで認証するか、Azure ACS の任意の ID プロバイダーを使用して認証する可能性を提供します。フォーム認証を使用すると、ユーザー名とパスワードをすぐに比較して、セキュリティ トークンに必要なクレームを設定できます。しかし、Azure ACS を使用する場合は、最初に取得した nameidentifier をデータベースに保存されている値と比較してから、WS フェデレーションの代わりにカスタム セキュリティ トークンを設定したいと考えています。または、nameidentifier が不明な場合は、ユーザーが自分の資格情報でこの nameidentifier を認証できるフォーム ページにリダイレクトしたいと考えています。Azure ACS の戻り値を認証済みとして計算したくありません。

4

2 に答える 2

1

FAMを登録する必要はありませんが、そのヘルパーメソッド(GetSignInResponseMessage()など)を使用して、ACSからのサインイン応答メッセージを解析できます。

これにより、WIF cookieシステムを使用せずに、プロトコルの詳細と返されたセキュリティトークンにアクセスできます。

于 2012-12-20T06:28:52.007 に答える
0

WSFederatedAuthenticationModule のデフォルトの Cookie 処理を変更する代わりに、別のセットアップを提案します。

  1. 独自のフォーム ベースの認証 ID プロバイダー STS を作成してホストします。これを設定するのに役立つ便利なオプションがいくつかあります。
  2. ACS で新しい IP STS を設定する
  3. デフォルトの ACS ログイン ページ (ホーム レルム検出ページ) を使用するか、独自の をカスタマイズします

これで、ユーザーは認証に使用する ID プロバイダーを選択するよう求められます。彼らがあなたのものを選択した場合、ユーザー名/パスワードを入力すると、あなたの IP は名前識別子を ACS に送信し、ACS はそれを証明書利用者の Web サイトに送信します。Google を ID プロバイダーとして追加する場合も同様です。利点は、ユーザーがログインした IP に応じて RP が異なる動作をする必要がないことですが、IP に基づいて動作をカスタマイズする場合、その情報は ACS によって発行されたトークンで利用できます。

また、SAML の代わりに JWT トークンを使用する場合は、ACS ポータルの証明書利用者ページから発行するように ACS を構成できます (ただし、これはベータ機能としてマークされています)。

于 2012-12-18T20:27:30.210 に答える