繁体   English   中英

通过 cURL 从 Microsoft Graph API 获取 Access_Token

[英]Get Access_Token from Microsoft Graph API via cURL

当我按照 [1] 和 [2] 在 Cygwin 中运行此命令时,我会得到一个 Access_Token:

curl -X POST -d 'grant_type=client_credentials&client_id=[myClientId]&client_secret=[myAppSecret]&scope=openid profile User.ReadWrite User.ReadBasic.All Sites.ReadWrite.All Contacts.ReadWrite People.Read Notes.ReadWrite.All Tasks.ReadWrite Mail.ReadWrite Files.ReadWrite.All Calendars.ReadWrite' https://login.microsoftonline.com/[myTenantId]/oauth2/token

当我稍后尝试在这个简单的查询中使用该 access_token 时,我收到一个错误:

访问令牌验证失败。 无效的受众群体

curl -X GET -H "Authorization: Bearer [accessTokenFromPreviousCommand]" https://graph.microsoft.com/v1.0/me

如果我在 Microsoft Graph Explorer 中运行https://graph.microsoft.com/v1.0/me查询,它可以正常工作。 我还可以使用 Internet 浏览器的“网络”选项卡获取现有的 access_token,并在第二个 cURL 命令中使用获取的令牌来获取预期结果; 但是,我还没有弄清楚如何成功获取从第一个 cURL 命令返回的 access_token 并在第二个 cURL 命令中使用它。

我确实在内部与一位开发人员讨论过这个问题,他提到我看 [2],但我仍然有点困惑。

有人会告诉我在上述两个 cURL 命令中我做错了什么吗?

[1] - 毛里,大卫
通过 cURL 调用 Azure REST API
媒体网
2018 年 5 月 4 日 [在线]
https://medium.com/@mauridb/calling-azure-rest-api-via-curl-eb10a06127
[访问时间:2019 年 12 月 3 日]

[2] - 伍兹,杰克逊; 格雷厄姆,劳拉; 古兹曼,塞莱斯特; 天使高尔夫球手; 威克,瑞安; 以及未来可能的贡献者
Microsoft Graph 的身份验证和授权基础知识
Microsoft Docs - Microsoft Graph
2019 年 9 月 19 日 [在线]
https://docs.microsoft.com/en-us/graph/auth/auth-concepts
[访问时间:2019 年 12 月 3 日]

使用客户端凭据进行身份验证时不能使用/me 您需要通过iduserPrincipalName指定用户。

当 Graph 看到/me ,它会将该节点替换为“当前经过身份验证的用户的 ID”。 由于您在使用客户端凭据时没有经过身份验证的用户,因此 Graph 无法知道您正在寻找哪个用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM