簡體   English   中英

Microsoft Graph API:如何在不使用瀏覽器的情況下獲取訪問令牌

[英]Microsoft Graph API: how to get access token without browser

我想將給定的文件上傳到Sharepoint。 我正在使用Microsoft Graph API。

文檔遵循以下工作流程:

1. If no token, redirect the user to the Microsoft signin page.
2. The user is then redirected to the application, with an access token
3. Use access token to have an authorization bearer
4. Do what you gotta do...

我的問題是登錄部分。 我不希望將我的用戶重定向到Microsoft登錄頁面。 我希望我的應用程序連接並在后台獲取訪問令牌(使用cURL或其他方法)。

我怎樣才能做到這一點? 為什么需要“在瀏覽器中打開”?

我試圖復制登錄過程,但我得到的只是登錄頁面的HTML響應。

提前致謝。

您的應用程序充當單租戶服務或守護程序應用程序。

有關這種情況的文檔在這里: https : //developer.microsoft.com/en-us/graph/docs/authorization/app_only

  • 該應用程序必須在與Office365租戶對應的AzureAD目錄中注冊
  • 通過傳遞在目錄中注冊的應用程序唯一標識符和秘密密鑰,發出第一個請求。 該請求返回訪問令牌

現在,可以在對Microsoft Graph API的以下請求的“ 授權”標頭中使用訪問令牌。

此方法(使用客戶端ID和密碼)效果很好,但是還有其他一些方法可能更適合於類似的情況。

以這種方式生成的訪問令牌中缺少的一個主要問題是用戶 ,這意味着令牌僅包含調用它的OAuth 應用程序 (客戶端)的身份,但未與請求的任何用戶關聯。

這可能有兩個含義:

  • 由於令牌未與特定用戶關聯,因此您將不知道執行該操作的人員。 在您的示例中,您將不知道是誰上傳了文件(並且其他相似信息可能會丟失)。
  • 沒有用戶的訪問令牌對於某些方法根本無法使用。 對於這些,您需要一個委托令牌

創建委托令牌需要一些工作,如果您有興趣,可以在我的文章中找到詳細信息:

使用OAuth REST API獲取Microsoft Graph的訪問令牌

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM