【问题标题】:Why doesn't Azure REST API to assign user role to a subscription work?为什么 Azure REST API 无法将用户角色分配给订阅?
【发布时间】:2021-02-19 10:05:32
【问题描述】:

我正在尝试在 documentation 之后使用 REST API 将用户角色添加到 Azure 中的订阅。

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

API 响应如下;

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

}

如果有人成功使用此 API 并执行了操作,请告诉我。此操作是否还有任何 Azure .NET API?

REST API Postman request

【问题讨论】:

  • 您获得的令牌似乎没有执行此操作的权限。我可以知道你是如何得到这个令牌的吗?
  • @StanleyGong 当我使用我的凭据登录到 Azure Web 应用程序时,我在响应中的网络调用中获得了一个访问令牌。我将其复制粘贴到邮递员以获取授权参数。
  • 我明白了,如果是这样,这意味着您无权为您的订阅分配角色。请让您的订阅管理员为您分配一个 azure 订阅角色,即贡献者。
  • 我拥有订阅的 UAA 权限
  • 在这个link中点击Try it,登录账号直接调用api。

标签: azure rest azure-resource-manager azure-rest-api


【解决方案1】:

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

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

更新:

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

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

2.在浏览器中点击以下网址,将tenant-idclient-idredirect_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了。

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 2019-06-28
    相关资源
    最近更新 更多