请求 Azure 指标数据时出现“AuthorizationFailed”
Posted
技术标签:
【中文标题】请求 Azure 指标数据时出现“AuthorizationFailed”【英文标题】:"AuthorizationFailed" when requesting Azure metrics data 【发布时间】:2018-10-17 09:12:25 【问题描述】:我正在尝试使用 Active Directory 应用程序注册访问我的资源的 localhost (http://localhost:8100) Ionic webapp 中的指标数据。 我的管理员为我的 localhost 应用程序创建了一个新的应用程序注册,从而可以请求一个新的 Bearer 访问令牌。 收到访问令牌后,我想让应用程序使用此访问令牌来请求指标数据。 我的 web 应用程序用来调用指标(http GET 请求)的 url 之一是:
"https://management.azure.com/subscriptions/subscription_id/resourceGroups/resourcegroup_name/providers/Microsoft.Compute/virtualMachines/VirtualMachine_name/providers/microsoft.insights/metrics?api-version=2018-01-01&metricnames=Percentage%20CPU&timespan=2018-10-16T03:00:00Z/2018-10-17T03:00:00Z"
带有标题:Authorization: Bearer access_token,
Content-Type: 'application/json'
不幸的是,发送此 get 请求后,它返回错误 "AuthorizationFailed"
(http 错误代码 403)并显示消息:"The client 'client id' with object id 'same as client id' does not have authorization to perform action 'microsoft.Insights/metrics/read' over scope '/subscriptions/subscription_id/resourceGroups/resourcegroup_name/providers/Microsoft.Compute/virtualMachines/VirtualMachine_name/providers/microsoft.Insights'."
这里出了什么问题?
【问题讨论】:
您的管理员需要为订阅/资源组/资源上的应用分配一个角色。 【参考方案1】:我解决了这个问题,因为我注意到 Active Directory 中注册的应用程序没有授予的角色。 我通过导航到subscription
窗口,然后导航到Access control (IAM)
选项卡,为此应用程序授予了一个角色。在此选项卡中,我添加了在 Active Directory 应用程序注册中声明并授予角色 reader
的应用程序。
自从我保存设置后,AuthorizationFailed
错误就再也没有发生过。
【讨论】:
以上是关于请求 Azure 指标数据时出现“AuthorizationFailed”的主要内容,如果未能解决你的问题,请参考以下文章
使用 Azure 存储 PHP SDK 时出现“其中一个请求输入超出范围”
尝试在 Web API 请求上检索 Azure Blob 时出现 403 错误
为什么在调用azure数据湖gen2的put文件api时出现丢失的头错误?
在 Azure 网站中使用 Azure SDK 时出现间歇性 SSL/TLS 错误