你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

排查 Azure 数字孪生服务请求失败的问题:“403 (禁止访问)”错误

本文介绍 Azure 数字孪生服务请求接收到 403 错误的原因和解决步骤。 此信息特定于 Azure 数字孪生服务。

症状

多种需要通过 Azure 数字孪生进行身份验证的服务请求类型可能发生此错误。 其结果是 API 请求失败,返回错误状态 403 (Forbidden)

原因

原因 #1

大多数情况下,在 Azure 数字孪生中收到此错误表明未正确设置对此服务的 Azure 基于角色的访问控制 (Azure RBAC) 权限。 对 Azure 数字孪生实例的很多操作要求你对正在尝试管理的实例拥有“Azure 数字孪生数据所有者”角色。

原因 #2

如果客户端应用与使用应用注册进行身份验证的 Azure 数字孪生通信,则可能会发生此错误,因为尚未为应用注册设置对 Azure 数字孪生服务的权限。

必须为应用注册配置对 Azure 数字孪生 API 的访问权限。 然后,在根据应用注册对客户端应用进行身份验证时,会向其授予已为应用注册配置的权限。

解决方案

解决方案 #1

第一种解决方案是验证 Azure 用户对正在尝试管理的实例是否拥有“Azure 数字孪生数据所有者”角色。 如果没有此角色,请对其进行设置。

此角色不同于

  • 此角色之前在 Azure 数字孪生所有者(预览版)预览期间使用的名称。 在这种情况下,角色相同,但名称已更改。
  • 对整个 Azure 订阅的“所有者”角色。 “Azure 数字孪生数据所有者”是 Azure 数字孪生中的角色,其作用范围限定为单个 Azure 数字孪生实例。
  • Azure 数字孪生中的“所有者”角色。 它们是两个不同的 Azure 数字孪生管理角色,“Azure 数字孪生数据所有者”是应该用于管理的角色。

检查当前设置

检查是否已成功设置角色分配的一种方法是在 Azure 门户中查看 Azure 数字孪生实例的角色分配。 在 Azure 门户中查看 Azure 数字孪生实例。 为此,可以在 Azure 数字孪生实例页上查找,也可以在门户搜索栏中搜索其名称。

然后,在“访问控制(IAM)”>“角色分配”下查看已分配的所有角色。 角色分配应显示在列表中。

Screenshot of the role assignments for an Azure Digital Twins instance in the Azure portal.

解决问题

如果你没有此角色分配,则在 Azure 订阅中具有“所有者”角色的用户应运行以下命令,向 Azure 用户授予对 Azure 数字孪生实例的“Azure 数字孪生数据所有者”角色。

如果你是订阅的“所有者”,则可以自己运行此命令。 如果不是,请联系“所有者”代表你运行此命令。

az dt role-assignment create --dt-name <your-Azure-Digital-Twins-instance> --assignee "<your-Azure-AD-email>" --role "Azure Digital Twins Data Owner"

有关此角色要求和分配过程的详细信息,请参阅设置用户的访问权限

如果已分配此角色,并且你正在使用 Microsoft Entra 应用注册对客户端应用进行身份验证,则如果此解决方案未解决 403 问题,则可以继续下一个解决方案。

解决方法 #2

如果使用 Microsoft Entra 应用注册对客户端应用进行身份验证,第二种可能的解决方案是验证应用注册是否具有为 Azure 数字孪生服务配置的权限。 如果未配置这些,请对其进行设置。

检查当前设置

若要检查是否已正确配置权限,请导航到Azure 门户中的 Microsoft Entra 应用注册概述页。 可以通过在门户搜索栏中搜索“应用注册”来自行访问此页。

切换到“所有应用程序”选项卡以查看在订阅中创建的所有应用注册。

在列表中应该可以看到已创建的应用注册。 选择它以打开其详细信息。

Screenshot of the app registrations page in the Azure portal.

首先,验证注册中是否已正确设置 Azure 数字孪生权限:从菜单栏中选择“清单”,以查看应用注册的清单代码。 滚动到代码窗口的底部,在 requiredResourceAccess 下查找以下字段。 这些值应与以下屏幕截图中的值匹配:

Screenshot of the manifest for the Microsoft Entra app registration in the Azure portal.

接下来,从菜单栏中选择“API 权限”,验证此应用注册是否包含对 Azure 数字孪生的读/写权限。 应看到如下条目:

Screenshot of the API permissions for the Microsoft Entra app registration in the Azure portal, showing 'Read/Write Access' for Azure Digital Twins.

解决问题

如果出现任何不同于以上所述的情况,请按照使用 Azure 数字孪生访问创建应用注册中设置应用注册的说明进行操作。

后续步骤

阅读有关 Azure 数字孪生新实例创建和身份验证的设置步骤:

阅读有关 Azure 数字孪生的安全性和权限的详细信息: