首页 > 解决方案 > 为什么我的 JWT 令牌范围中缺少 Azure 权限?

问题描述

我在我的 JWT 中显示为范围的用户授予我的应用程序的权限存在问题。

我想让用户在我的页面上查看他的租户列表(Office 365)。为此,我需要一个带有https://management.azure.com/user_impersonation范围的令牌。我将权限添加到 Azure API 权限。当用户第一次登录时,他会看到:

许可请求

在这个屏幕上,我假设我的设置有效,因为用户被要求授予我的应用程序权限以获得我需要的权限(以您的身份访问 Azure 服务管理)。但是当我将 JWT 粘贴到JWT 调试器上时,我看不到作用user_impersonation域中的作用域。

我明白了:

scp 变量值

我已经尝试从测试用户的应用程序(在他们的 Azure 门户中)中删除该应用程序,以使其再次征求同意,但它仍然是一样的。其他测试用户也有同样的结果。我需要的只是user_impersonation在范围内查看。这将允许我调用返回用户租户列表的 API 端点。

标签: azurepermissionsjwtazure-active-directorymicrosoft-graph-api

解决方案


您需要获取https://management.azure.com资源的访问令牌。或者,如果使用 v2,请为https://management.azure.com/user_impersonation范围请求它。

这看起来像一个 MS Graph API 令牌。

访问令牌始终仅对一个 API 有效,因此您需要为 Azure 管理 API 请求令牌。


推荐阅读