1

シナリオ: 自社のエクストラネットで iframe を介して多数の Web サイトを表示する必要があります。エクストラネットは SSL と、Active Directory に基づく Windows 認証を使用します。各 iframe の Web サイトには認証されたユーザーが必要ですが、ユーザーが手動でログオンするように求められるべきではないという要件があります。各 Web サイトの認証メカニズムはまだ決定されていません。

問題: iframe で自動ログオンを行う方法を見つける必要があります。AD からの特定のユーザー情報を提供する必要はありますが、目的に合った特定の認証メカニズムを使用するように iframe 化された Web サイトを要求できます。

認証の問題を解決するために Windows Identity Foundation を使用するように勧められました。私は 2 つの解決策を検討していますが、WIF の初心者として、どちらが優れているか、また可能かどうかさえわかりません。

解決策 1: AD クレームを使用してカスタム セキュリティ トークン サービスを作成します。ユーザーが iframe ページの 1 つを参照すると、ページはプログラムで STS からトークンを取得し、何らかの方法でそのトークンを iframe に追加します。ネット上のサンプルを見ると、STS をビルドしてトークンをプログラムで取得する方法を理解していると思います。しかし、iframeでそれを使用するにはどうすればよいですか? iframe URL ( http://website/default.aspx?token=xxx) に挿入するのは安全ではないようです。

解決策 2: 同じ STS を作成します。iframe 化された Web サイトは、STS を認証プロバイダーとして使用するように構成されています。ユーザーが iframe ページの 1 つを参照すると、iframe の Web サイトは自動的に STS にトークンを照会し、ユーザーをログインさせます。しかし、iframe の Web パーツはどのようにしてトークンを取得しますか?リクエストコンテキスト、またはそれはどのように機能しますか? そして、これはiframe内でまったく行うことができますか?iframeでCookieが許可されていないことについて何か読んだことを思い出しますか?

上記への回答、またはおそらく別の解決策を歓迎します。

4

1 に答える 1

2

解決策 2 に進みます。iframe 内のページ (以降、証明書利用者 - RP) が STS を認証プロバイダーとして使用するように構成されている場合、最初に読み込まれたときにブラウザー (iframe) を STS にリダイレクトします。STS は、ユーザーがすでにシングル サインオン セッションを持っていることを (最初のエクストラネットへのログオンから) 認識しているため、セッション トークンを発行します。このトークンは、WIF によってインターセプトされ、次の形式でクライアントに配信される HTTP POST として証明書利用者に配信されます。 Cookie の (デフォルトでは、カスタム セッション トークン ハンドラーを使用してオーバーライドできます)。一部のブラウザーは、最初は iframe 内の Cookie を許可していませんが、証明書利用者からの応答で p3p ヘッダーを送信することで許可できます。

于 2013-01-25T13:10:13.777 に答える