1

domain1.comとdomain2.comの2つのWebサイトがあるとします。

ssoを次のように実装しました。ユーザーがdomain1.comに正常にログインしたら、iframeを生成して、ユーザーがdomain2.comにもログインできるようにします。

<iframe width=1 height=1 src="domain2.com/sso-login?username=abc&password=encripted_password" />

domain2.comで、この呼び出しを処理するためのメソッドsso-loginを実装します。ユーザー名とパスワードが有効な場合は、ブラウザーに戻るためのauth-cookieを作成します。したがって、他のタブでdomain2.comを開くと、自動的にログインします。

ユーザーがdomain2.comにログインするときと同じフローで、ユーザーがdomain1.comにログインするようにiframeを生成します。

この実装にセキュリティホールや不利な点があるのだろうか?セキュリティを強化するために他にすべきことはありますか?

4

2 に答える 2

2

ユーザー名とパスワードを送信しないでください。認証トークンのみを送信します。

<iframe width=1 height=1 src="https://domain2.com/sso-login?token=<%= Request.Cookies[FormsAuthentication.FormsCookieName].Value %>" />

次に、両方のアプリケーションで同じマシンキーを共有して、リモートドメインがそれを復号化し、このドメインのフォーム認証Cookieを発行できるようにします。また、HTTPS経由でのみトークンを送信していることを確認してください。

于 2012-09-24T11:07:39.680 に答える
0

最近のブラウザの多くは、別のドメインを指すiframeにCookieを設定することを許可していないため、問題が発生します。

于 2012-09-24T10:57:37.583 に答える