简单的跨站点共享登录

时间:2012-08-02 16:44:02

标签: authentication login single-sign-on

目前正在为潜在的合作伙伴工作,他们的技术门槛很高。 我们希望合并一个跨站点登录,但SSO / Oauth可能需要解决一些问题。

有关令牌传递/握手的安全轻量的建议吗?我们不需要像Oauth这样的无缝集成,他们刚刚访问了一个站点,并且已经登录,有一个标记化的URL,可以将它们带到另一个站点。

有点像过去你用钥匙/价值击中远程站点 - 他们确认你并返回1/0 ......当然,这有潜在的中间人攻击

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如何做就像openid正在做的那样?

首先,服务提供商和身份提供商共享密钥(http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange)。这是服务器到服务器的通信。

然后验证,用户名密码等等等等等等等。

然后身份提供者向服务提供者发送http重定向(用户可以看到正在发生的事情),其中包含所有必要信息(用户身份,时间戳等)+消息身份验证代码(由所有必要信息和密钥交换组成)由diffie-hellman交换)。请参阅http://en.wikipedia.org/wiki/Message_authentication_code

上的消息身份验证代码

然后服务提供商验证mac代码(因为此服务提供商知道密钥),以确保此http请求真正来自身份提供商的重定向