Oauth 2 0的幾種授權模式及應用場景

2021-10-05 02:50:43 字數 1736 閱讀 6732

2023年10月,oauth 2.0協議正式發布為rfc 6749
oauth是乙個開放標準,允許使用者授權第三方應用訪問他們儲存在另外的服務提供者上的資訊,而不需要將使用者名稱和密碼提供給第三方移動應用或分享他們資料的所有內容。

在oauth 2.0的認證和授權的過程中主要包括以下角色定義:

oauth 在 「客戶端」 與 「服務提供商」 之間,設定了乙個授權層(authorization layer)。「客戶端」 不能直接登入 「服務提供商」,只能登入授權層,以此將使用者與客戶端區分開來。「客戶端」 登入授權層所用的令牌(token),與使用者的密碼不同。使用者可以在登入的時候,指定授權層令牌的許可權範圍和有效期。「客戶端」 登入授權層以後,「服務提供商」 根據令牌的許可權範圍和有效期,向 「客戶端」 開放使用者儲存的資料。

以下為qq的授權頁面,採用的是授權碼模式

簡化模式適用於純靜態頁面應用。該模式下,access_token容易洩露且不可重新整理

重定向到乙個授權頁面

使用者同意授權

獲取到資源伺服器的資源

適用於有自己的伺服器的應用,它是乙個一次性的臨時憑證,用來換取access_tokenrefresh_token。一旦換取成功,code立即作廢,不能再使用第二次。

重定向到乙個授權頁面

使用者同意授權

code換取access_tokenrefresh_token

使用者向客戶端提供自己的使用者名稱和密碼,向 「服務商提供商」 換取access_token

如第三方,或者呼叫者是乙個後端的模組,沒有使用者介面的時候,可以使用客戶端模式。鑑權伺服器直接對客戶端進行身份驗證,驗證通過後,返回 token。

後台系統之間資源互相訪問,如:日誌模組,發郵件模組,發簡訊模組等(平台資源)。

需要引用相關模組的系統可採用客戶端模式授權

前台系統之間資源互相訪問,如:使用者資訊,模組等(使用者資源)。

需要引用相關模組的系統可採用密碼模式授權

綜合上述模式及認證流程,個人覺得以下場景可以考慮引入oauth 2.0認證:

系統敏感資源服務進行安全認證及資源保護工作

多個服務的統一登入認證中心、內部系統之間受保護資源請求

將受保護的使用者資源授權給第三方信任使用者

Oauth2 0授權方式

oauth2.0是一套標準。這個標準解決了這樣的乙個問題。給第三方應用乙個臨時密碼,過期作廢,而且這個密碼的訪問許可權可由我隨時取消。這樣就足夠安全了。這個臨時密碼就是access token。發放access token的方法就多種多樣了,這些方法叫做授權模式。oauth2為我們提供了四種授權方式...

OAuth2 0認證授權

授權碼模式 authorization code 是功能最完整 流程最嚴密的授權模式。它的特點就是通過客戶端的後台伺服器,與 服務提供商 的認證伺服器進行互動。client id x client secret x response type 表示授權型別,必選項,此處的值固定為 code clie...

OAuth 2 0授權框架

背景介紹 oauth2.0授權框架支援第三方應用程式以獲取對http服務的有限訪問權,通過協調批准互動來代表資源所有者,在資源所有者和http服務之間,或者通過允許第三方應用程式代表自己獲取訪問許可權。這個規範取代並淘汰了所描述的oauth1.0協議 一 傳統模式的身份驗證模型 在傳統的客戶端 伺服...