Azure Active Directory - 使用 Azure CLI 获取访问令牌

use*_*951 5 azure azure-active-directory

我的目标是获取用户对资源的访问令牌(租户中存在的 AD 应用程序)

我已经能够通过使用获取服务主体的访问令牌

az login --service-principal -u -p --tenant --allow-no-subscriptions

az 帐户获取访问令牌 --resource

现在,当我尝试通过用户登录(az登录)切换服务主体登录来为用户实现相同的目标时

登录

az 帐户获取访问令牌 --resource

然而这会给出一个错误

获取令牌请求返回http错误:400和服务器响应:{“error”:“invalid_grant”,“error_description”:“AADSTS65001:用户或管理员尚未同意使用ID为'abc'的应用程序。发送交互式授权请求对于此用户和资源。\r\n跟踪 ID: 19fdf309-f9ef-423b-8c18-7cd9269b0700\r\nr\n时间戳: 2019-11-21 09:03:25Z","error_codes":[65001],"timestamp ":"2019-11-21 09:03:25Z","trace_id":"19fdf309-f9ef-423b-8c18-7cd9269b0700","correlation_id":"2aafc4e4-0c1b-42b3-ba59-afe09bbe9fb5","子错误" :“需要同意”}

有人可以帮助我理解为什么会出现这种情况吗?

提前致谢!

Ton*_* Ju 4

您正在尝试使用 Azure CLI 获取令牌<APP ID Uri>,其客户端 ID 正是04b07795-8ddb-461a-bbee-02f9e1bf7b46

在此输入图像描述

转到资源(AD 中的应用程序)->公开 API->添加客户端应用程序并04b07795-8ddb-461a-bbee-02f9e1bf7b46检查范围。

在此输入图像描述

然后再次获取访问令牌。

在此输入图像描述