javascript - 通过 Express API 中的图形删除 Azure AD 中的用户
问题描述
我有一个 API,我想通过它删除 Azure AD 中的用户。
该 API 已注册,并具有以下访问图的应用程序范围:
- User.ReadWrite.All (根据文档应该足够了)
此外,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' 消息:'权限不足,无法完成操作。'
解决方案
您必须具有全局管理员或用户管理员角色分配才能删除组织中的用户。全局管理员可以删除任何用户,包括其他管理员。用户管理员可以删除任何非管理员用户、帮助台管理员和其他用户管理员。有关详细信息,请参阅 <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)选择添加以分配角色。
有关更多详细信息,请参阅此文档
推荐阅读
- r - optim 中的错误(init [mask],armaCSS,method = optim.method,hessian = FALSE,:由 optim 提供的非有限值
- python - python速成课程19-1编辑帖子不起作用
- java - Google APIs Java 客户端库中“setApplicationName”的用途是什么?
- javascript - 是否可以将参数从一个 react-native 应用程序传输到另一个 react-native 应用程序?
- javascript - 取消从另一个函数返回的前一个 observable
- isabelle - 为什么这个看似不正确的证明对伊莎贝尔来说是可以的?
- javascript - 即使在刷新页面时也保存侧菜单栏的状态
- jquery - AddClass 不起作用 - 无法定义 | jQuery
- javascript - 在 JQuery 中查找列表的下一个元素 data-id
- javascript - React - Webpack module.exports 需要