你当前正在访问 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)”>“角色分配”下查看已分配的所有角色。 角色分配应显示在列表中。
解决问题
如果你没有此角色分配,则在 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 应用注册概述页。 可以通过在门户搜索栏中搜索“应用注册”来自行访问此页。
切换到“所有应用程序”选项卡以查看在订阅中创建的所有应用注册。
在列表中应该可以看到已创建的应用注册。 选择它以打开其详细信息。
首先,验证注册中是否已正确设置 Azure 数字孪生权限:从菜单栏中选择“清单”,以查看应用注册的清单代码。 滚动到代码窗口的底部,在 requiredResourceAccess
下查找以下字段。 这些值应与以下屏幕截图中的值匹配:
接下来,从菜单栏中选择“API 权限”,验证此应用注册是否包含对 Azure 数字孪生的读/写权限。 应看到如下条目:
解决问题
如果出现任何不同于以上所述的情况,请按照使用 Azure 数字孪生访问创建应用注册中设置应用注册的说明进行操作。
后续步骤
阅读有关 Azure 数字孪生新实例创建和身份验证的设置步骤:
阅读有关 Azure 数字孪生的安全性和权限的详细信息: