Microsoft Entra ID 中基于角色的访问控制概述

本文介绍如何了解 Microsoft Entra 基于角色的访问控制。 可通过 Microsoft Entra 角色向管理员授予精细的权限,遵循最低权限原则。 Microsoft Entra 内置和自定义角色的运作原理类似于 适用于 Azure 资源的基于角色的访问控制系统(Azure 角色)中的原理。 这两个基于角色的访问控制系统的区别在于:

  • 使用 Microsoft Graph API 实现对 Microsoft Entra 资源的 Microsoft Entra 角色控制访问,例如用户、组和应用程序
  • 使用 Azure 资源管理实现对 Azure 资源的 Azure 角色控制访问,例如虚拟机或存储

这两个系统都包含角色定义和角色分配,且其用途相似。 但是,Microsoft Entra 角色权限不能用于 Azure 自定义角色,反之亦然。

了解 Microsoft Entra 基于角色的访问控制

Microsoft Entra ID 支持两种类型的角色定义:

内置角色是具有一系列固定权限的现成角色。 不能修改这些角色定义。 Microsoft Entra ID 支持许多内置角色,并且支持的角色还在不断增加。 为了完善功能并满足复杂要求,Microsoft Entra ID 还支持自定义角色。 使用自定义 Microsoft Entra 角色授予权限的过程分为两个步骤,涉及到创建自定义角色定义,然后使用角色分配来分配该角色。 自定义角色定义是从预设列表添加的权限集合。 这些权限与内置角色中使用的权限相同。

创建自定义角色定义(或使用内置角色)后,可以通过创建角色分配将其分配给某个用户。 角色分配在指定的范围向用户授予角色定义中的权限。 此双步过程可让你创建单个角色定义,并在不同的范围多次分配它。 范围定义角色成员有权访问的 Microsoft Entra ID 资源集。 最常见的范围是组织范围。 可以在组织范围分配自定义角色,这意味着,该角色成员对组织中的所有资源拥有角色权限。 还可以在对象范围分配自定义角色。 对象范围的示例是单个应用程序。 同一个角色可以分配给组织中所有应用程序的某个用户,然后分配给另一个用户,但范围仅限 Contoso Expense Reports 应用。

Microsoft Entra ID 如何确定用户是否有权访问资源

下面是 Microsoft Entra ID 用于确定你是否有权访问管理资源的概要步骤。 使用此信息可对访问问题进行故障排除。

  1. 用户(或服务主体)获取 Microsoft Graph 终结点的令牌。
  2. 用户使用颁发的令牌通过 Microsoft Graph 对 Microsoft Entra ID 进行 API 调用。
  3. 根据具体情况,Microsoft Entra ID 采取以下操作之一:
    • 基于用户访问令牌中的 wids 声明评估用户的角色成员身份。
    • 检索为用户应用于(直接或通过组成员身份)执行操作的资源的所有角色分配。
  4. Microsoft Entra ID 确定 API 调用中的操作是否包含在用户针对此资源拥有的角色中。
  5. 如果用户在请求的范围内没有包含该操作的角色,则不授予访问权限。 否则授予访问权限。

角色分配

角色分配是一种 Microsoft Entra 资源,它将角色定义附加到特定范围的安全主体,以授予对 Microsoft Entra 资源的访问权限。 通过创建角色分配来授予访问权限,通过删除角色分配来撤销访问权限。 角色分配的核心包含三个要素:

  • 安全主体 - 获取权限的标识。 它可能是用户、组或服务主体。
  • 角色定义 - 权限的集合。
  • 范围 - 一种限制这些权限的适用范围的方法。

可使用 Microsoft Entra 管理中心、Microsoft Graph PowerShell 或 Microsoft Graph API 创建角色分配列出角色分配。 Microsoft Entra 角色分配不支持 Azure CLI。

下图显示了角色分配的示例。 在此示例中,在 Contoso Widget Builder 应用注册范围为 Chris 分配了“应用注册管理员”自定义角色。 此分配仅授予 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 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 许可证。 若要根据需要查找合适的许可证,请参阅比较免费版和高级版的正式发布功能

后续步骤