【发布时间】:2020-07-19 19:29:34
【问题描述】:
上下文
我有一个与后端 REST API 通信的单页应用程序。此 REST API 专门用于为 SPA 服务。为了在主页之外导航或使用 SPA 的任何功能,用户必须先登录。我将 OIDC 与 Okta 一起使用来验证用户身份。用户可以具有管理员角色或用户角色。他们的角色将用于授权他们可以导航到哪些 SPA 页面,以及允许他们进行哪些 REST API 调用。
问题
-
用户登录后,我的应用程序会收到来自 Okta 的 ID 令牌和访问令牌。我可以选择将用户的角色作为自定义声明包含在 ID 令牌或访问令牌中。哪个令牌应包含此信息?两者都有?
-
UI 需要根据用户角色做出一些授权决策。 例如,要显示或隐藏哪些 HTML 元素,以及哪些 SPA 路由是可导航的。应该通过检查 ID 令牌还是访问令牌来做出这些决定?其他?
-
通过 SPA 调用我的后端 API 时,我应该转发我的 SPA 收到的 ID 令牌和访问令牌吗?只是访问令牌?或者我应该为我的后端 REST API 设置不同的授权服务器,并让我的 SPA 访问 另一个 访问令牌?
【问题讨论】:
标签: authentication oauth-2.0 authorization openid-connect okta