實戰OAUTH 2 0授權機制

2021-10-02 19:25:14 字數 1111 閱讀 8443

oauth 2.0是現在業界流行的認證授權方式,使用者可以授權應用程式在不提供使用者的密碼的場景下,可以遵循oauth的規範來申請獲取訪問伺服器的使用者相關資源的許可權。oauth 2.0的規範和流程還是比較難理解的,因此我用keycloak來實際演示一下如何按照oauth 2.0的協議來進行授權。

oauth 2.0有以下四種授權方式:

authorization code

implicit

password

這種方式是直接以使用者的使用者名稱和密碼來獲取授權的token。這種方式只適合在使用者高度信任應用程式的場景下,實際很少使用

client credential

這種方式是資源伺服器是應用程式的乙個後端模組,客戶端向認證伺服器提供client id和client secret來驗證身份來獲取令牌。

下面結合keycloak來介紹一下authorization code, implicit, client credential這三種方式的認證授權流程。

進入keycloak管理介面,新建乙個realm, 命名為test

在test realm裡面,在roles裡面新建乙個role,命名為api-vehicledata,代表後端提供了乙個叫做vehicledata的api,可以讀取使用者的車輛資訊。

在test realm裡面,在client scope裡面新建乙個scope,命名為scope-vehicledata,這個將出現在使用者consent的介面,代表使用者是否同意應用程式獲取其車輛資料。

keycloak的設定完成後,在test realm的realm setting->general->endpoint->openid endpoint configuration可以看到keycloak提供的各種endpoint,我們就可以呼叫keycloak的服務來進行演示了。

authoriazion code演示

implicit演示

token的內容和校驗方法如authorization code

client secret演示

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協議 一 傳統模式的身份驗證模型 在傳統的客戶端 伺服...