Azure 为什么要得到这个;身份验证“U MissingOrMalformed”;调用Microsoft Graph API时出错?

Azure 为什么要得到这个;身份验证“U MissingOrMalformed”;调用Microsoft Graph API时出错?,azure,azure-active-directory,azure-functions,azure-web-app-service,azure-sdk,Azure,Azure Active Directory,Azure Functions,Azure Web App Service,Azure Sdk,我想使用azure graph sdk获取所有用户列表。但是在调用client.users.list()函数之后,我得到了错误(“Authentication\u MissingOrMalformed”)。如何修复此错误并获取所有用户列表。 如何使用Azure Graph SDK(Nodejs)从Azure Active Directory获取所有用户列表?主要问题是缺少{tokenAcademy:'Graph'},请参阅我的代码: const msRestAzure = require('ms

我想使用azure graph sdk获取所有用户列表。但是在调用client.users.list()函数之后,我得到了错误(“Authentication\u MissingOrMalformed”)。如何修复此错误并获取所有用户列表。


如何使用Azure Graph SDK(Nodejs)从Azure Active Directory获取所有用户列表?

主要问题是缺少
{tokenAcademy:'Graph'}
,请参阅我的代码:

const msRestAzure = require('ms-rest-azure');
const { GraphRbacManagementClient }  = require('azure-graph');

module.exports = async function (context, req) {
   try{
        const credentials = await msRestAzure.loginWithServicePrincipalSecret(clientId, clientSecret, tanent);
        const client = new GraphRbacManagementClient(credentials, tenantId);
        const results = await client.users.list();

        context.res = {
           body: results
        };
   } catch (error) {
       console.log('error==> ',error);   // Getting error: Authentication_MissingOrMalformed
       context.res = {
           body: error
       };
   }
}
运行上述代码后,如果广告中的用户数大于100,它将输出
100
,因为graph api可以在一个页面中响应100个用户(默认值为100)

=================================================更新================================

请检查是否已将权限添加到Azure AD中注册的应用程序。如果未添加权限,请按照以下步骤操作:

1。转到在Azure广告中注册的应用程序(您使用其
clientId

2.添加权限

3.单击“为xxx授予管理员许可”。


4。几分钟后,再次运行代码。

是否尝试。。。正在读取错误消息。。。思考一下它的建议?嗨,请参考下面我提供的解决方案。如果这有助于解决您的问题,请将其作为答案(单击“我的答案”旁边的复选标记,将其从灰色变为填充)。提前感谢~l{“code”:“Authorization_RequestDenied”,“message”:{“lang”:“en”,“value”:“权限不足,无法完成此操作”。}Hi@Param错误消息表示您没有权限执行此操作。您需要添加权限,请参阅“更新”在我的回答中。@Param您是否成功运行了代码?如果仍然有任何问题,请让我知道。我真的很抱歉延迟回复您。事实上我没有API权限,这就是为什么我出现上述错误的原因。我与管理员进行了交谈,我将在更新后尽快获得权限。再次感谢!!
const msRestAzure = require('ms-rest-azure');
const { GraphRbacManagementClient }  = require('azure-graph');

module.exports = async function (context, req) {
    try{
         msRestAzure.loginWithServicePrincipalSecret("clientId", "clientSecret", "tenantId", { tokenAudience: 'graph' }, function (err, credentials) {
            if (err) return console.log(err);
            const client = new GraphRbacManagementClient(credentials, "tenantId");

            client.users.list((err, results, request, response) => {
                if (err) return console.log(err);
                console.log(JSON.parse(response.body).value.length);
            });
            
         });
    } catch (error) {
        console.log('error==> ',error);
        context.res = {
            body: error
        };
    }
}