如何利用前后端架构正确实现SSO

xia*_*oli 5 frontend backend single-sign-on

我想寻求建议或标准方法来实现基于前端/后端架构的 SSO 登录。

目前,我需要实施第 3 方 SSO 登录。流程如下:

  1. 用户在我的网站中点击“第三方登录”
  2. 路由到第 3 方界面以进行 SSO 登录。
  3. 登录完成后,重定向回我的网站

仅供参考,我的系统架构由前端(角度)和后端(rest api - 无状态)组成。基于以上案例,我可以想到两种集成方式:

方式一

  1. 用户在前端单击“第三方登录”
  2. 路由到第 3 方界面以进行 SSO 登录。
  3. 登录完成后,重定向回后台
  4. 验证请求并设置令牌,后端将重定向到我的前端

方式2

  1. 用户在前端单击“第三方登录”
  2. 路由到第 3 方界面以进行 SSO 登录。
  3. 登录完成后,重定向回前端
  4. 前端将调用后端来验证并获取结果/令牌
  5. 如果验证成功,前端将重定向到主页。

方式1和方式2的区别在于“重定向URL”。SSO 登录完成后,它应该始终路由到前端还是后端?

请就推荐/标准实施向我提供建议。

顺便说一句,我尝试在网上查看但没有看到任何合适的建议。如果您找到了,请分享给我。再次感谢并感谢您的帮助。

小智 1

我现在知道实现该场景的推荐/标准方法。

然而,我曾经参与过一个项目,我们在前端实现了单点登录。但在我看来,这取决于你的项目。

如果在前端实现,则他们必须在每次调用后端时传递令牌。后端每次都必须检查令牌,以便没有人能够直接调用后端,例如从邮递员那里。

如果在后端实现,则前端不必传递令牌。当后端维护令牌时,api 的外部调用已经被处理。