users.get(principalID)的天蓝色图权限

时间:2019-01-07 14:21:10

标签: javascript node.js azure azure-active-directory azure-ad-graph-api

我的代码(Node.js):

const GraphkManagementClient = require('azure-graph');
client = new GraphkManagementClient(credentials, tenantId);
client.users.get(principalID);

最后一行抛出:

  

Authorization_RequestDenied:权限不足,无法完成   操作。

我知道如何在Azure门户上授予特权,但是我不知道哪一个是执行此操作的azure-graph的正确特权。列表太长了:

enter image description here

(这只是列表的开头)

2 个答案:

答案 0 :(得分:1)

首先,您要根据问题中的屏幕截图为错误的API分配权限。它会显示“ Microsoft Graph”,尽管您的代码将使用Azure AD Graph API。

在Azure门户中,导航到Azure Active Directory>应用程序注册>您的应用程序>所需权限>添加(现在在“选择API”中选择“ Windows Azure Active Directory”)

enter image description here

现在,如果代码中使用的凭据是客户端ID /应用ID和应用密钥,那么您需要在“应用权限”下分配“读取目录数据”。对于像msRestAzure.loginWithServicePrincipalSecret

这样的代码

enter image description here

否则,如果您提示用户输入其凭据并进行诸如交互式登录之类的操作,则在“委派权限”下分配“读取目录数据”。对于像msRestAzure.interactiveLogin()

这样的代码

enter image description here

分配了相关权限后,如果其中任何一个需要管理员同意,就像我在上面显示的两种情况中一样,请先获得管理员同意。您可以在过程结束时使用“授予权限”按钮方便地为同一租户执行此操作。

enter image description here

答案 1 :(得分:0)

在Azure Active Directory中的“应用程序注册”的Microsoft Graph权限下,授予“读取目录数据”权限。这应该足以使该呼叫起作用。如果该值过高,请参考此以获取更多信息:

Microsoft Graph Permissions Reference

相关问题