【问题标题】:Deleting an user in Azure AD through graph in Express API通过 Express API 中的图形删除 Azure AD 中的用户
【发布时间】:2021-09-17 07:39:56
【问题描述】:

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

API已注册,访问graph的应用范围如下:

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

  • 属性分配管理员
  • 属性赋值阅读器
  • 云应用管理员
  • 报告阅读器

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

反正我是这样调用graph的:

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)
}

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

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

【问题讨论】:

  • 除了您的 socpe 之外,您是否在 azure 门户上拥有 User.ReadWrite.All 应用程序权限?并确认您已接受管理员同意。必须有Global AdministratorUser Administrator才能执行删除操作/
  • 这些角色不够执行delete operation属性赋值administrator Attribute assignment reader Cloud application administrator Reports reader
  • @MdFaridUddinKiron 是的,添加并授予了应用程序范围。我可能怀疑我需要将“用户管理员”添加到我的服务主体 - 但我似乎无法在任何地方添加它?这是免费层 azure 广告的限制吗?
  • 我不确定您可以查看here 的免费路径,但此操作必须使用Global AdministratorUser Administrator
  • 这验证了我最初的想法——我只是怀疑如何将角色添加到校长。当我去Enterprise applications -> principal name -> Roles and administrators 时,没有添加另一个角色的选项。

标签: javascript azure azure-active-directory


【解决方案1】:

您必须具有全局管理员用户管理员角色分配才能删除组织中的用户。 全局管理员可以删除任何用户,包括其他管理员。用户管理员可以删除任何非管理员用户、帮助台管理员和其他用户管理员。更多信息请见Administrator role permissions in Azure AD

更多详情请参考document

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

1) 登录Azure portalAzure AD admin center

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

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

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

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

更多详情请参考document

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多