azure - 为什么我的 JWT 令牌范围中缺少 Azure 权限?
问题描述
我在我的 JWT 中显示为范围的用户授予我的应用程序的权限存在问题。
我想让用户在我的页面上查看他的租户列表(Office 365)。为此,我需要一个带有https://management.azure.com/user_impersonation
范围的令牌。我将权限添加到 Azure API 权限。当用户第一次登录时,他会看到:
在这个屏幕上,我假设我的设置有效,因为用户被要求授予我的应用程序权限以获得我需要的权限(以您的身份访问 Azure 服务管理)。但是当我将 JWT 粘贴到JWT 调试器上时,我看不到作用user_impersonation
域中的作用域。
我明白了:
我已经尝试从测试用户的应用程序(在他们的 Azure 门户中)中删除该应用程序,以使其再次征求同意,但它仍然是一样的。其他测试用户也有同样的结果。我需要的只是user_impersonation
在范围内查看。这将允许我调用返回用户租户列表的 API 端点。
解决方案
您需要获取https://management.azure.com
资源的访问令牌。或者,如果使用 v2,请为https://management.azure.com/user_impersonation
范围请求它。
这看起来像一个 MS Graph API 令牌。
访问令牌始终仅对一个 API 有效,因此您需要为 Azure 管理 API 请求令牌。
推荐阅读
- jwt - 不使用黑名单的 JWT 注销功能?
- javascript - ValueGetter 不适用于分组行
- mysql - Laravel:如何更改变形表中的默认索引键长度
- javascript - 使用 chrome 扩展的 printerProvider 侦听器定位打印机
- matlab - 如何保护将在已部署应用程序中读取/写入的文件
- java - 如何将消息从 servlet 传递到引导模式
- django - 使用 Django 2 中的数据库条目填充的引导导航栏下拉列表
- react-native - 插件/预设文件不允许导出对象,只有功能
- javascript - 如何使用户能够选择两个无线电并以它们的值作为参数执行一个函数
- ios - 如何在发布版本中获取 iOS 堆栈跟踪?