首页 > 解决方案 > 为什么 Azure REST API 无法将用户角色分配给订阅?

问题描述

我正在尝试按照本文档使用 REST API 将用户角色添加到 Azure 中的订阅。

  1. 我在登录时获得了一个不记名令牌,并将其作为标头授权参数传递。
  2. 给出文档中描述的所有值
  3. 我执行的 PFA REST API 调用。

API响应如下;

{
"error": {
    "code": "AuthenticationFailed",
    "message": "Authentication failed."
}

}

请让我知道是否有人成功使用此 API 并执行了操作。此操作是否还有任何 Azure .NET API?

REST API 邮递员请求

标签: azurerestazure-resource-managerazure-rest-api

解决方案


该错误意味着您的用户帐户没有创建角色分配的权限,特别是Microsoft.Authorization/roleAssignments/write.

要解决此问题,您需要先让您订阅的管理员OwnerUser Access Administrator(或具有权限的自定义 RBAC 角色Microsoft.Authorization/roleAssignments/write)在订阅范围内为您分配具有上述权限的Owner或或自定义角色,点击此链接,然后获得一个新令牌,您将能够将角色分配给其他人,例如管理员将角色分配给您,即创建角色分配。User Access Administrator

更新:

如果您想通过您的用户凭证获取访问令牌,您可以使用auth code flow,请按照以下步骤操作。

1.在你的App注册中,添加API的user_impersonationDelegated权限。Azure Service Management

在此处输入图像描述

2.在浏览器中点击下面的 URL,将 , , 更改tenant-idclient-id您的redirect_uri,登录您的用户帐户。

https://login.microsoftonline.com/tenant-id/oauth2/v2.0/authorize?
client_id=xxxxxxxx
&response_type=code
&redirect_uri=http://localhost
&response_mode=query
&scope=https://management.azure.com/.default
&state=12345

然后你会得到一个类似下面的代码,复制它。

在此处输入图像描述

不要忘记删除 state 和 session_state。

在此处输入图像描述

3.在邮递员中,使用下面的查询,就可以得到token。

在此处输入图像描述


推荐阅读