Azure 数字孪生中基于角色的访问控制

重要

Azure 数字孪生服务的新版本已发布。 鉴于新服务的扩展功能,本文档集中介绍的原始 Azure 数字孪生服务 (已停用) 。

若要查看新服务的文档,请访问活动的 Azure 数字孪生文档

Azure 数字孪生可实现对空间图中特定数据、资源和操作的精确访问控制。 它通过精细的角色和权限管理来实现,称为 基于角色的访问控制 (RBAC) 。 RBAC 包括“角色”和“角色分配”。 角色标识权限的级别。 角色分配将角色与用户或设备相关联。

使用 RBAC 可将权限授予:

  • 用户。
  • 设备。
  • 服务主体。
  • 用户定义的函数。
  • 属于某个域的所有用户。
  • 租户。

还可以微调访问权限的程度。

RBAC 具有唯一性,原因在于权限沿着空间图继承。

RBAC 的作用是什么?

开发人员可以使用 RBAC 来实现以下目的:

  • 授予用户管理权限,使其能够管理整个建筑内或仅特定房间或楼层内的设备。
  • 授予管理员全局访问权限,使其能够访问整个图或某部分图的所有空间图节点。
  • 向支持专家授予图的读取访问权限,但访问密钥除外。
  • 向域的每个成员授予所有图对象的读取访问权限。

RBAC 最佳做法

基于角色的访问控制是一种继承驱动的安全策略,用于管理访问权限、权限和角色。 子代角色从父角色继承权限。 也可以在不从父角色继承的情况下分配权限。 还可以指定权限以根据需要自定义角色。

例如,空间管理员可能需要全局访问权限,才能运行指定空间的所有操作。 访问涉及空间下面或空间内的所有节点。 设备安装程序可能只需要设备和传感器的读取更新权限。

根据最小特权原则,在任何情况下向角色授予的访问权限都应准确且不超出其完成任务所需的访问权限。 根据此原则,只向某个身份授予

  • 完成其作业所需的访问权限。
  • 合适的角色,且仅限于执行其作业。

重要

请始终遵循最低权限原则。

需要遵循的其他两个重要的基于角色的访问控制做法:

  • 定期审核角色分配,以验证每个角色均拥有正确的权限。
  • 当个人更改角色或分配时,应清除原有角色和分配。

角色

角色定义

角色定义是组成权限和构成角色的其他属性的集合。 角色定义列出了允许的操作,包括具有该角色的任何对象可执行的创建、读取、更新和删除操作。 它还指定权限应用于的对象类型。

下表介绍了 Azure 数字孪生中可用的角色:

角色 说明 Identifier
空间管理员 指定空间和其下所有节点的 CREATE、READ、UPDATE 和 DELETE 权限。 全局权限。 98e44ad7-28d4-4007-853b-b9968ad132d1
用户管理员 用户及用户相关对象的 CREATE、READ、UPDATE 和 DELETE 权限。 空间的 READ 权限 dfaac54c-f583-4dd2-b45d-8d4bbc0aa1ac
设备管理员 设备及设备相关对象的 CREATE、READ、UPDATE 和 DELETE 权限。 空间的 READ 权限 3cdfde07-bc16-40d9-bed3-66d49a8f52ae
密钥管理员 访问密钥的 CREATE、 READUPDATEDELETE 权限。 空间的 READ 权限 5a0b1afc-e118-4068-969f-b50efb8e5da6
令牌管理员 访问密钥的 READ 和 UPDATE 权限。 空间的 READ 权限 38a3bb21-5424-43b4-b0bf-78ee228840c3
用户 空间、传感器和用户(包括其相应的相关对象)的 READ 权限 b1ffdb77-c635-4e7e-ad25-948237d85b30
支持专家 除访问密钥之外的所有内容的 READ 权限 6e46958b-dc62-4e7c-990c-c3da2e030969
设备安装员 设备和传感器(包括其相应的相关对象)的 READ 和 UPDATE 权限。 空间的 READ 权限 b16dd9fe-4efe-467b-8c8c-720e2ff8817c
网关设备 传感器的 CREATE 权限。 设备和传感器的 READ 权限,其中包括相应的相关对象。 d4c69766-e9bd-4e61-bfc1-d8b6e686c7a8

注意

若要检索上述角色的完整定义,请查询系统/角色 API。 阅读创建和管理角色分配了解详细信息。

对象标识符类型

objectIdType(或对象标识符类型)是指赋予某个角色的标识类型。 除 DeviceIdUserDefinedFunctionId 类型外,对象标识符类型与 Azure Active Directory 对象的属性相对应。

下表包含 Azure 数字孪生中支持的对象标识符类型:

类型 说明
UserId 向用户分配角色。
DeviceId 向设备分配角色。
DomainName 向域名分配角色。 具有指定域名的每位用户都将拥有相应角色的访问权限。
TenantId 向租户分配角色。 属于指定 Azure AD 租户 ID 的每位用户都将拥有相应角色的访问权限。
ServicePrincipalId 向服务主体对象 ID 分配角色。
UserDefinedFunctionId 向用户定义的函数 (UDF) 分配角色。

提示

阅读创建和管理角色分配了解如何向服务主体授予权限。

以下参考文档介绍了:

角色分配

Azure 数字孪生角色分配将某个对象(例如用户或 Azure AD 租户)与角色和空间相关联。 向属于该空间的所有对象授予权限。 空间包括其下的整个空间图。

例如,向某用户分配某空间图(代表建筑)的根节点的 DeviceInstaller 角色。 然后,该用户可以读取和更新该节点的设备,以及读取和更新建筑中所有其他子空间的设备。

若要向接收方授予权限,请创建角色分配。 若要撤消权限,请删除角色分配。

重要

阅读创建和管理角色分配了解关于角色分配的详细信息。

后续步骤