OAuth2,JWT和Spring Security OAuth2

Oauth2
OAuth2.0是OAuth協議的延續版本,OAuth是一個關於授權(authorization)的開放網絡標準,但不向後兼容OAuth 1.0(即完全廢止了OAuth1.0),OAuth 2.0關注客戶端開發者的簡易性。要麼通過組織在資源擁有者和HTTP服務商之間的被批准的交互動作代表用戶,要麼允許第三方應用代表用戶獲得訪問的權限。同時爲Web應用,桌面應用,手機和起居室設備提供專門的認證流程,在全世界得到廣泛應用。OAuth2是一種授權框架,提供了一套詳細的授權機制(指導)。用戶或應用可以通過公開的或私有的設置,授權第三方應用訪問特定資源。服務可分爲授權服務和資源服務。
應用場景:如OAuth2 可以方便第三方應用(如豆瓣)獲取用戶在其他應用(如QQ)的信息。

JWT(JSON Web Token):JWT是一種認證協議。JWT提供了一種用於發佈接入令牌(Access Token),並對發佈的簽名接入令牌進行驗證的方法。 令牌(Token)本身包含了一系列聲明,應用程序可以根據這些聲明限制用戶對資源的訪問。它可以把令牌相關的數據進行編碼(因此對於後端服務來說,它不需要進行存儲,這將是一個重大優勢),但是它有一個缺點,那就是撤銷一個已經授權令牌將會非常困難,所以它通常用來處理一個生命週期較短的令牌以及撤銷刷新令牌(refresh_token)。另外一個缺點就是這個令牌佔用的空間會比較大,如果你加入了比較多用戶憑證信息。JwtTokenStore 不會保存任何數據,但是它在轉換令牌值以及授權信息方面與 DefaultTokenServices 所扮演的角色是一樣的。

Spring Security OAuth2:建立在Spring Security的基礎之上,實現了OAuth2的規範,官方原文鏈接:http://projects.spring.io/spring-security-oauth/docs/oauth2.html。Spring OAuth2.0提供者實際上分爲:授權服務 Authorization Service;資源服務 Resource Service。雖然這兩個提供者有時候可能存在同一個應用程序中,但在Spring Security OAuth中你可以把它們各自放在不同的應用上,而且你可以有多個資源服務,它們共享同一個中央授權服務。所有獲取令牌的請求都將會在Spring MVC controller endpoints中進行處理,並且訪問受保護的資源服務的處理流程將會放在標準的Spring Security請求過濾器中(filters)。

參考:
https://www.jianshu.com/p/63115c71a590

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章