Spring Security OAuth2+JWT開發實踐

 
如今我們的生活已經進入信息化時代,習慣於將工作、學習賀生活都融入各種各樣的web和移動端應用中。這些應用在給我們帶來生活便利的同時,我們也不禁擔心,與我們自身相關的數據是否處於安全包含之下。
 
這也是各類公司的技術團隊需要考慮的問題,數據安全問題成爲這些技術團隊必須放在首位的非功能要求。
 
同時,隨着軟件環境和需求的變化,軟件的架構由單體結構演變爲分佈式架構,如當前流行的微服務架構。
 
對微服務架構而言,安全性設計的核心還是認證和授權。但是因爲微服務系統中服務之間可以存在相互的調用關係,針對每一個服務,一方面需要考慮來自客戶端的請求,另一方面需要考慮來自另一個服務的請求,安全訪問控制面臨着從客戶端到服務、從服務到服務的多種授權場景。
基於上述安全性開發需求,需要引入專門用於分佈式環境的認證授權體系,而OAuth2 協議和JWT(Json web token)令牌是應對這種應用場景的有效解決方案。
 
 
 
專欄大綱
 
Spring Security 是一個功能強大且高度可定製的身份驗證和訪問控制框架。它是基於 Spring 和 Spring Boot、Spring Cloud 應用程序安全的實現標準。
Spring Security 是一個專注於爲 Java 應用程序提供身份驗證和授權的框架。與所有 Spring 項目一樣,Spring Security 的真正強大之處在於它可以輕鬆擴展以滿足自定義需求。
OAuth2 是一種安全的授權框架,提供了一套詳細的授權機制。用戶或應用可以通過公開的或私有的設置,授權第三方應用訪問特定資源。它詳細描述了系統中不同角色、用戶、服務應用(比如API),以及客戶端(比如網站或移動App)之間怎麼實現相互認證。
OAuth2定義了一組相對複雜的規範,涉及到:Roles角色、Client Types客戶端類型、Client Profile客戶端描述、Authorization Grants認證授權、Endpoints終端等。
如今,OAuth 2.0已經是互聯網上首選的授權協議。它被廣泛使用,從大型互聯網公司到小型創業公司,幾乎所有的地方都在使用它。
 
越來越多的開發者開始學習並在實際項目中運用JWT(Json Web Token)技術來保護應用安全,很多公司的應用程序也開始使用JWT來管理用戶會話信息。
JWT 提供了一種用於發佈接入令牌(Access Token),並對發佈的簽名接入令牌進行驗證的方法。 令牌(Token)本身包含了一系列聲明,應用程序可以根據這些聲明限制用戶對資源的訪問。
JWT是一種安全標準,基本思路就是用戶提供用戶名和密碼給認證服務器,服務器驗證用戶提交信息信息的合法性;如果驗證成功,會產生並返回一個Token(令牌),用戶可以使用這個Token訪問服務器上受保護的資源。
 
本專欄採取了循序漸進和開發實踐相結合的編寫方式,目標是幫助讀者理解Spring Security、OAuth2和JWT等基本概念和工作原理,基於Spring Security 和OAuth2,結合JWT令牌,以最佳的方式來構建分佈式環境的認證授權體系。
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章