我正在尝试通过Azure API检索价目表和使用情况。我创建了一个Azure AD应用程序,并授予它“Microsoft Azure Active Directory”和“Windows Azure Service Management API”的权限。
我已经创建了一个Azure AD用户,并在AD应用程序中赋予了“所有者”权限。
我能够进行Oath2身份验证并发出令牌。但是当我尝试访问ratecard API时,我收到以下权限错误:
{
"error":{
"code":"AuthorizationFailed",
"message":"The client 'api-user@contoso.onmicrosoft.com' with object id 'xxxxxxxx-xxxx-xxxx-xxx-xxxxxxx' does not have authorization to perform action 'Microsoft.Commerce/RateCard/read' over scope '/subscriptions/xxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxx'."
}
}
我认为我需要允许Azure AD用户访问ratecard API,但我无法了解具体方法。希望有人可以帮助我。
答案 0 :(得分:0)
您可以尝试在订阅中添加自定义角色,并按如下方式授予其权限:
const joi = require('joi');
joi.validate(object, schema, {stripUnknown:true}, callback);
然后将此角色分配给您的应用程序......
答案 1 :(得分:0)
你的回复让我思考。在Azure门户中,我转到了我的订阅/访问控制(IAM)。我在我的Azure AD用户中添加了一个条目,其中包含" Billing Reader"的现有角色。现在,我已经能够成功读出结算API&#39。谢谢!