Microsoft Entra ID 中基于角色的访问控制概述
本文介绍如何了解 Microsoft Entra 基于角色的访问控制。 Microsoft Entra 角色允许你向管理员授予精细权限,并遵守最低特权原则。 Microsoft Entra 内置和自定义角色的运作原理类似于适用于 Azure 资源的基于角色的访问控制系统(Azure 角色)中的原理。 这两个基于角色的访问控制系统 之间的
- Microsoft Entra 角色使用 Microsoft 图形 API 控制对 Microsoft Entra 资源(如用户、组和应用程序)的访问
- Azure 角色使用 Azure 资源管理控制对 Azure 资源(例如虚拟机或存储)的访问
这两个系统都包含同样使用的角色定义和角色分配。 但是,Microsoft Entra 角色权限不能用于 Azure 自定义角色,反之亦然。
了解 Microsoft Entra 基于角色的访问控制
Microsoft Entra ID 支持两种类型的角色定义:
内置角色是具有一系列固定权限的现成角色。 无法修改这些角色定义。 Microsoft Entra ID 支持许多内置角色,并且支持的角色还在不断增加。 为了完善功能并满足复杂要求,Microsoft Entra ID 还支持自定义角色。 使用自定义Microsoft Entra 角色授予权限的过程分为两个步骤,涉及创建自定义角色定义,然后使用角色分配来分配它。 自定义角色定义是从预设列表中添加的权限集合。 这些权限与内置角色中使用的权限相同。
创建自定义角色定义(或使用内置角色)后,可以通过创建角色分配将其分配给用户。 角色分配向用户授予指定范围的角色定义中的权限。 通过这两个步骤,可以创建单个角色定义,并在不同的范围内多次分配它。 范围定义角色成员有权访问的 Microsoft Entra 资源集。 最常见的范围是组织范围。 可以在组织范围内分配自定义角色,这意味着该角色成员对组织中的所有资源具有角色权限。 还可以在对象范围内分配自定义角色。 对象范围的一个示例是单个应用程序。 可以将同一角色分配给组织中所有应用程序中的一个用户,然后分配给只有 Contoso Expense Reports 应用的作用域的另一个用户。
Microsoft Entra ID 如何确定用户是否有权访问资源
以下是Microsoft Entra ID 用于确定是否有权访问管理资源的概要步骤。 使用此信息排查访问问题。
- 用户(或服务主体)获取指向 Microsoft Graph 终结点的令牌。
- 用户使用颁发的令牌通过 Microsoft Graph 对 Microsoft Entra ID 进行 API 调用。
- 根据情况,Microsoft Entra ID 执行以下操作之一:
- 基于用户访问令牌中的 wids 声明评估用户的角色成员身份。
- 检索为用户应用于(直接或通过组成员身份)执行操作的资源的所有角色分配。
- Microsoft Entra ID 确定 API 调用中的操作是否包含在用户针对此资源拥有的角色中。
- 如果用户在请求的范围内没有包含该操作的角色,则不授予访问权限。 否则授予访问权限。
角色分配
角色分配是一种 Microsoft Entra 资源,它将角色定义附加到特定范围的安全主体,以授予对 Microsoft Entra 资源的访问权限。 通过创建角色分配授予访问权限,通过删除角色分配来撤销访问权限。 其核心是角色分配由三个元素组成:
- 安全主体 - 获取权限的标识。 它可以是用户、组或服务主体。
- 角色定义 - 权限集合。
- 范围 - 一种限制这些权限适用的方法。
可使用 Microsoft Entra 管理中心、Microsoft Graph PowerShell 或 Microsoft Graph API 创建角色分配并列出角色分配。 Azure CLI 不支持 Microsoft Entra 角色分配。
下图显示了角色分配的示例。 示例中,Chris 被分配为 Contoso Widget Builder 应用注册范围内的应用注册管理员自定义角色。 此分配仅针对这一特定应用注册,授予 Chris 应用注册管理员角色的权限。
安全主体
安全主体表示分配了对 Microsoft Entra 资源的访问权限的用户、组或服务主体。 用户是在 Microsoft Entra ID 中具有用户配置文件的个人。 组是已设置为可分配角色的组的新 Microsoft 365 或安全组。 服务主体标识是为应用程序、托管服务和自动化工具创建的标识,用于访问 Microsoft Entra 资源。
角色定义
角色定义(或角色)是权限的集合。 角色定义列出了可以对 Microsoft Entra 资源执行的操作,例如创建、读取、更新和删除。 Microsoft Entra ID 中有两种类型的角色:
- Microsoft创建的无法更改的内置角色。
- 由组织创建和管理的自定义角色。
范围
范围是一种在角色分配过程中,限制对一组特定资源执行允许的操作的方法。 例如,如果要将自定义角色分配给开发人员,但只能管理特定的应用程序注册,则可以将特定应用程序注册作为角色分配中的作用域包含在其中。
分配角色时,请指定以下类型的范围之一:
- 房客
- 管理单元
- Microsoft Entra 资源
如果将Microsoft Entra 资源指定为范围,它可以是下列资源之一:
- Microsoft Entra 组
- 企业应用程序
- 应用程序注册
当在容器范围(如租户或管理单元)内分配角色时,它会授予对其中对象的权限,但不包括对容器本身的权限。 相反,当在资源范围上分配角色时,它会授予对资源本身的权限,但不会扩展到资源范围之外(尤其是不会扩展到 Microsoft Entra 组的成员)。
有关详细信息,请参阅分配 Microsoft Entra 角色。
角色分配选项
Microsoft Entra ID 提供了多个用于分配角色的选项:
- 可以直接向用户分配角色,这是分配角色的默认方式。 可以根据访问要求将内置角色和自定义Microsoft Entra 角色分配给用户。 有关详细信息,请参阅分配 Microsoft Entra 角色。
- 使用 Microsoft Entra ID P1,可以创建可分配角色的组,并将角色分配给这些组。 将角色分配给组而不是个人允许从角色中轻松添加或删除用户,并为组的所有成员创建一致的权限。 有关详细信息,请参阅分配 Microsoft Entra 角色。
- 使用 Microsoft Entra ID P2,可以使用 Microsoft Entra Privileged Identity Management (Microsoft Entra PIM) 提供对角色的实时访问。 此功能允许你向需要角色的用户授予对角色的有限访问权限,而不是授予永久访问权限。 它还提供详细的报告和审核功能。 有关详细信息,请参阅在 Privileged Identity Management 中分配 Microsoft Entra 角色。
许可证要求
在 Microsoft Entra ID 中使用内置角色是免费的。 对于具有自定义角色分配的每个用户,使用自定义角色需要Microsoft Entra ID P1 许可证。 若要查找适合你的要求的许可证,请参阅 比较免费版和高级版的常规可用功能。