请求Azure指标数据时出现“ AuthorizationFailed”

时间:2018-10-17 09:12:26

标签: azure ionic-framework active-directory metrics

我正在尝试使用Active Directory应用程序注册访问我的资源的本地主机(http://localhost:8100)Ionic webapp中的指标数据。 我的管理员为我的本地主机应用程序创建了新的应用程序注册,从而可以请求新的Bearer访问令牌。 收到访问令牌后,我想让应用程序使用此访问令牌来请求指标数据。
我的Web应用程序用来调用指标(http GET请求)的网址之一是:

"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 个答案:

答案 0 :(得分:1)

我解决了该问题,因为我注意到Active Directory中注册的应用程序没有授予的角色。
我通过导航至subscription窗口,然后导航至Access control (IAM)选项卡,为此应用程序授予了角色。在此选项卡中,我添加了在Active Directory应用程序注册中声明的应用程序,并被授予角色reader
自从我保存设置以来,就不再出现AuthorizationFailed错误。