我的目标是获取用户对资源的访问 token (租户中存在的 AD 应用程序)
我已经能够使用
获取服务主体的访问 tokenaz login --service-principal -u -p --tenant --allow-no-subscriptions
az 帐户获取访问 token --resource
现在,当我尝试通过用户登录(az登录)切换服务主体登录来为用户实现相同的目标时
az登录
az 帐户获取访问 token --resource
但是这会产生错误
获取 token 请求返回 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] ,“时间戳”:“2019-11-21 09:03:25Z”,“trace_id”:“19fdf309-f9ef-423b-8c18-7cd9269b0700”,“correlation_id”:“2aafc4e4-0c1b-42b3-ba59-afe09bbe9fb5”, “子错误”:“consent_required”}
有人可以帮我理解为什么会出现这种情况吗?
提前致谢!
最佳答案
您正在尝试从 <APP ID Uri>
获取 token 使用 Azure CLI,客户端 ID 正是 04b07795-8ddb-461a-bbee-02f9e1bf7b46
.
转到资源(AD 中的应用程序)->公开 API->使用 04b07795-8ddb-461a-bbee-02f9e1bf7b46
添加客户端应用程序并检查范围。
然后再次获取访问 token 。
关于Azure Active Directory - 使用 Azure CLI 获取访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58972199/