【问题标题】:Can't get access token for custom AD Application无法获取自定义 AD 应用程序的访问令牌
【发布时间】:2018-12-07 16:33:56
【问题描述】:

当尝试使用 az account get-access-token --resource '<APP ID Uri>' 为自定义 AD 应用程序获取访问令牌时,我收到以下错误:

AADSTS65001: The user or administrator has not consented to use the application with ID '04b07795-8ddb-461a-bbee-02f9e1bf7b46' named 'Microsoft Azure CLI'. Send an interactive authorization request for this user and resource.

04b07795-8ddb-461a-bbee-02f9e1bf7b46 不是我的应用程序 ID,我的应用程序已获得管理员同意。我尝试将此 id 放入交互式登录请求中,但行为没有改变。

get-access-token 在资源是已定义的 MS 端点(如 https://database.windows.nethttps://vault.azure.net/)时工作正常

我的目标是让带有托管服务标识的 Azure 应用服务使用短期 AD 不记名令牌相互进行身份验证。每个服务都有一个与 AD 应用相对应的已配置受众。

【问题讨论】:

  • 不确定 cmd 行的命令是什么,但在 powershell 中它是 'New-AzureRmRoleAssignment -ObjectId -Scope '/subscriptions/ -RoleDefinitionNamecontributor' 基本上它告诉你给对象贡献者权利。我还没有弄清楚如何在不执行此步骤的情况下创建新应用程序,也没有看到任何需要它的文档。但这就是有效的方法。
  • 我从中得到一个空引用 - 对象引用未设置为对象的实例。
  • 我终于找到了我要找的东西。如果您进入订阅并打开 IAM 刀片,请选择您的 ,然后在“管理”下选择“属性”。您正在引用“ObjectID”。如果这与 id 不匹配,则您没有使用正确的应用程序登录。
  • 那个 04b id 是 Azure CLI。不知道怎么改,是问题所在。
  • 你不会改变它。这是 AD 应用程序的 objectID,需要授予贡献者角色。

标签: azure powershell azure-active-directory azure-cli


【解决方案1】:

从本地 CLI 运行 az account get-access-token --resource '<APP ID Uri>',您正在尝试使用 Azure CLI 从 '<APP ID Uri>' 获取令牌,其客户端 ID 正是 04b07795-8ddb-461a-bbee-02f9e1bf7b46

要处理此问题,您可以访问: Azure Active Directory → 应用注册 → {您的应用} → 公开 API → 添加客户端应用程序

ID04b07795-8ddb-461a-bbee-02f9e1bf7b46

授权范围:检查'<APP ID Uri>'

为确保您拥有正确的 ID,您可以运行 az account get-access-token 将令牌粘贴到 jwt.io 并找到 "appid" 的值。

【讨论】:

  • 这真的帮助了我。我的情况类似,除了我的问题是 Powershell Azure ID : 1950a258-227b-4e31-a9cf-717495945fc2 。话虽如此,我应用了您的解决方案,效果很好:)
【解决方案2】:

如果我使用用户帐户登录 cli,我可以使用 --resource '<APP ID Uri>' 重现您的问题。

如果我使用服务主体登录,它可以正常工作。

您可以尝试使用服务主体登录 azure cli,请参阅此link

【讨论】:

  • 这是一个非常有用的解决方法,谢谢。我仍然希望找到一种方法让用户以自己的身份接收访问令牌,因为我们这样做的部分原因是避免传递登录凭据。
  • 也许我错过了一个细节,但如果您使用的是 AD 应用程序,则应该使用服务主体。不是用户帐户。
  • 我正在尝试进行本地开发,但我无法让 azure cli 为我的本地 Web 应用程序中的用户登录拉取 AD 应用程序的访问令牌。我确实以服务主体身份登录,并且能够在本地调试时提取令牌。我不确定为什么它不适用于已被授予对 AD 应用程序的默认访问权限的用户帐户。
猜你喜欢
  • 2018-05-23
  • 2019-06-16
  • 2022-12-01
  • 2020-05-11
  • 2017-12-24
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
  • 2013-08-05
相关资源
最近更新 更多