【问题标题】:Why cant I add Add ReplyUrl to AAD Application using Service Principle and Azure CLI?为什么我不能使用服务主体和 Azure CLI 将添加回复 URL 添加到添加应用程序?
【发布时间】:2019-08-02 16:12:39
【问题描述】:

我需要使用 Azure CLI 的服务主体将 ReplyUrl 添加到 AAD 应用程序,但我收到错误“权限不足,无法完成操作”。我最初从 Azure DevOps 尝试过这个,但现在只从 CLI 复制了它。

我开始使用 DevOps 和在将 Target AAD 租户连接到我的 DevOps 组织时创建的服务主体。我已向服务主体授予 API 权限 Microsoft.Graph.Application.ReadWrite.All 并授予管理员同意。我已经生成了一个新的 ClientSecret 并使用它使用 CLI 登录到租户。当我运行命令来更新回复 url 时,就会出现上述权限不足错误。

如果我从 Cloud Shell bash 运行 CLI 命令,它可以正常工作。

az login --service-principal -u xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx -p xxxxxxxxxxxxx --tenant xxxxxxxxxx 

[
  {
    "cloudName": "AzureCloud",
    "id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "isDefault": true,
    "name": "Windows Azure MSDN - Visual Studio Ultimate",
    "state": "Enabled",
    "tenantId": "xxxxxxxxxxxxxxxxxxx",
    "user": {
      "name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "type": "servicePrincipal"
    }
  }
]

然后

az ad app update --id xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  --reply-urls https://localhost:44381/ 

Insufficient privileges to complete the operation. 

如果我从云 shell 运行 az ad app update 命令,它可以正常工作。
如果我尝试使用 DevOps 创建的服务主体,则会收到错误消息。

我刚刚在 DevOps 之外创建了一个干净的新主体(az ad app create-for-rbac),然后手动添加了 Application.ReadWrite.All 权限并同意了这一点 - 这也给了我同样的错误!

Application API Permissions and Consent

我已经查看了类似的问题 - 但最接近的问题有一个答案,我们需要给予正确的权限并授予同意作为答案 - 我已经这样做了。

【问题讨论】:

  • 如果我的回答有帮助,请接受它作为答案(单击答案旁边的复选标记将其从灰色切换为已填充)。谢谢。

标签: azure azure-active-directory command-line-interface service-principal


【解决方案1】:

您授予了错误的权限。 Azure CLI 使用 AAD Graph 端点,因此您需要向服务主体授予 Azure AD Graph API 权限,而不是 Microsoft Graph API 权限。

您需要的是 Application.ReadWrite.All 权限(Azure AD Graph)。

注意:门户中的浏览器缓存使其看起来好像回复 url 没有更新。只需再次打开门户,您就会看到更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 2023-03-24
    • 2023-02-25
    • 2021-04-18
    • 1970-01-01
    相关资源
    最近更新 更多