[英]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
。 您需要通过id
或userPrincipalName
指定用户。
当 Graph 看到/me
,它会将该节点替换为“当前经过身份验证的用户的 ID”。 由于您在使用客户端凭据时没有经过身份验证的用户,因此 Graph 无法知道您正在寻找哪个用户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.