2016-10-26 67 views
0

流量資源ID是這樣的:呼叫refresh_token不刷新令牌

  1. 我們已經與特定資源ID註冊一個OAuth應用程序上市,所以這個應用程序可以訪問這些
  2. 一段時間後有必要添加另一個資源ID,因爲我們正在擴展我們的客戶端應用程序的功能
  3. 客戶端應用程序不時進行令牌刷新,其要麼是由於錯誤或access_token過期造成的。
  4. 在新的access_token上使用check_token爲我們提供了舊的一組資源ID。似乎它取自某個緩存或舊的令牌本身。

問題: 不應刷新令牌刷新也資源ID?這是againts oauth rfc(無法找到關於這個特殊情況的任何內容)嗎?

我們當然可以撤銷oauth應用程序的所有標記,但這需要我們所有的用戶再次登錄,這是我們想要避免的。

我不確定它是否與春季雲安全或oAuth本身有關。 C

回答

1

此答案假設您的資源標識符與OAuth2描述爲作爲範圍的描述相同,它們的目的看起來非常相似 - 限制訪問令牌的範圍。

當發出訪問令牌刷新請求說明書陳述可以然而包括scope參數,:

如由3.3節中所描述的所述訪問請求的範圍。 請求的作用域不得包含任何最初不由資源所有者授予的範圍,如果省略,則視爲等於資源所有者最初授予的範圍。

此外,作爲響應的一部分,一個新的刷新令牌可以發行,但再次:

授權服務器可發出一個新的刷新令牌(...)如果一個新的刷新令牌被髮布時,刷新令牌作用域必須與客戶端在請求中包含的刷新令牌的作用域相同。

(重點是我的,section 6. of the specification

這意味着,每本說明書中,自動添加新範圍/資源的訪問令牌不符合規定。但是,您不需要註銷用戶,只需要請求資源所有者同意新範圍。

同樣,這是規範對範圍的描述,這些範圍看起來與您的使用場景相匹配。但是,在某些情況下,這種情況不會如此嚴格地適用或最終不會產生真正的影響。如果一個組織控制授權服務器和客戶端應用程序,它可以決定某些應用程序享受什麼時候被稱爲行政許可,基本上資源所有者不會被要求明確同意,因爲這是一個可信的應用程序。在這些情況下,您可以增加範圍/資源而無需任何類型的用戶干預。

+0

這裏的資源只是用戶登錄後可以訪問的應用程序(受oauth2保護)。據我瞭解範圍 - 他們給用戶提供這些應用程序將代表他使用的個人數據的線索。我不想在最初獲得批准後在背後獲取一些數據,我只想爲用戶添加更多功能以與應用進行交互。 – freakman

+0

如果您的資源不代表與用戶關聯的實際數據,您是否將它們包含在令牌中,以便在處理令牌時不必從其他位置查詢它們?如果是這樣,我會考慮將它們移到令牌本身之外。 –