请教: 关于多个认证中心下的 site 互相登录以及 api 互相调用的问题
資深大佬 : rioshikelong121 3
场景:
Account X 负责 SPA X1,SPA X2… 的 authentication 和 authorization
Account Y 负责 SPA Y1,App Y2… 的 authentication 和 authorization
两者的域名,技术栈细节不一。没有统一的用户身份。但是都是基于.Net 技术栈,都是基于 OAuth 2.0 来做的认证 /登录流程。
同一个 Account 下的不同应用的用户也不一样,但是 token(jwt)的加密方式一致。不同 Account 归属于相同的公司,理论上可以获取其他 Account token 的加密方式。
现在的问题来了,有个需求: Account X 的用户登录 SPA X1 以后,在网页上点击链接跳转到 SPA Y1, 不需要登录 Account Y,即可直接自动登录 SPA Y1 。
之前想过单点登录相关,但是似乎 SSO 是针对于单个认证中心下的多个网站的,和我的场景不太一样。
目前想到的解决方案:
SPA X1 跳转到 Y1 的时候,请求的地址不是 SPA Y,而是 Account Y 的一个 api 地址(public api),并且附带 X1 上用户的 token 和其他一些信息。
Account Y 会解析这个 token 的合法性和过期时间,并从里面提取出用户信息,如果 token 合法,则以这个用户信息创建符合 Account Y 格式的 token 和 session 。 然后重定向到 SPA Y 。 这样就实现了自动登录的过程。
—————————–
想问下各位,类似的场景,有什么比较好的解决方案吗?或者有哪些可以搜索的关键字?
大佬有話說 (0)