在我们最新版本的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)围绕它的安全含义是什么?