将用户安全地转移到不同 URL 同时保持其"已登录"状态的最佳方式



在我们最新版本的SAAS产品中,我们正在设计它以允许我们的客户部署该软件的多个实例。

我们要求注册和登录紧密集成到主域-"向新客户销售产品";网站PrimaryDomain.com的特色是"注册";和";Login"使用jQuery/AJAX在数据提交时给出响应反馈的表单。

当客户成功登录时,他们将看到我们产品的所有安装实例的列表。我们产品的所有安装实例都可以跨几十个域托管,但为了使这个问题简单,它们托管在[subdomain]. secondarydomain.com(代码+数据库)上。

每个已安装的实例还具有一个管理面板,当前客户需要根据需要手动登录到每个单独的实例。

我们希望客户能够点击"查看管理面板"旁边的任何他们安装的实例,并自动登录到[子域]。SecondaryDomain因为他们登录了PrimaryDomain.com.

SecondaryDomain.com当然不能访问PrimaryDomain.com的cookie或会话变量那么允许SecondaryDomain.com的最好方法是什么呢?授权?

我们考虑了几个不同的选项,例如;

  • 研究一些聪明的方法,域可以共享cookie/会话数据?

  • 生成一个令牌,当点击"查看管理面板"到第二个域时,与url一起传递。令牌对于userid加上子域(例如md5哈希)是唯一的,然后在接收端验证它。

  • 将一次性令牌记录到数据库中,并与url一起发送,并具有SecondaryDomain.com连接到PrimaryDomain.com的数据库来验证一次性使用令牌,并设置适当的会话和cookie变量。

一次性使用的令牌似乎是正确的方法,但我还没有找到任何具体的答案(a)如果这是正确的方法,以及(b)围绕它的安全含义是什么?

对于这种情况,我推荐使用SAML。SAML要求您拥有身份提供者(IdP)和服务提供者(SP)。用户将登录到IdP并向访问的任何SP出示令牌。需要将sp配置为针对IdP断言令牌。您可能想了解Auth0的SAML SSO提供的更多信息,但也有其他提供程序做同样的事情。

相关内容

  • 没有找到相关文章

最新更新