azure - 使用图形 API 从多租户 AD 应用程序中获取所有用户
问题描述
我正在尝试使用图形 API 为多租户应用程序获取所有用户。为此,我使用请求生成了访问令牌:
POST https://login.microsoftonline.com/common/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
client_id=535fb089-9ff3-47b6-9bfb-4f1264799865
&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
&client_secret=qWgdYAmab0YSkuL1qKv5bPX
&grant_type=client_credentials
注意:请注意,在上述请求中,我使用common
了{tenantID}
. 这只是一个成功的尝试,因为在doc中为 adminConsent 建议了同样的方法。
通过使用上面生成的访问令牌,我请求了用户 API 并收到以下错误
{
"error": {
"code": "Authorization_IdentityNotFound",
"message": "The identity of the calling application could not be established.",
"innerError": {
"request-id": "56141b7d-dd5e-44b1-9395-cd15d02b52de",
"date": "2019-06-17T12:42:19"
}
}
}
当我使用租户 ID 生成令牌时,它只返回一个活动目录的用户。
任何人都可以建议,我要去哪里错了吗?
解决方案
由于您使用的是通用端点,因此您不能在此处使用客户端凭据流(无需用户即可访问)。您需要参考此文档(代表用户获取访问权限)。
注意:当您使用授权码授权流程(代表用户获取访问权限)时,您需要授予委托权限而不是应用程序权限。
获取访问令牌
推荐阅读
- java - 如何在具有三个选择限制的自动售货机中使用 for 循环?
- c++ - 程序停止工作并给出垃圾值 C++
- c - 在 C 中,是否可以将值存储在数组的最后一个位置?
- python - 当我有 3.7 时“请升级 python”,当我有 20.0.2 时“请升级 pip”。为什么我会收到此错误?
- assembly - 在 x86_64 处理器系列的 gnu 汇编程序中设置常量的正确方法是什么
- c++ - OpenCV 不编译但已安装并显示包含 lib 的智能感知
- javascript - Javascript 错误未捕获类型错误:无法读取未定义的属性“顶部”
- javascript - Javascript异步函数中的等待问题
- javascript - Android上Javascript中的指纹?
- javascript - 如何在threejs中移动形状并编辑顶点