Azure AD 安全 API - GetAccessTokenForUserAsync 不包括索赔角色。

问题描述 投票:0回答:1

我有一个调用API的网站。为了从网站上调用API,我首先使用GetAccessTokenForUserAsync(scope)获取一个jwt token。

我的问题是,这个方法不能在 jwt token 中获取用户的角色。我的 user.identity.claim 有一些角色,但它们并不包含在 jwt token 中。

我遗漏了什么?

我试图将角色包含在 jwt token 中,因为我需要保护我的 api 方法。例如,一个方法只能由AdminMember调用,其他方法只能由SpecialMember调用。

是否有其他方法可以在不发送用户角色的情况下保护我的api?

谢谢,谢谢

.net-core azure-active-directory azure-web-sites
1个回答
0
投票

由于角色是在你的客户端应用的注册中定义的,所以它们只能在它的令牌中获得。

所以,从根本上说有两个选择。

  1. 在API应用的注册中也定义相同的角色。你需要将该应用上的角色也分配给用户。这可以通过使用组来进行角色分配来简化。
  2. 更改API以使用相同的应用注册。现在你将获得访问令牌中的角色。使用一个应用程序注册可能意味着违反最小权限,因为这样你想给API或客户端应用程序的任何权限也会给另一个。

根据你的情况,你可以选择其中一个选项:)

© www.soinside.com 2019 - 2024. All rights reserved.