请求 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 错误

在 Azure Blob 存储中上传文件时出现 InvalidAuthenticationInfo 错误

Angular 2 应用程序部署到 Azure 时出现错误 404