国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Authorization Server入門 (一) 初識(shí)SpringAuthorizationServer和OAuth2.1協(xié)議

這篇具有很好參考價(jià)值的文章主要介紹了Spring Authorization Server入門 (一) 初識(shí)SpringAuthorizationServer和OAuth2.1協(xié)議。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

什么是OAuth2.1?

經(jīng)過(guò)近些年網(wǎng)絡(luò)和設(shè)備的不斷發(fā)展,之前的oauth2.0發(fā)布的授權(quán)協(xié)議標(biāo)準(zhǔn)已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足現(xiàn)在的場(chǎng)景和需求,根據(jù)其安全最佳實(shí)踐,在oauth2.0的基礎(chǔ)上移除了一些不安全的授權(quán)方式,并且對(duì)擴(kuò)展協(xié)議進(jìn)行整合。該協(xié)議定義了一系列關(guān)于授權(quán)的開(kāi)放網(wǎng)絡(luò)標(biāo)準(zhǔn),允許用戶授權(quán)第三方應(yīng)用訪問(wèn)他們存儲(chǔ)在另外的服務(wù)提供者上的信息。現(xiàn)在各三方平臺(tái)提供的授權(quán)登錄基本都是基于oauth協(xié)議的,例如微信、QQ、GitHub和Gitee等平臺(tái)提供的授權(quán)登錄。而Spring Security的團(tuán)隊(duì)也在社區(qū)的推動(dòng)下推出了基于oauth2.1協(xié)議的授權(quán)框架:Spring Authorization Server。

什么是Spring Authorization Server?

Spring authorization server是由社區(qū)推動(dòng)的一個(gè)項(xiàng)目,在Spring security團(tuán)隊(duì)的領(lǐng)導(dǎo)下基于Nimbus庫(kù)重頭編寫,其目的主要是為 Spring 社區(qū)提供 OAuth 2.0 授權(quán)服務(wù)器支持,替代已被廢棄的Spring Security OAuth框架。Spring authorization server提供了OAuth 2.1和OpenID Connect 1.0規(guī)范以及其他相關(guān)規(guī)范的實(shí)現(xiàn)。

Spring Authorization Server根據(jù)oauth2.1規(guī)范實(shí)現(xiàn)的特性列表

在列出特性時(shí)也會(huì)根據(jù)特性說(shuō)明該特性對(duì)應(yīng)的oauth2.1規(guī)范。

認(rèn)證功能列表

角色解釋(摘抄自oauth2.1規(guī)范文檔 Roles)

  1. Resource Owner:資源擁有者;能夠授予對(duì)受保護(hù)資源的訪問(wèn)權(quán)限的實(shí)體,通常指的是終端用戶。
  2. Client:客戶端;代表資源所有者發(fā)出受保護(hù)資源請(qǐng)求并獲得其授權(quán)的應(yīng)用程序。
  3. Authorization Server:認(rèn)證服務(wù)器;服務(wù)器在成功對(duì)資源所有者進(jìn)行身份驗(yàn)證并獲得授權(quán)后向客戶端發(fā)出訪問(wèn)令牌。
  4. Resource Server:資源服務(wù)器;托管受保護(hù)資源的服務(wù)器,能夠使用訪問(wèn)令牌接受和響應(yīng)受保護(hù)的資源請(qǐng)求。
  • 授權(quán)碼模式

    授權(quán)碼模式(Authorization Code Grant)是功能最完整、流程最嚴(yán)密的授權(quán)模式。它的特點(diǎn)就是通過(guò)客戶端的后臺(tái)服務(wù)器,與"服務(wù)提供商"的認(rèn)證服務(wù)器進(jìn)行互動(dòng);流程如下

    spring-authorization-server,Spring Authorization Server,Spring Security,Spring,spring,java

    更詳細(xì)內(nèi)容請(qǐng)查看規(guī)范中關(guān)于授權(quán)碼模式的介紹.4.1. Authorization Code Grant

    授權(quán)碼擴(kuò)展流程PKCE(Proof Key for Code Exchange)

    使用授權(quán)碼授予的OAuth 2.0公共客戶端是易受授權(quán)碼攔截攻擊。該流程可以減輕攻擊,通過(guò)使用代碼交換證明密鑰來(lái)抵御威脅??蛻舳松蒫ode_verifier和code_challenge跟認(rèn)證服務(wù)器進(jìn)行交互,以生成的隨機(jī)認(rèn)證碼進(jìn)行身份認(rèn)證。
    spring-authorization-server,Spring Authorization Server,Spring Security,Spring,spring,java
    更詳細(xì)內(nèi)容請(qǐng)查看規(guī)范中關(guān)于PKCE的介紹. rfc7636

  • 客戶端模式

    客戶端模式(Client Credentials Grant)指客戶端以自己的名義,而不是以用戶的名義,向"服務(wù)提供商"進(jìn)行認(rèn)證。嚴(yán)格地說(shuō),客戶端模式并不屬于OAuth框架所要解決的問(wèn)題。在這種模式中,用戶直接向客戶端注冊(cè),客戶端以自己的名義要求"服務(wù)提供商"提供服務(wù),其實(shí)不存在授權(quán)問(wèn)題;流程如下

    spring-authorization-server,Spring Authorization Server,Spring Security,Spring,spring,java

    更詳細(xì)內(nèi)容請(qǐng)查看規(guī)范中關(guān)于客戶端模式的介紹.4.2. Client Credentials Grant

  • 設(shè)備授權(quán)碼模式

    設(shè)備授權(quán)碼模式(Device Authorization Grant)主要會(huì)出現(xiàn)在憑證式授權(quán)類型中,為設(shè)備代碼,設(shè)備流中無(wú)瀏覽器或輸入受限的設(shè)備提供的一種認(rèn)證方式,設(shè)備會(huì)讓用戶在另一臺(tái)設(shè)備上的瀏覽器中訪問(wèn)一個(gè)網(wǎng)頁(yè),以進(jìn)行登錄。 用戶登錄后,設(shè)備可以獲取所需的訪問(wèn)令牌和刷新令牌;流程如下

spring-authorization-server,Spring Authorization Server,Spring Security,Spring,spring,java

更詳細(xì)內(nèi)容請(qǐng)查看規(guī)范中關(guān)于設(shè)備授權(quán)碼模式的介紹.rfc8628

  • 刷新access token

    刷新令牌在獲取access token時(shí)會(huì)同步獲取刷新令牌(Refresh token),如果用戶訪問(wèn)的時(shí)候,客戶端的"訪問(wèn)令牌"已經(jīng)過(guò)期,則需要使用"更新令牌(Refresh token)"申請(qǐng)一個(gè)新的訪問(wèn)令牌。

注意:oauth2.1移除了隱式授權(quán)模式(Implicit grant)和密碼模式(Resource Owner Password Credentials Grant)。詳見(jiàn)oauth2.1規(guī)范中提到的“與oauth2.0的區(qū)別”和oauth2.0規(guī)范中對(duì)于“密碼模式”的描述:The resource owner password credentials grant MUST NOT be used.

Token生成

  • 令牌生成器

    框架提供了令牌生成器(OAuth2TokenGenerator),負(fù)責(zé)從提供的OAuth2TokenContext中根據(jù)TokenType類型生成對(duì)應(yīng)的OAuth2Token,tokenGenerator很靈活,它可以支持access_token和refresh_token的任何自定義令牌格式。

  • JWT RFC 7519

  • JWS RFC 7515

客戶端認(rèn)證方式

client_secret_basic

客戶端將clientId 和 clientSecret 通過(guò) ‘:’ 號(hào)拼接,并使用 Base64 進(jìn)行編碼得到一個(gè)字符串。將此編碼字符串放到請(qǐng)求頭(Authorization)去發(fā)送請(qǐng)求。授權(quán)服務(wù)器通過(guò)獲取請(qǐng)求頭中的clientId和clientSecret對(duì)客戶端進(jìn)行認(rèn)證。

client_secret_post

客戶端將 clientId 和 clientSecret 放到請(qǐng)求體(表單)去發(fā)送請(qǐng)求。授權(quán)服務(wù)器獲取請(qǐng)求參數(shù)中的clientId和clientSecret對(duì)客戶端進(jìn)行認(rèn)證。

client_secret_jwt

client_secret_jwt方式就是利用 JWT 進(jìn)行認(rèn)證。請(qǐng)求方和授權(quán)服務(wù)器,兩者都知道客戶端的 client_secret,通過(guò)相同的 HMAC 算法(對(duì)稱簽名算法)去加簽和驗(yàn)簽 JWT ,可以達(dá)到客戶端認(rèn)證的目的。請(qǐng)求方通過(guò)HMAC算法,以 client_secret 作為密鑰,將客戶端信息加簽生成 JWT;授權(quán)服務(wù)器使用相同的HMAC算法和client_secret,對(duì)請(qǐng)求方的 JWT 進(jìn)行驗(yàn)簽以認(rèn)證客戶端。

private_key_jwt

private_key_jwt 方式就是利用 JWT 進(jìn)行認(rèn)證;請(qǐng)求方擁有自己的公私鑰(密鑰對(duì)),使用私鑰對(duì) JWT 加簽,并將公鑰暴露給授權(quán)服務(wù)器;授權(quán)服務(wù)器通過(guò)請(qǐng)求方的公鑰驗(yàn)證 JWT,也能達(dá)到客戶端認(rèn)證的目的。請(qǐng)求方維護(hù)了一對(duì)公私鑰,通過(guò) RSA算法,使用私鑰將客戶端信息加簽生成 JWT;另外還通過(guò)接口暴露公鑰給授權(quán)服務(wù)器;授權(quán)服務(wù)器使用請(qǐng)求方的公鑰對(duì)請(qǐng)求方的 JWT進(jìn)行驗(yàn)簽以認(rèn)證客戶端。

none (public clients)

當(dāng)客戶端是公共客戶端時(shí)認(rèn)證服務(wù)器不會(huì)對(duì)客戶端進(jìn)行驗(yàn)證,PKCE(Proof Key for Code Exchange)流程要求客戶端為公共客戶端。

認(rèn)證服務(wù)器端點(diǎn)

包含OAuth2.1和Open Connect 1.0相關(guān)端點(diǎn),詳見(jiàn)官網(wǎng)對(duì)于端點(diǎn)的介紹文檔

總結(jié)

本篇文章只是一個(gè)引子,很多地方說(shuō)的很簡(jiǎn)單,大概了解了一些關(guān)于spring Authorization Server和oauth協(xié)議的相關(guān)內(nèi)容,如果對(duì)某個(gè)點(diǎn)感興趣可以針對(duì)性的去讀一些相關(guān)的文章。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-667387.html

到了這里,關(guān)于Spring Authorization Server入門 (一) 初識(shí)SpringAuthorizationServer和OAuth2.1協(xié)議的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Authorization Server入門 (二十) 實(shí)現(xiàn)二維碼掃碼登錄

    Spring Authorization Server入門 (二十) 實(shí)現(xiàn)二維碼掃碼登錄

    打開(kāi)網(wǎng)頁(yè),發(fā)起授權(quán)申請(qǐng)/未登錄被重定向到登錄頁(yè)面 選擇二維碼登錄,頁(yè)面從后端請(qǐng)求二維碼 頁(yè)面渲染二維碼圖片,并輪詢請(qǐng)求,獲取二維碼的狀態(tài) 事先登錄過(guò)APP的手機(jī)掃描二維碼,然后APP請(qǐng)求服務(wù)器端的API接口,把用戶認(rèn)證信息傳遞到服務(wù)器中 后端收到APP的請(qǐng)求后更改

    2024年02月21日
    瀏覽(23)
  • Spring Authorization Server入門 (十五) 分離授權(quán)確認(rèn)與設(shè)備碼校驗(yàn)頁(yè)面

    2023-12-01修改:在session-data-redis(Github)分支中添加了基于 spring-session-data-redis 的實(shí)現(xiàn),無(wú)需借助 nonceId 來(lái)保持認(rèn)證狀態(tài),該分支已去除所有 nonceId 相關(guān)內(nèi)容,需要注意的是 axios 在初始化時(shí)需要添加配置 withCredentials: true ,讓請(qǐng)求攜帶cookie。當(dāng)然一些響應(yīng)json的處理還是使用下方的

    2024年02月14日
    瀏覽(18)
  • 【Spring Authorization Server 系列】(一)入門篇,快速搭建一個(gè)授權(quán)服務(wù)器

    【Spring Authorization Server 系列】(一)入門篇,快速搭建一個(gè)授權(quán)服務(wù)器

    官方主頁(yè):https://spring.io/projects/spring-authorization-server Spring Authorization Server 是一個(gè)框架,提供了 OAuth 2.1 和 OpenID Connect 1.0 規(guī)范以及其他相關(guān)規(guī)范的實(shí)現(xiàn)。 它建立在 Spring Security 之上,為構(gòu)建 OpenID Connect 1.0 Identity Providers 和 OAuth2 Authorization Server 產(chǎn)品提供安全、輕量級(jí)和可定制

    2024年02月16日
    瀏覽(26)
  • Spring Authorization Server入門 (十二) 實(shí)現(xiàn)授權(quán)碼模式使用前后端分離的登錄頁(yè)面

    Spring Authorization Server入門 (十二) 實(shí)現(xiàn)授權(quán)碼模式使用前后端分離的登錄頁(yè)面

    2023-12-01修改:在session-data-redis(Github)分支中添加了基于 spring-session-data-redis 的實(shí)現(xiàn),無(wú)需借助 nonceId 來(lái)保持認(rèn)證狀態(tài),該分支已去除所有 nonceId 相關(guān)內(nèi)容,需要注意的是 axios 在初始化時(shí)需要添加配置 withCredentials: true ,讓請(qǐng)求攜帶cookie。當(dāng)然一些響應(yīng)json的處理還是使用下方的

    2024年02月13日
    瀏覽(25)
  • Spring Authorization Server入門 (三) 集成流程說(shuō)明、細(xì)節(jié)補(bǔ)充和各種方式獲取token測(cè)試

    Spring Authorization Server入門 (三) 集成流程說(shuō)明、細(xì)節(jié)補(bǔ)充和各種方式獲取token測(cè)試

    在上一篇文章中的AuthorizationConfig.java配置類中,類上有三個(gè)注解,分別是@Configuration、@EnableWebSecurity和@EnableMethodSecurity注解,雖然在類中有注釋,但是這里在細(xì)講一下,同時(shí)放一下官網(wǎng)的說(shuō)明 @EnableWebSecurity 加載了WebSecurityConfiguration配置類, 配置安全認(rèn)證策略。 加載了Authenti

    2024年02月11日
    瀏覽(21)
  • Spring Security 6.x 系列【28】授權(quán)服務(wù)器篇之Spring Authorization Server 1.0 入門案例

    Spring Security 6.x 系列【28】授權(quán)服務(wù)器篇之Spring Authorization Server 1.0 入門案例

    有道無(wú)術(shù),術(shù)尚可求,有術(shù)無(wú)道,止于術(shù)。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 本系列Spring Authorization Server 版本 1.0.2 源碼地址:https://gitee.com/pearl-organization/study-spring-security-demo 在前幾篇文檔中,我們學(xué)習(xí)了 OAuth 2.0 協(xié)議,并使用 spring-security-oauth2-client 完成

    2024年02月12日
    瀏覽(24)
  • Spring Authorization Server入門 (八) Spring Boot引入Security OAuth2 Client對(duì)接認(rèn)證服務(wù)

    Spring Authorization Server入門 (八) Spring Boot引入Security OAuth2 Client對(duì)接認(rèn)證服務(wù)

    在之前的文章中實(shí)現(xiàn)了一個(gè)認(rèn)證服務(wù),并且添加了一些自定義的內(nèi)容,現(xiàn)在暫時(shí)沒(méi)想到認(rèn)證服務(wù)的新內(nèi)容,本篇文章就先寫一下客戶端對(duì)接的吧,水一篇。 當(dāng)用戶通過(guò)客戶端去訪問(wèn)一個(gè)受限的資源時(shí),客戶端會(huì)檢測(cè)是否有登錄信息,沒(méi)有登錄信息會(huì)重定向至認(rèn)證服務(wù)器去請(qǐng)求

    2024年02月21日
    瀏覽(28)
  • Spring Authorization Server入門 (十三) 實(shí)現(xiàn)聯(lián)合身份認(rèn)證,集成Github與Gitee的OAuth登錄

    Spring Authorization Server入門 (十三) 實(shí)現(xiàn)聯(lián)合身份認(rèn)證,集成Github與Gitee的OAuth登錄

    什么是聯(lián)合身份認(rèn)證? ??????通過(guò)Spring Security OAuth2 Client(Login)模塊集成第三方登錄至自己的認(rèn)證服務(wù)中,使用聯(lián)合身份認(rèn)證只需要請(qǐng)求認(rèn)證服務(wù),不通過(guò)前端來(lái)跳轉(zhuǎn)三方的授權(quán)申請(qǐng)鏈接,而是統(tǒng)一通過(guò)認(rèn)證服務(wù)來(lái)跳轉(zhuǎn),只需要維護(hù)Spring Authorization Server中身份認(rèn)證提供商

    2024年02月05日
    瀏覽(42)
  • Spring Authorization Server 授權(quán)服務(wù)器

    Spring Authorization Server 遵循Oauth2.1和OpenID Connect 1.0,它建立在 Spring Security 之上。 要求JDK11以上 使用Idea創(chuàng)建一個(gè)Maven的Spring Boot(筆者使用的是 spring boot 2.7 )項(xiàng)目 pom需要引入 Authorization Server的配置 完整的pom.xml文件如下: 使用 @Bean 和 @Configuration 創(chuàng)建配置,這是官方推薦的最小配

    2024年02月16日
    瀏覽(20)
  • Spring Security 源碼解讀:OAuth2 Authorization Server

    Spring Security 源碼解讀:OAuth2 Authorization Server

    樣例代碼請(qǐng)參考:spring-security-oauth2.0-sample Spring Authorization Server剛發(fā)展不久,還沒(méi)有springboot版本,而Resource Server有,但是兩個(gè)底層很多不兼容,會(huì)重復(fù)引入不同版本的jar包。 另外,該 spring-security-oauth2-authorization-server 依賴支持OAuth2.1草案規(guī)范。 關(guān)于 OAuth2.1 草案介紹請(qǐng)參考

    2023年04月22日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包