首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从api作用域向id令牌添加作用域

如何从api作用域向id令牌添加作用域
EN

Stack Overflow用户
提问于 2020-06-05 22:50:06
回答 1查看 212关注 0票数 0

我在Azure有两个应用程序注册:

  1. 一个客户端应用程序(Web),它可以发出id和访问令牌,并具有从API添加的所有作用域。
  2. 一个API注册,它了解web应用程序并向它公开一些作用域。

在API注册的清单中,我定义了一些用户角色。这些角色分配给相应的企业应用程序中的用户。

web应用程序发布的该API的所有访问令牌都包含这些角色,我的API可以以这种方式授权。

但是我的SPA只有不知道这些角色的id令牌。

我解决这个问题的办法是:

  1. 我可以让我的SPA解析访问令牌并提取角色。但这并不是MS推荐的,所以我不想这么做--尽管它会起作用。
  2. 我还可以将访问令牌发送到一个API端点,该端点可以解析令牌并为我返回角色。这已经更好了,但我仍然不喜欢这种方法。

是否有可能在web应用程序发出的ID标记中包含来自API的角色?如果我将角色放在web应用程序本身的清单中,这些角色就会出现在ID令牌中。

但是我不想在API和web应用程序清单中有多余的角色。

解决我的问题的合适方法是什么?

最好是将所有API角色也包含在web应用程序发出的ID令牌中。但我没办法这么做..。

EN

回答 1

Stack Overflow用户

发布于 2020-06-07 19:59:06

您所遇到的是OAuth体系结构中的两个数据源,您的UI和API通常需要处理这两种类型:

  • 通用中心数据,如用户id、名称、电子邮件、作用域
  • 特定于应用程序的数据,如角色、首选项、授权规则

在大多数情况下,以上方法的备选方案2是首选方法:

  • UI将访问令牌发送到API端点,如GET /api/userclaims
  • API可以返回UI所需的任何声明。
  • 对于多个UI和API,随着时间的推移很容易更改。

在API中使用声明是将两个用户数据源绑定在一起的方法,而不需要将所有声明都放在令牌中。我的几篇博客文章进一步探讨了这个主题:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62225192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档