【发布时间】:2011-08-19 02:19:30
【问题描述】:
我有我的网站“A”。我将与站点“B”签订业务合同,以使站点“B”的用户(将有很多这样的站点)在用户对“B”执行许多“A”相关操作之一时将其用户重定向到我的站点.我可以要求将任何信息从“B”直接或通过“B”用户的浏览器传递给“A”,但我(即站点 A)需要验证它们确实来自“B”并自动记录它们进入站点“A”。
我知道 OAuth 在这方面做得很好 - 但仅限于“用户”级别。这里发生的是站点 A 和站点 B 之间的业务合同 - 无需为“B”的每个用户带来不便来进行整个 OAuth 跳跃……
还请注意,站点“B”的用户将看到一个表单,他们需要单击该表单才能将这些操作传输到我的站点“A”。他们可以看到(和篡改)正在与“B”用户通信的任何秘密/身份验证数据(如果有)。我的站点“A”必须防止这种情况发生。
这很接近:Securely Transferring Users Between Web Sites。
那里列出的选项:
- 通过 HTTPS 在两端编写 Web 服务调用,以检索用户详细信息,并且仅适用于特定的登录对。
- 看看“直通身份验证”,它允许用户的身份从一个系统传递到另一个系统。
- 我现在能想到的最好的办法是传递用户 ID 的 HASH,或者如果这让您担心,可以传递一些其他用户数据的哈希。
- 站点 B 可以具有允许站点 A 为用户创建会话的 Web 服务。
但我想知道自从一年半前问 Q 以来,人们是否有不同的意见。
我的问题:
- 我应该如何实现这个?
- 任何现成的 php 实现可以实现这一点?
[我已经实现了类似的东西,结果证明这是一个有缺陷的机制,所以我很好奇正确的机制是什么。]
【问题讨论】:
标签: php security login multiple-domains