什么是 Microsoft Entra ID 中的自定义安全属性?

Microsoft Entra ID 中的自定义安全属性是特定于业务的属性(键值对),你可以定义这些属性并将其分配给 Microsoft Entra 对象。 这些属性可用于存储信息、对对象进行分类,或对特定的 Azure 资源强制实施细化的访问控制。 自定义安全属性可与基于 Azure 属性的访问控制 (ABAC) 结合使用。

为什么使用自定义安全属性?

以下是一些可以使用自定义安全属性的场景:

  • 扩展用户配置文件,例如向所有员工添加“每小时薪金”。
  • 确保只有管理员才能在员工的档案中查看“每小时薪金”属性。
  • 对数百或数千个应用程序进行分类,以便轻松创建可筛选的清单以供审核。
  • 授予用户对属于项目的 Azure 存储 Blob 的访问权限。

我可以用自定义安全属性做什么?

自定义安全属性包括以下功能:

  • 为租户定义特定于业务的信息(属性)。
  • 在用户和应用程序上添加一组自定义安全属性。
  • 将自定义安全属性与查询和筛选器结合使用来管理 Microsoft Entra 对象。
  • 提供属性治理,让属性可以确定谁有权访问。

以下场景不支持自定义安全属性:

自定义安全属性的特征

自定义安全属性包括以下功能:

  • 租户范围内可用
  • 包括说明
  • 支持不同的数据类型:Boolean、integer、string​
  • 支持单个值或多个值
  • 支持用户定义的自由格式值或预定义值
  • 可以为本地 Active Directory 中的目录同步用户分配自定义安全属性

以下示例显示了分配给用户的多个自定义安全属性。 自定义安全属性是不同的数据类型,具有单个值、多个值、自由格式值或预定义值。

Screenshot of custom security attribute examples assigned to a user.

支持自定义安全属性的对象

可以为以下 Microsoft Entra 对象添加自定义安全属性:

  • Microsoft Entra 用户
  • Microsoft Entra 企业应用程序(服务主体)

自定义安全属性与扩展相比如何?

虽然扩展和自定义安全属性都可用于扩展 Microsoft Entra ID 和 Microsoft 365 中的对象,但它们适用于完全不同的自定义数据方案。 下面是自定义安全属性与扩展的一些比较方式:

功能 扩展 自定义安全属性
扩展 Microsoft Entra ID 和 Microsoft 365 对象
支持的对象 取决于扩展类型 用户和服务主体
受限访问 错误。 有权读取对象的任何人都可以读取扩展数据。 是的。 读取和写入访问权限通过一组单独的权限和基于角色的访问控制 (RBAC) 进行限制。
使用时机 存储应用程序要使用的数据
存储非敏感数据
存储敏感数据
用于授权方案
许可要求 在所有版本的 Microsoft Entra ID 中可用 在所有版本的 Microsoft Entra ID 中可用

有关如何使用扩展的详细信息,请参阅使用扩展将自定义数据添加到资源

使用自定义安全属性的步骤

  1. 检查权限

    请检查你是否分配有属性定义管理员属性分配管理员角色。 如果没有,请与管理员联系,让管理员在租户范围或属性集范围向你分配适当的角色。 默认情况下,全局管理员和其他管理员角色无权读取、定义或分配自定义安全属性。 如果需要,全局管理员可以将这些角色分配给自己。

    Diagram showing checking permissions to add custom security attributes in Microsoft Entra ID.

  2. 添加属性集

    添加属性集以对相关的自定义安全属性进行分组和管理。 了解详细信息

    Diagram showing adding multiple attribute sets.

  3. 管理属性集

    指定谁可以在属性集中读取、定义或分配自定义安全属性。 了解详细信息

    Diagram showing assigning attribute definition administrators and attribute assignment administrators to attribute sets.

  4. 定义属性

    将自定义安全属性添加到目录中。 可以指定数据类型(Boolean、integer 或 string)以及值是预定义值、自由格式值、单个值还是多个值。 了解详细信息

    Diagram showing delegated administrators defining custom security attributes.

  5. 分配属性

    将自定义安全属性分配给适用于你的业务方案的 Microsoft Entra 对象。 了解详细信息

    Diagram showing delegated administrators assigning custom security attributes to Microsoft Entra objects.

  6. 使用属性

    筛选使用自定义安全属性的用户和应用程序。 了解详细信息

    将使用自定义安全属性的条件添加到 Azure 角色分配,以用于细化的访问控制。 了解详细信息

术语

为了更好地了解自定义安全属性,可以参考以下术语列表。

术语 定义
属性定义 自定义安全属性或键值对的架构。 例如,自定义安全属性名称、说明、数据类型和预定义值。
属性集 相关自定义安全属性的集合。 可以将属性集委托给其他用户,用于定义和分配自定义安全属性。
属性名称 属性集内自定义安全属性的唯一名称。 属性集和属性名称的组合构成了租户的唯一属性。
属性分配 将自定义安全属性分配给 Microsoft Entra 对象,例如用户和企业应用程序(服务主体)。
预定义值 一个可以用于自定义安全属性的值。

自定义安全属性的属性

下表列出了可以为属性集和自定义安全属性指定的属性。 有些属性是不可变的,以后无法更改。

properties 必须 以后可更改 说明
属性集名称 属性集的名称。 在租户中必须是唯一的。 不能包含空格或特殊字符。
属性集说明 属性集的说明。
属性最大数目 可在属性集中定义的自定义安全属性的最大数量。 默认值为 null。 如果不指定,则管理员最多可为每个租户添加 500 个活动属性。
属性集 相关自定义安全属性的集合。 每个自定义安全属性都必须是属性集的一部分。
属性名 自定义安全属性的名称。 在属性集中必须是唯一的。 不能包含空格或特殊字符。
属性说明 自定义安全属性的说明。
数据类型 自定义安全属性值的数据类型。 支持的类型有 BooleanIntegerString
允许分配多个值 指示是否可以将多个值分配给自定义安全属性。 如果数据类型设置为 Boolean,则不能设置为“是”。
只允许分配预定义值 指示是否只能将预定义值分配给自定义安全属性。 如果设置为“否”,则允许自由格式值。 稍后可以从“是”更改为“否”,但不能将其从“否”更改为“是”。 如果数据类型设置为 Boolean,则不能设置为“是”。
预定义值 所选数据类型的自定义安全属性的预定义值。 稍后可以添加更多预定义值。 值可以包括空格,但不允许使用一些特殊字符。
预定义值处于活动状态 指定预定义值是处于活动状态还是已停用状态。 如果设置为 false,则不能将预定义值分配给任何其他受支持的目录对象。
属性是活动的 指定自定义安全属性是处于活动状态还是已停用状态。

限制和约束

下面是自定义安全属性的一些限制和约束。

资源 限制 说明
每个租户的属性定义 500 仅适用于租户中的活动属性
每个租户的属性集 500
属性集名称长度 32 Unicode 字符,不区分大小写
属性集说明长度 128 Unicode 字符
属性名称长度 32 Unicode 字符,不区分大小写
属性说明长度 128 Unicode 字符
预定义值 Unicode 字符,区分大小写
每个属性定义的预定义值 100
属性值长度 64 Unicode 字符
每个对象分配的属性值 50 值可以分布在单值和多值属性中。
示例:5 个属性各包含 10 个值或 50 个属性各包含 1 个值
不允许将特殊字符用于:
属性集名称
特性名
<space> ` ~ ! @ # $ % ^ & * ( ) _ - + = { [ } ] \| \ : ; " ' < , > . ? / 属性集名称和属性名称不能以数字开头
属性值允许的特殊字符 全部特殊字符
属性值在与 Blob 索引标记配合使用时允许的特殊字符 <space> + - . : = _ / 如果计划将属性值与 Blob 索引标记配合使用,则只有这些才是 Blob 索引标记允许的特殊字符。 有关详细信息,请参阅设置 Blob 索引标记

自定义安全属性角色

Microsoft Entra ID 提供了内置角色来使用自定义安全属性。 “属性定义管理员”角色是管理自定义安全属性所需的最小角色。 属性分配管理员角色是为用户和应用程序等 Microsoft Entra 对象分配自定义安全属性值所需的最低角色。 可以在租户范围或属性集范围分配这些角色。

角色 权限
属性定义读取者 读取属性集
读取自定义安全属性定义
属性定义管理员 管理属性集的所有方面
管理自定义安全属性定义的所有方面
属性分配读取者 读取属性集
读取自定义安全属性定义
读取用户和服务主体的自定义安全属性键和值
属性分配管理员 读取属性集
读取自定义安全属性定义
读取和更新用户和服务主体的自定义安全属性键和值
属性日志读取器 读取自定义安全属性的审核日志
属性日志管理员 读取自定义安全属性的审核日志
为自定义安全属性配置诊断设置

重要

默认情况下,全局管理员和其他管理员角色无权读取、定义或分配自定义安全属性。

Microsoft Graph API

可以使用 Microsoft Graph API 以编程方式管理自定义安全属性。 有关详细信息,请参阅概述:使用 Microsoft Graph API 自定义安全属性

可以使用 API 客户端(例如 Graph Explorer 或 Postman)更轻松地尝试使用 Microsoft Graph API 来获得自定义安全属性。

Screenshot that shows a Microsoft Graph API call for custom security attributes.

许可要求

此功能免费使用,并且包括在你的 Azure 订阅中。

后续步骤