如果我有一台具有多个域的服务器,那么在同一域上实现单点登录解决方案的首选方法是什么。我目前正在使用devise,在不同的域中放置了几百万个cookie,并且卡住了。除了实施SSO之外,我还需要将各种cookie迁移到中央域。关于各种服务器,它们只有一个页面,要求我根据用户是否登录来显示不同的状态。
我尝试了以下操作:
CORS:选择一个域作为中央身份验证中心。在所有其他域中进行跨域检查,以查看用户是否已登录。要迁移cookie,请检测是否存在“ current_user”对象,将其发送到客户端,进行CORS请求,登录用户并杀死令牌。很棒!但是...在构建2-3周后,它在IE中完全失败。即使是IE11,我也注意到默认设置是禁用此行为。
尝试修改会话存储在
Rails.application.config.session_store
没有运气。
我目前正在尝试以下方法:
JSONP:我现在有人尝试将上述内容转换为JSONP,而我尝试了其他选择:
设置自定义OAUTH提供程序。像以前一样,如果此人已登录,它将是“中央域”,并返回带有令牌的用户可以从中请求的域。 https://github.com/songkick/oauth2-provider
看着这个,但看起来已经过时了吗? https://github.com/rubycas/rubycas-client。如果我从一开始就将其推出,我也会感到这可能是一个解决方案,但是鉴于我们对项目有多深入,所以我不清楚如何转移现有的Cookie。同样也不清楚这是否需要两个应用程序来启动和运行(一个用于客户端,一个用于身份验证服务器)
[当我经历所有这些可能性时,如果有人在做我正在做的事情上有任何经验,请务必通知我,并为我节省很多工作:)
如果我有一台具有多个域的服务器,那么在同一域上实现单点登录解决方案的首选方法是什么。我目前正在使用devise,在...
除非这是一个玩具应用程序,否则最好的方法可能是设置oauth提供程序。