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