我对用户在我的JWT中显示为作用域的应用授予的权限有疑问。
我想允许用户在我的页面上看到他的租户列表(Office 365)。为此,我需要一个https://management.azure.com/user_impersonation
范围的令牌。我将权限添加到了Azure API权限。当用户首次登录时,他会看到以下内容:
在此屏幕上,我假定我的设置可以正常运行,因为系统要求用户向我的应用授予我所需的权限(随您访问Azure服务管理)。但是,当我将JWT粘贴到the JWT Debugger上时,在范围中看不到范围user_impersonation
。
我明白了:
我已经尝试从测试用户的应用程序(在其Azure门户中)中删除该应用程序,以使其再次征求同意,但是仍然是相同的。其他测试用户也有相同的结果。
我需要的只是在范围中查看user_impersonation
。这样,我就可以调用API端点,该端点返回用户的租户列表。
答案 0 :(得分:1)
您需要获取https://management.azure.com
资源的访问令牌。
或者,如果使用v2,请在https://management.azure.com/user_impersonation
范围内请求它。
这看起来像是MS Graph API令牌。
访问令牌始终仅对一个API有效,因此您需要为Azure Management API要求一个令牌。
答案 1 :(得分:0)
现在可以使用!
因此,我尝试在一个令牌中同时获得https://management.azure.com/和https://graph.microsoft.com/的范围。如Juunas所述,您必须为每个API获取一个单独的令牌。但是,尽管可以同时征得双方的同意。
我的流程是这样: