[英]OAuth 2: separating resource server and authorization server
OAuth 2 規范讓我相信“資源服務器”和“授權服務器”不一定是同一個應用程序,但我正在努力弄清楚這在實踐中是如何實際實現的。
例如,假設存在以下應用程序:
場景 #1:登錄到 Web 前端
場景#2:授權第三方應用
我無法理解的部分是如何在場景 #2 中顯示允許/拒絕表單之前對用戶進行身份驗證。 用戶可能已登錄到主 Web 應用程序,但身份驗證服務對此一無所知,因此需要以某種方式再次對用戶進行身份驗證。 身份驗證服務是否也需要支持登錄/會話?
我想知道 Web 應用程序負責顯示允許/拒絕表單是否更有意義,原因有兩個:
這是場景 #2 的一種可能替代方案:
處理這個問題的最佳方法是什么? 任何一般性評論、建議等都會很棒!
謝謝
OAauth2 框架文檔: https ://tools.ietf.org/html/rfc6749
(A) 客戶端通過與授權服務器進行身份驗證並提供授權許可來請求訪問令牌。
(B) 授權服務器對客戶端進行身份驗證並驗證授權授權,如果有效,則頒發訪問令牌和刷新令牌。
(C) 客戶端通過提供訪問令牌向資源服務器發出受保護的資源請求。
(D) 資源服務器驗證訪問令牌,如果有效,則為請求提供服務。
(E) 重復步驟 (C) 和 (D),直到訪問令牌過期。 如果客戶端知道訪問令牌已過期,則跳到步驟(G); 否則,它會發出另一個受保護的資源請求。
(F) 由於訪問令牌無效,資源服務器返回無效令牌錯誤。
(G) 客戶端通過與授權服務器進行身份驗證並提供刷新令牌來請求新的訪問令牌。 客戶端身份驗證要求基於客戶端類型和授權服務器策略。
(H) 授權服務器對客戶端進行身份驗證並驗證刷新令牌,如果有效,則頒發新的訪問令牌(以及可選的新刷新令牌)。
你的替代方案可能是你想要的:如果你真的想把你的流分開,你可以嘗試這樣的事情:
[http://alexbilbie.com/guide-to-oauth-2-grants/][1] 也嘗試訪問此內容以獲得更清晰的信息。
正如之前的作者所說,只有當您屬於 [SPA] 或移動應用程序屬於第一方時才使用密碼授權,例如直接登錄到 gmail。 GMAIL 是谷歌頁面/應用程序的一部分,
ii) 從授權服務器獲取令牌的代碼 [granttype=code] 應該從后端而不是從瀏覽器后端通道通信發生]
查看 OAUTH2 IN ACTION 書 - Manning 出版物,迄今為止關於 oauth2 的最佳文章之一
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.