我目前正面临以下问题:子域上的登录会话
一个主域名运行特定的PHP框架与框架特定的会话;现在有一个新的子域,它运行不同的PHP框架,我需要与子域共享来自主域的登录会话信息。即用户只能在主域上注册,但一旦登录,他们也将登录到他们在子域中的帐户。还应该注意的是,子域不能访问主域DB。
有了这些限制,我想出了以下解决方案:首先我将域cookie设置为.mydomain.com
,这样我就可以访问子域上的会话cookie。接下来,我在主域上实现一个简单的API调用,它将返回登录状态以及其他会话信息。 API url将IP白名单限制在子域服务器上,并且一旦登录用户从主域名到达子域名,就会向用户cookie服务器侧(cURL假设)请求API url。一旦并且如果用户在子域上以这种方式被认证,则他被分配用于特定会话的令牌,并且从那里开始,我可以将其作为子域上的常规和单独的会话来管理。
现在我的问题是,您是否可以在此设置中看到任何安全智能漏洞?或提出任何改进或更可取的方法来做到这一点...
感谢
顺便说一句,我写了一篇关于[无OAuth或SAML的跨域认证](https://paragonie.com/blog/2016/02/one-login-rule-them-all-seamless-and-secure交叉域认证),使用Halite。 –
谢谢,这是一个有趣的阅读。从我所收集的内容来看,我描述的机制大致类似于您在博客文章中描述的内容,只是更简单(并且没有加密),再加上使用db存储的令牌来查找用户肯定更好。比共享从主域上的cookie。 –