Rest 没有用户委派时如何使用OAuth?--微软图形API
我正在尝试使用Microsoft Graph API获取Azure AD中特定组中用户的一些信息。我需要将获取数据作为数据仓库ETL任务的一部分。当从其他云应用程序中提取数据时,我获得了一个API密钥,并将该密钥放在授权头中 OAuth对我来说是新的(除了作为一个用户体验过它之外),我感觉我理解了这个概念,但我确信有些东西我没有正确理解 问题: 当使用我收到的访问令牌时,我在get请求上遇到401错误 采取的步骤:Rest 没有用户委派时如何使用OAuth?--微软图形API,rest,powershell,azure,oauth,microsoft-graph-api,Rest,Powershell,Azure,Oauth,Microsoft Graph Api,我正在尝试使用Microsoft Graph API获取Azure AD中特定组中用户的一些信息。我需要将获取数据作为数据仓库ETL任务的一部分。当从其他云应用程序中提取数据时,我获得了一个API密钥,并将该密钥放在授权头中 OAuth对我来说是新的(除了作为一个用户体验过它之外),我感觉我理解了这个概念,但我确信有些东西我没有正确理解 问题: 当使用我收到的访问令牌时,我在get请求上遇到401错误 采取的步骤: 显然,我必须注册一个应用程序——即使我真的不想在这里构建应用程序——所以我在ap
鉴于您收到了401错误(未经授权),我怀疑您的应用程序可能没有获得管理员对您尝试执行的操作的明确许可。在我上面链接的文章中,请参见第3节。获得管理员同意了解有关如何获得管理员同意的详细信息。将
https://graph.microsoft.com/Group.Read.All
工作范围?另外,请尝试指定资源=https://graph.microsoft.com
用于令牌请求。我已经尝试了该作用域,但出现了一个错误:为输入参数“scope”提供的值无效。您是否建议我在请求正文中添加资源作为参数以获取令牌?我刚刚试过,它说:不支持'resource'请求参数。这应该是它。几天前,我正忙于通过Powershell访问此API,并测试了不同的场景。在所有情况下,我都必须给予管理员批准(在我的情况下,构建在浏览器中执行它所需的URL)。
$body = @{ tenant="7b...3h"
client_id="12...67"
scope="https://graph.microsoft.com/.default"
client_secret="3g...x4"
grant_type="client_credentials"}
$token = Invoke-RestMethod -Uri $uri -Body $body -Method "Post"
$header = @{ Authorization="Bearer " + $token.access_token}
$groups_uri = "https://graph.microsoft.com/v1.0/groups"
$response = Invoke-RestMethod -Uri $groups_uri -Headers $header