首页 > 解决方案 > 在保持“登录”状态的同时安全地将用户转移到不同 URL 的最佳方法

问题描述

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

我们要求注册和登录紧密集成到主域中——“向新客户销售产品”网站 PrimaryDomain.com,该网站具有使用 jQuery/AJAX 提供响应反馈的“注册”和“登录”表单数据提交。

当客户成功登录后,他们将看到所有已安装的我们产品实例的列表。我们产品的所有已安装实例都可以托管在数十个域中,但为了简单起见,它们托管在 [subdomain].SecondaryDomain.com(代码 + 数据库)上。

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

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

SecondaryDomain.com自然无法访问PrimaryDomain.com的 cookie 或会话变量,那么允许SecondaryDomain.com授权的最佳方式是什么?

我们考虑了一些不同的选择,例如;

一次性使用令牌似乎是正确的方法,但我无法找到任何具体答案(a)如果这甚至是正确的方法,以及(b)它周围的安全隐患是什么?

标签: phpcross-domainsession-cookies

解决方案


对于这种情况,我推荐 SAML。SAML 要求您拥有身份提供者 (IdP) 和服务提供者 (SP)。用户将登录到 IdP 并将令牌呈现给访问的任何 SP。SP 需要配置为针对 IdP 声明令牌。您可能想查看 Auth0 的 SAML SSO 产品以了解更多信息,但还有其他提供者可以做同样的事情。


推荐阅读