簡體   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