首页 > 解决方案 > 通过 Express API 中的图形删除 Azure AD 中的用户

问题描述

我有一个 API,我想通过它删除 Azure AD 中的用户。

该 API 已注册,并具有以下访问图的应用程序范围:

此外,API 具有在创建时分配的默认角色,即:

^ 不确定这些是否重要 - 尽管如此,我不确定我是否可以在免费层级下分配任何其他角色。

无论如何,我调用图表如下:

module.exports.deleteUserById = async (objectId) => {
    const ccrRequest = {
        scopes: ['https://graph.microsoft.com/.default'],
    }
    const accessToken = await cca.acquireTokenByClientCredential(ccrRequest)

    const options = {
        method: "DELETE",
        headers: { 'Authorization': `Bearer ${accessToken.accessToken}`, 'Content-Type': "application/json" },
    }

    return await fetch(graphUsers() + `/${objectId}`, options)
}

以上应该可以工作,但是当我尝试删除任何给定用户时,调用会返回错误:

代码:'Authorization_RequestDenied' 消息:'权限不足,无法完成操作。'

标签: javascriptazureazure-active-directory

解决方案


您必须具有全局管理员用户管理员角色分配才能删除组织中的用户。全局管理员可以删除任何用户,包括其他管理员。用户管理员可以删除任何非管理员用户、帮助台管理员和其他用户管理员。有关详细信息,请参阅 <a href="https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference" rel="nofollow noreferrer">Azure AD 中的管理员角色权限

有关更多详细信息,请参阅此文档

要将特定角色分配给用户,请按照以下步骤操作

1)登录 <a href="https://portal.azure.com/" rel="nofollow noreferrer">Azure 门户或 <a href="https://aad.portal.azure.com/" rel="nofollow noreferrer">Azure AD 管理中心。

2)选择 <strong>Azure Active Directory > 角色和管理员查看所有可用角色的列表。

在此处输入图像描述

3)选择一个角色以查看其分配。为了帮助您找到所需的角色,请使用添加过滤器来过滤角色。

4)选择添加分配,然后选择要分配给此角色的用户。

在此处输入图像描述

5)选择添加以分配角色。

有关更多详细信息,请参阅此文档


推荐阅读