Authentication ID令牌或访问令牌是否应用于授权SPA功能? 上下文
我有一个与后端RESTAPI通信的单页应用程序。此REST API专门为SPA服务。为了在主页之外导航或使用SPA的任何功能,用户必须首先登录。我正在使用OIDC和Okta对用户进行身份验证。用户可以具有管理员角色,也可以具有用户角色。它们的角色将用于授权允许它们导航到哪些SPA页面,以及允许它们进行哪些REST API调用 问题Authentication ID令牌或访问令牌是否应用于授权SPA功能? 上下文,authentication,oauth-2.0,authorization,openid-connect,okta,Authentication,Oauth 2.0,Authorization,Openid Connect,Okta,我有一个与后端RESTAPI通信的单页应用程序。此REST API专门为SPA服务。为了在主页之外导航或使用SPA的任何功能,用户必须首先登录。我正在使用OIDC和Okta对用户进行身份验证。用户可以具有管理员角色,也可以具有用户角色。它们的角色将用于授权允许它们导航到哪些SPA页面,以及允许它们进行哪些REST API调用 问题 用户登录后,我的应用程序从Okta接收ID令牌和访问令牌。我可以选择将用户角色作为自定义声明包含在ID令牌或访问令牌中。哪个令牌应包含此信息?两者都有 UI需要根据
- UI可以决定显示哪些元素
- 当然,他们使用的数据需要来自可靠的来源
- UI可以从id标记中读取角色,并使用它来控制要显示的内容
- 但是API还需要角色信息来授权请求
- UI可以决定显示哪些元素
- 当然,他们使用的数据需要来自可靠的来源
- UI可以从id标记中读取角色,并使用它来控制要显示的内容
- 但是API还需要角色信息来授权请求
此外,令牌不必是UI和API做出授权决策的唯一数据源。My描述了一种模式,您可以使用它来管理来自多个数据源的索赔。关于答案2。您是否建议UI不根据令牌的内容做出UI决策(例如,显示或隐藏什么),而是调用API以找出访问令牌中的角色?我更新了原始答案。如果希望UI从令牌中读取角色,则应将其添加到id令牌中。但是,API也需要该角色,在这种情况下,您可能还需要将其添加到访问令牌中。谢谢Gary。你的答案很清楚,谢谢你暗示了一个我从未想过的选择。我现在正在浏览你们的博客,内容非常丰富。关于答案#2。您是否建议UI不根据令牌的内容做出UI决策(例如,显示或隐藏什么),而是调用API以找出访问令牌中的角色?我更新了原始答案。如果希望UI从令牌中读取角色,则应将其添加到id令牌中。但是,API也需要该角色,在这种情况下,您可能还需要将其添加到访问令牌中。谢谢Gary。你的答案很清楚,谢谢你暗示了一个我从未想过的选择。我现在正在读你的博客,内容非常丰富。