我在 Azure 中有两个应用注册:
- 一个客户端应用程序 (Web),它可以发出 id 和访问令牌,并添加了 API 的所有范围。
- 一个了解 Web 应用程序并向其公开一些范围的 API 注册。
在 API 注册清单中,我定义了一些用户角色。这些角色分配给相应企业应用程序中的用户。
由 Web 应用程序发布的该 API 的所有访问令牌都包含这些角色,并且我的 API 可以通过这种方式进行授权。
但是我的 SPA 只有不知道这些角色的 id 令牌。
我解决这个问题的方法是:
- 我可以让我的 SPA 解析访问令牌并提取角色。但是 MS 不建议这样做,所以我不想这样做 - 即使它会起作用。
- 我还可以将访问令牌发送到一个 API 端点,它可以解析令牌并为我返回角色。这已经更好了,但我仍然不喜欢这种方法。
是否有可能在 Web 应用程序发布的 ID 令牌中包含来自 API 的角色?如果我将角色放在 Web 应用程序本身的清单中,这些角色就会出现在 ID 令牌中。
但我不想在 API 和 Web 应用程序清单中扮演多余的角色。
什么是解决我的问题的合适方法?
最好将所有 API 角色也包含在 Web 应用程序发布的 ID 令牌中。但我找不到任何办法这样做......