Adfs
支持 ADFS 2.2 OAuth 流中的刷新令牌
我和我的同事正在嘗試在 ADFS 2.2 中啟用 OAuth。一切正常,除了伺服器只傳回訪問令牌(帶過期)並且在成功登錄後不包括刷新令牌。這方面的文件很少,但有誰知道需要更新哪些設置才能返回刷新令牌?
編輯:提議的OAuth 2.0 規範指出:
授權伺服器可自行決定是否發布刷新令牌。如果授權伺服器發出刷新令牌,則在發出訪問令牌時包含它
由於我收到了訪問令牌,但沒有刷新令牌,並且由於 ADFS 目前僅實現 OAuth 的程式碼流,我猜測 ADFS 團隊選擇不返回刷新令牌。不過,我很想听聽這個。
**編輯:**就像下面說的特拉維斯,確保
- RP
IssueOAuthRefreshTokensTo
設置正確- RP
AlwaysRequireAuthentication
是假的- RP
TokenLifetime
低於 ADFSSSOLifetime
ADFS 依賴方對像上有一個名為 IssueOAuthRefreshTokensTo 的配置開關,它控制向什麼類型的設備刷新令牌發出。預設情況下,此值設置為“NoDevice”,這意味著 ADFS 不會釋放刷新令牌。可能的值為
- NoDevice = 從不發布刷新令牌
- AllDevices = 總是發出刷新令牌
- WorkplaceJoinedDevices = 僅在工作場所加入的設備上發布刷新令牌,即已使用 DRS 服務註冊的設備。
除了驗證依賴方是否允許發布刷新令牌之外,ADFS 還將驗證以下內容。
- 送出給 ADFS 的 SSO 令牌不會在 RP 的訪問令牌過期之前過期。只要您沒有更改預設配置值並且使用乾淨的瀏覽器會話(即沒有 SSO cookie),這種情況就不應該發揮作用。
- 依賴方未標記為始終需要新的憑據。
您是否還可以驗證您在授權請求中發送的資源參數是否有效?
ADFS 有一個調試日誌,如果您可以在非生產系統上重現此行為,辨識問題的最簡單方法可能是啟用調試日誌。
本文介紹如何在 ADFS 2.0 系統上啟用調試日誌。ADFS 3.0 (2012 R2) 類似,節點名稱略有不同,您無需在配置文件中啟用 WIF 或 WCF 跟踪。