【问题标题】:Auth2 + Open ID Connect, how to do authorization with internal backend?Oauth2 + Openid Connect,如何使用内部后端进行授权?
【发布时间】:2021-12-16 22:27:49
【问题描述】:

我正在处理一个包含单页应用程序和后端服务的项目。访问此应用程序的唯一方法是通过 One Login 帐户。我的 FE 通过 Oauth2 + Open ID Connect 与 One Login 集成以进行身份​​验证。

用户登录后,FE有Access TokenID Token,所以我们可以得到一些用户信息,比如:email, name,... 这可以用于认证部分。

但是对于授权部分,FE需要传递一个token,其中不仅包括用户信息,还包括用户角色等授权信息。 Access TokenID Token 都没有此信息。

我目前的解决方案是:BE 会提供一个 API 给 FE 将 ID Token(它从 One Login 中获得)交换为一个具有足够授权信息的内部 JWT 令牌,然后 FE 将使用内部令牌与 BE 进行通信。我想知道这种方法是否存在安全风险,或者有什么更好的方法?

【问题讨论】:

    标签: oauth-2.0 authorization single-sign-on openid-connect


    【解决方案1】:

    您遇到了the foreign token problem,您发现第三方令牌对您自己的授权没有用处。解决方案是像您一样控制发布您自己的访问令牌,并使用您自己的声明。

    首选的长期选项是让您的应用重定向到授权服务器 (AS),并让其为您管理与 OneLogin 或其他身份提供商的连接。然后它会发行你可以控制其声明的令牌。

    这些链接可以让您了解优秀 AS 的行为方式,同时保持应用中的代码简单:

    【讨论】:

      猜你喜欢
      • 2018-01-01
      • 2021-10-18
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 2018-04-16
      • 2022-12-17
      相关资源
      最近更新 更多