【发布时间】: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.net 或 https://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