<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          再見,Spring Security OAuth??!

          共 3359字,需瀏覽 7分鐘

           ·

          2021-09-02 18:39

          點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)

          官宣新品

          最近,Spring 官方又推出了《Spring Authorization Server》項(xiàng)目:

          本次將 《Spring Authorization Server》項(xiàng)目正式上線,去掉了之前的體驗(yàn)狀態(tài),此舉恰逢 0.2.0 版本發(fā)布,這也是第一個(gè)正式支持的生產(chǎn)就緒版本。

          項(xiàng)目前身

          首先來看一則 2019 年 的 Spring Security OAuth 2.0 路線更新圖說明:

          Spring Security OAuth 2.0 Roadmap Update

          https://spring.io/blog/2019/11/14/spring-security-oauth-2-0-roadmap-update

          大概的意思是:

          Spring Security 項(xiàng)目用來支持授權(quán)服務(wù)器不是一個(gè)合適的選擇,因?yàn)槭跈?quán)服務(wù)器需要一個(gè)庫來進(jìn)行構(gòu)建,而 Spring Security 作為一個(gè)框架,不適合用來參與構(gòu)建庫或產(chǎn)品,市面上又有大量商業(yè)和開源授權(quán)服務(wù)器可以選擇,因此,Spring Security 團(tuán)隊(duì)決定不再提供對(duì)授權(quán)服務(wù)器的支持。。


          另外,在 2018 年初,Spring 就宣布了 Spring Security OAuth 項(xiàng)目正式進(jìn)入維護(hù)模式,并且計(jì)劃在不久的將來會(huì)徹底停止支持。

          我們進(jìn)入 Spring Security OAuth 項(xiàng)目主頁:

          https://projects.spring.io/spring-security-oauth/docs/oauth2.html

          可以看到棄用通知:

          Spring Security OAuth 項(xiàng)目已經(jīng)被棄用了,最新的 OAuth 2.0 支持由 Spring Security 項(xiàng)目提供,有關(guān)更多詳細(xì)信息,請(qǐng)參閱 OAuth 2.0 遷移指南:

          https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide

          即使 Spring Security OAuth 項(xiàng)目被 Spring Security 項(xiàng)目接管了,但 Spring Security 依舊不再包含對(duì)授權(quán)服務(wù)器的支持,你可以用商用的、開源的,或者自己搭建,反正 Spring 不再提供了,純粹的只做框架了。。

          項(xiàng)目背景

          Spring 棄用授權(quán)服務(wù)器之后,社區(qū)、博客上的反饋、Gitter 中的討論和 GitHub 中的評(píng)論反響熱烈,一致強(qiáng)烈要求 Spring 提供對(duì)授權(quán)服務(wù)器的支持,Spring 估計(jì)也是頂不住壓力了,或者真的意識(shí)到 Spring 生態(tài)確實(shí)是需要授權(quán)服務(wù)器這玩意。。

          于是在 2020/04/15 這天,Spring 團(tuán)隊(duì)又宣布新起《Spring Authorization Server》項(xiàng)目,以繼續(xù)提供對(duì) Spring 授權(quán)服務(wù)器的支持。

          https://spring.io/blog/2020/04/15/announcing-the-spring-authorization-server

          這是由 Spring Security 團(tuán)隊(duì)領(lǐng)導(dǎo)的社區(qū)驅(qū)動(dòng)項(xiàng)目,專注于為 Spring 社區(qū)提供授權(quán)服務(wù)器支持,該項(xiàng)目也開始替換了 Spring Security OAuth 提供的對(duì)于 Authorization Server 的支持。

          完整功能列表:

          • The OAuth 2.0 Authorization Framework
            • Authorization Code Grant
            • HTTP Basic
            • HTTP POST
            • Authorization Code
            • Client Credentials
            • Refresh Token
            • Authorization Grant
            • Client Authentication
            • User Consent
          • Proof Key for Code Exchange by OAuth Public Clients (PKCE)
          • OAuth 2.0 Token Revocation
          • OAuth 2.0 Token Introspection
          • OAuth 2.0 Authorization Server Metadata
          • JSON Web Token (JWT)
          • JSON Web Signature (JWS)
          • JSON Web Key (JWK)
          • OpenID Connect Core 1.0
            • Authorization Code Flow
          • OpenID Connect Discovery 1.0
            • Provider Configuration Endpoint
          • OpenID Connect Dynamic Client Registration 1.0
            • Client Registration Endpoint

          即將到來的功能:

          • JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants
          • OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens
          • OpenID Connect Core 1.0
            • UserInfo Endpoint
          • OAuth 2.0 Token Exchange

          這部分這里就不展開介紹了,后續(xù)棧長有時(shí)間會(huì)進(jìn)行詳細(xì)的理論+實(shí)戰(zhàn),關(guān)注公眾號(hào)Java技術(shù)棧,第一時(shí)間推送。

          為什么需要授權(quán)服務(wù)器?

          這個(gè)你需要了解下 OAuth2.0 協(xié)議,它定義了四個(gè)角色:

          • Client:客戶端,即請(qǐng)求授權(quán)用戶資源的第三方應(yīng)用程序;

          • Resource Owner:資源所有者,授權(quán) Client 訪問其帳戶的用戶;

          • Authorization server: 授權(quán)服務(wù)器,即服務(wù)商用于處理用戶授權(quán)認(rèn)證的服務(wù)器;

          • Resource server:資源服務(wù)器,即服務(wù)商提供用戶受保護(hù)資源的服務(wù)器;

          另外,OAuth2.0 支持四種運(yùn)行模式:

          • 授權(quán)碼模式
          • 隱式授權(quán)模式
          • 密碼模式
          • 客戶端模式

          但一般我們使用較多的還是授權(quán)碼模式。

          授權(quán)碼模式運(yùn)行流程如下:

          流程說明:

          1、客戶端請(qǐng)求用戶給予授權(quán);

          2、用戶同意給予客戶端授權(quán),并返回授權(quán)碼;

          3、客戶端通過授權(quán)碼再向認(rèn)證服務(wù)器申請(qǐng)令牌;

          4、認(rèn)證服務(wù)器對(duì)客戶端進(jìn)行認(rèn)證并返回令牌;

          5、客戶端使用令牌向資源服務(wù)器獲取資源;

          6、資源服務(wù)器驗(yàn)證令牌,并返回資源;


          如流程所示,OAuth2 授權(quán)碼模式的運(yùn)行流程就少不了 Authorization Server(授權(quán)服務(wù)器),授權(quán)服務(wù)器用于授權(quán)認(rèn)證,以及對(duì) Access Token(令牌)的發(fā)放、管理、吊銷等。

          授權(quán)服務(wù)器可以和資源服務(wù)器在不同的服務(wù)器,也可以是同一臺(tái)服務(wù)器。

          總結(jié)

          Spring 官方在 2020/04 才宣布搞《Spring Authorization Server》這個(gè)項(xiàng)目,才一年多時(shí)間就可以上線使用了,效率杠杠的啊,團(tuán)隊(duì)的目標(biāo)也很明確,就是要使《Spring Authorization Server》項(xiàng)目最終成為 Java 平臺(tái)上 OAuth 2 Authorization Server 事實(shí)上的標(biāo)準(zhǔn)框架。

          好了,今天的分享就到這了,后面棧長還會(huì)陸續(xù)解讀更多的 Java 主流技術(shù),關(guān)注公眾號(hào)Java技術(shù)棧第一時(shí)間推送。另外,我也將 Spring 系列主流面試題和參考答案都整理好了,關(guān)注公眾號(hào)Java技術(shù)?;貜?fù)關(guān)鍵字 "面試" 進(jìn)行刷題。

          最后,覺得我的文章對(duì)你用收獲的話,動(dòng)動(dòng)小手,給個(gè)在看、轉(zhuǎn)發(fā),原創(chuàng)不易,棧長需要你的鼓勵(lì)。

          版權(quán)申明:本文系公眾號(hào) "Java技術(shù)棧" 原創(chuàng),原創(chuàng)實(shí)屬不易,轉(zhuǎn)載、引用本文內(nèi)容請(qǐng)注明出處,禁止抄襲、洗稿,請(qǐng)自重,尊重大家的勞動(dòng)成果和知識(shí)產(chǎn)權(quán),抄襲必究。






          關(guān)注Java技術(shù)??锤喔韶?/strong>



          獲取 Spring Boot 實(shí)戰(zhàn)筆記!
          瀏覽 122
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  夜噜噜在线 | 久久国产精品久久 | 爱爱无码电影 | 正在播放无码 | 青青操免费精品 |