Php 用于第三方访问资源的一次性登录令牌
我们有一个网站(foo.com)进行在线培训。用户登录,然后完成培训 我们已经同意允许另一家公司(bar.com)通过我们的培训向他们的客户提供服务。其中一个要求是,他们的用户不需要在我们的网站上创建单独的登录帐户 以下是我最初的攻击计划:Php 用于第三方访问资源的一次性登录令牌,php,security,encryption,access-token,Php,Security,Encryption,Access Token,我们有一个网站(foo.com)进行在线培训。用户登录,然后完成培训 我们已经同意允许另一家公司(bar.com)通过我们的培训向他们的客户提供服务。其中一个要求是,他们的用户不需要在我们的网站上创建单独的登录帐户 以下是我最初的攻击计划: 当用户登录bar.com(另一家公司的网站)时,其后端将向foo.com(我们的网站)发出安全的HTTPS请求,请求专门针对该用户的一次性访问令牌。例如,他们可能会请求以下URL: 这要求访问bob的帐户。“pass”组件是foo.com和bar.com已
我正在用PHP编写代码。您正在寻找的是单点登录(SSO)。有许多不同的行业标准协议可以实现这一点,但您基本上要做的是让另一个实体对用户进行身份验证,并以一种您可以验证您信任的东西(他们的身份验证系统,不管它是什么)是否发布了该信息的方式向您提供该信息 最标准的方法是SAML(安全断言标记语言)。这是一个第三方将向其系统进行身份验证的协议,它将生成一个SAML断言,基本上说用户是谁(以及其他信息,如果需要的话)。断言是数字签名的,因此您可以验证是谁发布的。这要求您和第三方交换密钥(以证书的形式),并了解断言将包含什么内容等(通常以身份提供者和服务提供者之间交换的SAML元数据表示)
许多平台都有许多SAML实现/引用,包括PHP。如果你想做到正确、安全,这就是你应该调查和追求的。我只是想知道SAML在这方面是否有点过火。。。在这种情况下,有没有精简的裸骨SAML?OpenID可能是一个可行的替代方案。这是一个更简单的协议,但是有更少的库和参考实现。