Adfs

支持 ADFS 2.2 OAuth 流中的刷新令牌

  • February 25, 2014

我和我的同事正在嘗試在 ADFS 2.2 中啟用 OAuth。一切正常,除了伺服器只傳回訪問令牌(帶過期)並且在成功登錄後不包括刷新令牌。這方面的文件很少,但有誰知道需要更新哪些設置才能返回刷新令牌?

編輯:提議的OAuth 2.0 規範指出:

授權伺服器可自行決定是否發布刷新令牌。如果授權伺服器發出刷新令牌,則在發出訪問令牌時包含它

由於我收到了訪問令牌,但沒有刷新令牌,並且由於 ADFS 目前僅實現 OAuth 的程式碼流,我猜測 ADFS 團隊選擇不返回刷新令牌。不過,我很想听聽這個。

**編輯:**就像下面說的特拉維斯,確保

  • RPIssueOAuthRefreshTokensTo設置正確
  • RPAlwaysRequireAuthentication是假的
  • RPTokenLifetime低於 ADFSSSOLifetime

ADFS 依賴方對像上有一個名為 IssueOAuthRefreshTokensTo 的配置開關,它控制向什麼類型的設備刷新令牌發出。預設情況下,此值設置為“NoDevice”,這意味著 ADFS 不會釋放刷新令牌。可能的值為

  1. NoDevice = 從不發布刷新令牌
  2. AllDevices = 總是發出刷新令牌
  3. WorkplaceJoinedDevices = 僅在工作場所加入的設備上發布刷新令牌,即已使用 DRS 服務註冊的設備。

除了驗證依賴方是否允許發布刷新令牌之外,ADFS 還將驗證以下內容。

  1. 送出給 ADFS 的 SSO 令牌不會在 RP 的訪問令牌過期之前過期。只要您沒有更改預設配置值並且使用乾淨的瀏覽器會話(即沒有 SSO cookie),這種情況就不應該發揮作用。
  2. 依賴方未標記為始終需要新的憑據。

您是否還可以驗證您在授權請求中發送的資源參數是否有效?

ADFS 有一個調試日誌,如果您可以在非生產系統上重現此行為,辨識問題的最簡單方法可能是啟用調試日誌。

本文介紹如何在 ADFS 2.0 系統上啟用調試日誌。ADFS 3.0 (2012 R2) 類似,節點名稱略有不同,您無需在配置文件中啟用 WIF 或 WCF 跟踪。

http://social.technet.microsoft.com/wiki/contents/articles/1407.how-to-enable-debug-logging-for-active-directory-federation-services-2-0-ad-fs-2-0.aspx

引用自:https://serverfault.com/questions/571912