簡體   English   中英

Microsoft Graph API:訪問令牌驗證失敗。 無效的觀眾

[英]Microsoft Graph API: Access token validation failure. Invalid audience

我正在嘗試將我的應用程序從 Office 365 REST v2.0 遷移到 Microsoft Graph (v1.0)。 令牌交換似乎正在工作,但是一旦我嘗試調用 API,我就會收到以下錯誤:

    (
    [errorNumber] => 401
    [error] => Request returned HTTP error 401
    [message] => {
  "error": {
    "code": "InvalidAuthenticationToken",
    "message": "Access token validation failure. Invalid audience.",
    "innerError": {
      "date": "2021-03-16T15:36:21",
      "request-id": "dda1e33a-2774-4986-8c45-1487404fbb72",
      "client-request-id": "e842d9a8-d71b-0563-f1ce-e58052e5bdb9"
    }
  }
}
)

access_token 具有以下受眾:

"aud": "https://outlook.office.com"

這是我正在使用的端點:

https://login.microsoftonline.com/common/oauth2/v2.0/token

有效載荷:

grant_type=authorization_code
&code=0.AR8A3XwQy0FAmkSxxxx
&redirect_uri=https%3A%2F%2Fxxx.com%2Fproxy%2Foffice365authorize
&client_id=e2147faf-87f0-4e7f-xxxx-xxxxxxxxxxx
&client_secret=xxxxxxxxxxxx

任何提示將不勝感激,謝謝!

這意味着您的令牌有錯誤的受眾,要調用 Micrsoft Graph API,您需要獲取 Microsoft Graph 的令牌,即訪問令牌需要"aud": "https://graph.microsoft.com"

看起來您正在使用AAD 身份驗證代碼流來獲取令牌,因此當您請求授權代碼時,請使用 scope 和https://graph.microsoft.com/.default

https://login.microsoftonline.com/common/oauth2/authorize?
client_id=xxxxx
&response_type=code
&redirect_uri=xxxxxx
&response_mode=query
&scope=https://graph.microsoft.com/.default
&state=12345

請求令牌時也使用scope=https://graph.microsoft.com/.default

POST https://login.microsoftonline.com/common/oauth2/v2.0/token

client_id=xxxxxx
&scope=https://graph.microsoft.com/.default
&code=0.AR8A3XwQy0FAmkSxxxx
&redirect_uri=xxxxxx
&grant_type=authorization_code
&client_secret=xxxxx

要成功調用 API,還要確保您已為您的客戶端應用程序授予正確的 Delegated Microsoft Graph API 權限取決於您要調用的 API 權限,例如,如果您想調用權限,請在此處List users您需要的用戶。

在此處輸入圖像描述

暫無
暫無

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

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