目前正在与一个潜在的合作伙伴合作,该合作伙伴的技术准入门槛很高。我们想要合并一个跨站点登录,但 SSO/Oauth 可能有点难以解决。
关于安全且轻量级的令牌传递/握手的任何建议?我们不需要像 Oauth 这样的无缝集成,他们只需点击一个站点并登录,拥有一个将他们带到另一个站点的标记化 URL 就可以了
有点像过去你用键/值访问远程站点 - 他们会确认你并返回 1/0 ......当然,这有潜在的中间人攻击
有什么想法吗?
目前正在与一个潜在的合作伙伴合作,该合作伙伴的技术准入门槛很高。我们想要合并一个跨站点登录,但 SSO/Oauth 可能有点难以解决。
关于安全且轻量级的令牌传递/握手的任何建议?我们不需要像 Oauth 这样的无缝集成,他们只需点击一个站点并登录,拥有一个将他们带到另一个站点的标记化 URL 就可以了
有点像过去你用键/值访问远程站点 - 他们会确认你并返回 1/0 ......当然,这有潜在的中间人攻击
有什么想法吗?
像openid那样做怎么样?
首先,服务提供者和身份提供者共享密钥(http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange)。这是服务器到服务器的通信。
然后进行身份验证,用户名密码 blah blah blah 像往常一样填写
然后身份提供者向服务提供者发送 http 重定向(用户可以看到正在发生的事情),其中包含所有必要的信息(用户的身份、时间戳等)+ 消息验证码(由所有那些必要的信息和由 diffie 交换的密钥组成) -hellman 交换)。请参阅http://en.wikipedia.org/wiki/Message_authentication_code上的消息身份验证代码
然后服务提供者验证该 mac 代码(因为这个服务提供者知道密钥),以确保这个 http 请求真正来自身份提供者的重定向