将用户安全转移到不同 URL 同时保持其 'logged in' 状态的最佳方式

Best way to securely transfer user to different URL while maintaining their 'logged in' status

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

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

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

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

我们希望客户能够单击任何已安装实例旁边的 'view admin panel' 并自动登录 [subdomain].SecondaryDomain,因为他们已登录 PrimaryDomain.com.

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

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

一次性使用令牌似乎是正确的方法,但我还没有找到任何具体的答案(a)这是否是正确的方法,以及(b)安全隐患是什么是吗?

对于这种情况,我建议使用 SAML。 SAML 要求您拥有身份提供者 (IdP) 和服务提供者 (SP)。用户将登录到 IdP 并将令牌出示给任何访问过的 SP。 SP 需要配置为针对 IdP 断言令牌。您可能想查看 Auth0 的 SAML SSO 产品以获取更多信息,但还有其他供应商也在做同样的事情。