本文将介绍新 Azure 数字孪生实例的设置步骤,包括创建实例和设置身份验证。 完成本文操作后,即可对 Azure 数字孪生实例编程。
新的 Azure 数字孪生实例的完整设置包括两部分:
- 创建实例。
- 设置用户访问权限:Azure 用户需要对 Azure 数字孪生实例具有“Azure 数字孪生数据所有者”角色,才能管理该实例及其数据。 在此步骤中,作为 Azure 订阅的所有者/管理员,将此角色分配给管理 Azure 数字孪生实例的人员。 此人可能是你自己或组织中的其他人。
重要
若要完成此完整文章并设置可用实例,需要有权管理 Azure 订阅上的资源和用户访问。 任何能够在订阅上创建资源的人都可以完成第一步,但第二步需要用户访问权限管理权限(或具有这些权限的人员的合作)。 可以在 “先决条件:用户 访问权限”步骤的“所需权限”部分阅读有关所需权限的详细信息。
先决条件
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 入门。
如果想要在本地运行 CLI 引用命令, 请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅 如何在 Docker 容器中运行 Azure CLI。
如果使用本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅 使用 Azure CLI 向 Azure 进行身份验证。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展的详细信息,请参阅 使用和管理 Azure CLI 中的扩展。
运行 az 版本 以查找已安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
设置 CLI 会话
若要开始在 CLI 中使用 Azure 数字孪生,首先要做的是登录并将 CLI 上下文设置为此会话的订阅。 在 CLI 窗口中运行以下命令:
az login
az account set --subscription "<your-Azure-subscription-ID>"
提示
还可以使用订阅名称,而不是上一命令中的 ID。
如果首次将此订阅与 Azure 数字孪生一起使用,请运行以下命令,向 Azure 数字孪生命名空间注册。 (如果你不确定,即使你过去某个时候运行过它,重新运行也是可以的。)
az provider register --namespace 'Microsoft.DigitalTwins'
接下来,添加 适用于 Azure CLI 的 Azure IoT 扩展Microsoft,以启用用于与 Azure 数字孪生和其他 IoT 服务交互的命令。 运行此命令以确保你已安装最新版本的扩展:
az extension add --upgrade --name azure-iot
现在,你已准备好在 Azure CLI 中使用 Azure 数字孪生。
可以通过随时运行 az dt --help
来验证此状态,以查看可用的顶级 Azure 数字孪生命令列表。
创建 Azure 数字孪生实例
在本部分中,你将使用 CLI 命令创建 Azure 数字孪生的新实例。 你需要提供:
- 实例部署所在的资源组。 如果还没有现有资源组,可以使用以下命令立即创建一个资源组:
az group create --___location <region> --name <name-for-your-resource-group>
- 用于部署的区域。 若要查看哪些区域支持 Azure 数字孪生,请访问各区域的 Azure 产品可用性。
- 你的实例的名称。 如果订阅的区域中已有另一个已使用指定名称的 Azure 数字孪生实例,系统会要求你选取其他名称。
使用以下 az dt 命令 中的这些值创建实例:
az dt create --dt-name <name-for-your-Azure-Digital-Twins-instance> --resource-group <your-resource-group> --___location <region>
可以在创建期间向命令添加多个可选参数来指定有关资源的其他事项,包括为实例创建托管标识或启用/禁用公共网络访问。 有关支持参数的完整列表,请参阅 az dt create 参考文档。
使用托管标识创建实例
当您在 Azure 数字孪生实例中启用 托管标识 时,会在 Microsoft Entra ID 中为其创建一个身份。 然后,可以使用该标识向其他服务进行身份验证。 可以在创建实例时或 以后在现有实例上为 Azure 数字孪生实例启用托管标识。
对所选托管标识类型使用以下 CLI 命令。
系统分配的标识命令
若要创建启用了系统分配的标识的 Azure 数字孪生实例,可以向用于创建实例的 命令添加 --mi-system-assigned
参数。 (有关创建命令的详细信息,请参阅其 参考文档 或 有关设置 Azure 数字孪生实例的常规说明)。
若要创建具有系统分配的标识的实例,请按如下所示添加 --mi-system-assigned
参数:
az dt create --dt-name <new-instance-name> --resource-group <resource-group> --mi-system-assigned
用户分配的标识命令
若要创建具有用户分配的标识的实例,请使用 参数提供现有用户分配的标识的 ID,如下所示:
az dt create --dt-name <new-instance-name> --resource-group <resource-group> --mi-user-assigned <user-assigned-identity-resource-ID>
验证是否成功并收集重要值
如果实例已成功创建,CLI 中的结果如下所示,输出有关所创建资源的信息:
记下输出中 Azure 数字孪生实例的“hostName”、“name”和“resourceGroup”。 这些值都很重要,在继续使用 Azure 数字孪生实例时,可能需要使用这些值来设置身份验证和相关 Azure 资源。 如果其他用户正在针对实例进行编程,则应与他们共享这些值。
提示
你可以随时通过运行 az dt show --dt-name <your-Azure-Digital-Twins-instance>
来查看这些属性和你的实例的所有属性。
你现在已准备好 Azure 数字孪生实例。 接下来,提供相应的 Azure 用户权限来管理它。
设置用户访问权限
Azure 数字孪生使用 Microsoft Entra ID 进行基于角色的访问控制(RBAC)。 这意味着,在用户可以对 Azure 数字孪生实例进行数据平面调用之前,需要为该用户分配具有相应权限的角色。
对于 Azure 数字孪生,此角色是“Azure 数字孪生数据所有者”。 可以在 Azure 数字孪生解决方案的安全性中详细了解角色和安全性。
注意
此角色与 Microsoft Entra ID“所有者”角色不同,后者也可以在 Azure 数字孪生实例范围内分配。 这是两个不同的管理角色,“所有者”不会授予对数据平面功能的访问权限,而“Azure 数字孪生数据所有者”则可以授予。
本部分介绍如何在 Azure 数字孪生实例中为用户创建角色分配,并在 Azure 订阅上的 Microsoft Entra 租户中使用该用户的电子邮件。 根据组织中的角色,你可以为自己设置此权限,或者代表管理 Azure 数字孪生实例的其他人进行设置。
先决条件:权限要求
若要完成以下所有步骤,您需要在订阅中拥有具备以下权限的角色:
- 创建和管理 Azure 资源
- 管理用户对 Azure 资源的访问权限(包括授予和委托权限)
满足此要求的常见角色包括“所有者”、“帐户管理员”或“用户访问管理员”和“参与者”的组合。 有关角色和权限的完整说明,包括其他角色中包含的权限,请访问 Azure RBAC 文档中的 Azure 角色、Microsoft Entra 角色和经典订阅管理员角色。
若要查看订阅中的角色,请访问 Azure 门户中的 “订阅”页 (可以使用此链接或通过门户搜索栏查找 订阅 )。 查找正在使用的订阅的名称,然后在“我的角色”列中查看你在该订阅中的角色:
如果发现值是“参与者”,或者是其他没有上述所需权限的角色,可以联系对订阅具有这些权限的用户(例如订阅所有者或帐户管理员),并按以下方式之一继续操作:
- 请求他们以你的名义完成角色分配步骤。
- 请求他们提升你在订阅中的角色,以便你有权自行继续执行。 此请求是否合适取决于你的组织和你在其中的角色。
分配角色
若要授予用户管理 Azure 数字孪生实例的权限,必须在实例中为他们分配“Azure 数字孪生数据所有者”角色。
使用以下命令分配角色。 在 Azure 订阅中具有 足够权限 的用户必须运行该命令。 此命令要求你传入要为其分配角色的用户在 Microsoft Entra 帐户中的用户主体名称。 在大多数情况下,此值与 Microsoft Entra 帐户上的用户电子邮件匹配。
az dt role-assignment create --dt-name <your-Azure-Digital-Twins-instance> --assignee "<Azure-AD-user-principal-name-of-user-to-assign>" --role "Azure Digital Twins Data Owner"
此命令的结果输出了有关为用户创建的角色分配的信息。
注意
如果此命令返回错误,指出 CLI 在图形数据库中找不到用户或服务主体,请改为使用用户的对象 ID 分配角色。 对于个人 Microsoft帐户(MSA)上的用户,可能会发生这种情况。
使用 Microsoft Entra 用户的 Azure 门户页 选择用户帐户并打开其详细信息。 复制用户的“对象 ID”:
然后,使用用户的对象 ID assignee
,对上一命令中的参数重复执行角色分配列表命令。
验证是否成功
检查是否已成功设置角色分配的一种方法是在 Azure 门户中查看 Azure 数字孪生实例的角色分配。
在 Azure 门户中查看 Azure 数字孪生实例。 若要到达那里,可以在 Azure 数字孪生实例 的页面上查找它,或在门户搜索栏中搜索其名称。
然后,在“访问控制(IAM)”>“角色分配”下查看已分配的所有角色。 角色分配应显示在列表中。
现在,你已准备好 Azure 数字孪生实例,并分配了管理权限。
为实例启用/禁用托管标识
本部分介绍如何将托管标识添加到已存在的 Azure 数字孪生实例。 此外,还可以对已经拥有托管标识的实例禁用托管标识。
对所选托管标识类型使用以下 CLI 命令。
系统分配的标识命令
为现有实例启用系统分配标识的命令与用于创建具有系统分配标识的新实例的命令相同az dt create
。 无需提供要创建的实例的新名称,而可以提供现存实例的名称。 然后,请确保添加 --mi-system-assigned
参数。
az dt create --dt-name <name-of-existing-instance> --resource-group <resource-group> --mi-system-assigned
若要在当前已启用系统分配的标识的实例上禁用它,请使用下面的命令将 --mi-system-assigned
设置为 false
。
az dt create --dt-name <name-of-existing-instance> --resource-group <resource-group> --mi-system-assigned false
用户分配的标识命令
若要在现有实例上启用用户分配的标识,请在以下命令中提供现有用户分配的标识的 ID:
az dt identity assign --dt-name <name-of-existing-instance> --resource-group <resource-group> --user <user-assigned-identity-resource-ID>
若要在当前已启用用户分配的标识的实例上禁用它,请在以下命令中提供标识的 ID:
az dt identity remove --dt-name <name-of-existing-instance> --resource-group <resource-group> --user <user-assigned-identity-resource-ID>
有关禁用托管标识的注意事项
请务必考虑对标识或其角色所做的任何更改会对使用该标识的资源产生的影响。 如果对 Azure 数字孪生终结点或数据历史记录使用托管标识,并且标识已禁用,或者从中删除必要的角色,则终结点或数据历史记录连接可能会变得不可访问,并且事件流中断。
若要继续使用已禁用的托管标识设置的终结点,需要删除该终结点,并使用其他身份验证类型 重新创建该 终结点。 发生此更改后,事件可能需要长达一小时才能恢复传递到终结点。
后续步骤
使用 Azure 数字孪生 CLI 命令在实例上测试各个 REST API 调用:
或者,了解如何使用验证码将客户端应用程序连接到实例: