1

假设我有 2 个网站:domain1.com 和 domain2.com

我实现了 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 时的流程相同,我生成了一个 iframe 以使用户登录 domain1.com。

我想知道这个实现中是否有任何安全漏洞或劣势点?我还应该做些什么来使它更安全吗?

4

2 回答 2

2

不要发送用户名和密码。仅发送身份验证令牌:

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

然后让两个应用程序共享相同的机器密钥,以便远程域可以解密它并为该域发出 Forms Authentication cookie。还要确保您仅通过 HTTPS 发送令牌。

于 2012-09-24T11:07:39.680 回答
0

您会遇到问题,因为许多现代浏览器不允许在指向另一个域的 iframe 中设置 cookie。

于 2012-09-24T10:57:37.583 回答