集成多个独立的OAuth系统

时间:2018-12-04 10:01:15

标签: login oauth-2.0 cors single-sign-on single-page-application

我有两个Web应用W1a.example.com)和W2b.example.com),它们使用基于OAuth 2 L1和{{ 1}}。他们的前端L2F1都是单页应用程序。 F2L1都启用了CORS。

L2是一个Web应用程序,我可以在后端和前端两者上进行编辑/管理,而W1是我无法修改的旧版应用程序,尽管W2的后端API是公开可用。因此,我可以访问W2 L2端点以获取访问令牌,并将其用于对后端的进一步请求。

现在,/oauth/tokenL1拥有独立的用户数据库,但是实际上两者中都存在具有相同凭据的相同用户。我需要确保当用户通过L2前端登录W1时,他同时登录了F1W1,以便用户在其中单击特定按钮时W2F1打开,并且用户已经登录F2

问题是W2从其本地存储中标记为F2的特定对象中读取用户信息。通常,当用户直接从user_info登录时设置此对象。不幸的是,本地存储不是跨域的(F2a.example.com具有不同的本地存储,并且不能读取/写入彼此的存储,它们只能自己读写)。这意味着即使b.example.com可以通过向F1端点的AJAX请求检索它,也无法从user_info在F2本地存储中设置F1对象在/<user>/info上。

问题是:处理这种情况的正确方法是什么?我了解我正在尝试实现非常接近单一登录机制的功能,但是我不确定这是否是正确的用例,或者不确定是否有一个简单的解决方案只是我所忽略。

预先感谢您的帮助。

0 个答案:

没有答案