2

ドメイン間でシングル サインオンを実装するにはどうすればよいですか? 2 つ以上のドメインがあり、SqlMembershipProvider (ASP.NET 2.0 メンバーシップ データベース) を使用して 1 つのサーバーを介してすべてのドメインを認証する必要があります。 foo.com を通じて認証します。さまざまなアプリケーションについてインターネット上で多くの記事を見つけましたが、同じドメインではあるが異なるドメインで、サイクルを説明している完全な記事は見つかりませんでした。FormsAuthenticationTicket クラスまたは FormsAuthentication クラスを使用している記事を見ました。web.config の machineKey が同じであることはわかっています。foo.com が認証されたら、認証 Cookie を複製し、Cookie のドメインを foo.com から bar.com に変更するだけで簡単だと思いましたが、できることがわかりました。他のドメイン Cookie を制御しないでください。それで、それを機能させる方法はありますか?

ありがとう、よろしく、 アーメド

4

1 に答える 1

1

簡単な質問ではありませんが、ヒントをいくつか教えてください。

匿名アクセスを許可する、またはユーザーのサインインを要求する ASP.NET web.config 設定を使用するには、HttpApplication.EndRequest をフックし、HTTP エラー 401 をチェックするモジュールを作成する必要があります (これは、認証が必要であることを意味します)。 )。
エラー コードをリセットし、シングル サインオン サイトにリダイレクトします。ここでは、通常どおりサインインできます。

最も困難な部分が始まります。ユーザー資格情報をネットワーク経由で安全な方法で他のサーバーに送信する必要があります。これは、対称暗号化と共有シークレットを使用するか、非対称暗号化を介してシークレットを交換することで実行できます。

反対側の HttpModule は、ログイン サイトからのリダイレクトを取得し、ログイン チケットが有効であることを確認し、HttpContext.User を置き換えます (既存のユーザーが存在する場合は、それをカプセル化して、IsInRole をルーティングできるようにしてください)。その IPrincipal への呼び出し)。

于 2009-02-24T20:58:54.430 に答える