您好,登錄后才能下訂單哦!
這篇文章主要介紹了Spring Security5.5支持OAuth2.0第五種授權模式是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Spring Security 5.5發布了,主要涉及OAuth3.0和SAML2.0兩個協議。其中最大的亮點是支持了OAuth3.0的另一種授權模式jwt-bearer。
通常出現在各大技術社區的OAuth3.0有四大授權模式:
授權碼模式 grant_type=authorization_code。
隱藏模式response_type=token。
密碼模式grant_type=password。
憑據模式grant_type=client_credentials。
其實這幾種模式中都會用到Bearer Token,甚至Token直接選用JWT技術。那么它作為一種授權模式是如何定義的呢?
首先jwt-bearer認證請求也要攜帶grant_type參數來表明使用的授權模式:
grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
這個grant_type有點長!還要攜帶assertion參數,這個參數對應的值只能是一個JWT,另外也可以攜帶(可選)scope參數以表明請求的作用域。根據上面的描述,一個jwt-bearer類型的授權模式大致是這樣的:
POST /token/oauth3 HTTP/1.1 Host: felord.cn Content-Type: application/x-www-form-urlencoded grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer &assertion=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9. eyJzdWIiOiJhbGwiLCJhdWQiOiJGZWxvcmRjbiIsInJv. ER2U4CAt1xYxXBmnVQsrirkMwPwxwjWxjs
其實也就是說用戶如果要請求授權要先有一個JWT,我個人估計有可能是可以被授權服務器信任的第三方JWT憑據,憑據校驗通過用戶就可以得到相應的授權去訪問特定的資源。
RFC7523還規定JWT Bearer還可以用于客戶端身份驗證。客戶端攜帶一個client_assertion_type參數:
client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
同Beaerer JWT授權類似,還要攜帶一個client_assertion參數,這個參數同樣要帶一個JWT。請求實例如下:
POST /token/oauth3 HTTP/1.1 Host: felord.cn Content-Type: application/x-www-form-urlencoded grant_type=authorization_code& code=n0esc3NRze7LTCu7iYzS6a5acc3f0ogp4& client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3A client-assertion-type%3Ajwt-bearer& client_assertion=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9. eyJzdWIiOiJhbGwiLCJhdWQiOiJGZWxvcmRjbiIsInJv. ER2U4CAt1xYxXBmnVQsrirkMwPwxwjWxjs
那么場景是什么?根據RFC723的描述,該模式用于當客戶端希望利用一個現有的、可信任的、使用JWT語義表達的關系來獲取Access Token,它不需要在授權服務器上直接進行用戶批準(User Approval)步驟。
另外jwt-bearer也被定義用于客戶端身份驗證機制,來判斷客戶端的身份是否合規。客戶端使用JWT進行身份認證和客戶端使用JWT進行授權是分離的行為。當然這兩種行為可以組合使用,也可以分離使用。客戶端使用JWT進行身份驗證僅是客戶端向令牌端點進行身份驗證一種替代方法。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Spring Security5.5支持OAuth2.0第五種授權模式是什么”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。