簡體   English   中英

Microsoft Graph API 不返回刷新令牌

[英]Microsoft Graph API not returning refresh token

我在https://apps.dev.microsoft.com上創建了一個應用程序

具有以下應用程序權限:

Calendars.Read (Admin Only) Calendars.ReadWrite (Admin Only) User.Read.All (Admin Only)

以下是唯一對我有用的流程,能夠訂閱另一個租戶上另一個用戶的通知,如此所述

管理員同意

然后通過此 URL 成功授予管理員同意

https://login.microsoftonline.com/common/adminconsent?client_id=bbb35336-faee-4c10-84b4-34136634db41&state=1234&redirect_uri=https%3A%2F%2Fdashmeetings.com%2Fmicrosoft%2Foauth

獲取訪問令牌

然后從

POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token

帶標題

Content-Type=application/x-www-form-urlencoded

使用{tenant}回調 url 中返回的tenant值,

和帶有鍵值對的主體

grant_type=client_credentials
client_id=bbb35336-faee-4c10-84b4-34136634db41
client_secret=xxx
scope=https://graph.microsoft.com/.default

這將返回訪問令牌,但不返回刷新令牌。

我認為這可能是因為未請求offline_access

如何獲得刷新令牌?

您部分正確,如果您請求offline_access范圍並且您正在使用authorization_code授權流,則只會收到refresh_token

使用implicit授權時,刷新令牌不可用,使用client_credentials授權時不需要。 使用client_credentials ,沒有用戶通過身份驗證,因此無需“刷新”令牌,因為您只需在需要時請求新令牌。

不需要refresh_token

只要尚未撤銷管理員同意,就可以在需要時請求新的access_token

如果您想獲得作為長期令牌的refresh_token ,您可以將離線訪問權限offline_access放入您的范圍。

或者,您也可以使用 scope 上的basic功能,因為它包含offline_access

暫無
暫無

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

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