成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring Security5.5發布,正式實裝OAuth2.0的第五種授權模式

開發 架構
今天Spring Security 5.5發布了,主要涉及OAuth2.0和SAML2.0兩個協議。

[[400320]]

今天Spring Security 5.5發布了,主要涉及OAuth2.0和SAML2.0兩個協議。其中最大的亮點是支持了OAuth2.0的另一種授權模式jwt-bearer。這個模式可能對大家比較陌生,說實話胖哥也沒在實際開發中玩過這種模式,不過它并不是剛出的規范,這是2015年5月起草的RFC7523的一部分,如今正式實裝到Spring Security中,今天就和大家一起學習一下這個規范。

JWT Bearer 授權模式

通常出現在各大技術社區的OAuth2.0有四大授權模式:

授權碼模式 grant_type=authorization_code。

隱藏模式response_type=token。

密碼模式grant_type=password。

憑據模式grant_type=client_credentials。

其實這幾種模式中都會用到Bearer Token,甚至Token直接選用JWT技術。那么它作為一種授權模式是如何定義的呢?

JWT Bearer 授權

首先jwt-bearer認證請求也要攜帶grant_type參數來表明使用的授權模式:

  1. grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer 

這個grant_type有點長!還要攜帶assertion參數,這個參數對應的值只能是一個JWT,另外也可以攜帶(可選)scope參數以表明請求的作用域。根據上面的描述,一個jwt-bearer類型的授權模式大致是這樣的:

  1. POST /token/oauth2 HTTP/1.1 
  2.      Host: felord.cn 
  3.      Content-Type: application/x-www-form-urlencoded 
  4.  
  5.      grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer 
  6.      &assertion=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9. 
  7.      eyJzdWIiOiJhbGwiLCJhdWQiOiJGZWxvcmRjbiIsInJv. 
  8.      ER2U4CAt1xYxXBmnVQsrirkMwPwxwjWxjs 

其實也就是說用戶如果要請求授權要先有一個JWT,我個人估計有可能是可以被授權服務器信任的第三方JWT憑據,憑據校驗通過用戶就可以得到相應的授權去訪問特定的資源。

客戶端身份認證

RFC7523還規定JWT Bearer還可以用于客戶端身份驗證。客戶端攜帶一個client_assertion_type參數:

  1. client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer 

同Beaerer JWT授權類似,還要攜帶一個client_assertion參數,這個參數同樣要帶一個JWT。請求實例如下:

  1. POST /token/oauth2 HTTP/1.1 
  2.     Host: felord.cn 
  3.     Content-Type: application/x-www-form-urlencoded 
  4.  
  5.     grant_type=authorization_code& 
  6.     code=n0esc3NRze7LTCu7iYzS6a5acc3f0ogp4& 
  7.     client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3A 
  8.     client-assertion-type%3Ajwt-bearer& 
  9.     client_assertion=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9. 
  10.     eyJzdWIiOiJhbGwiLCJhdWQiOiJGZWxvcmRjbiIsInJv. 
  11.     ER2U4CAt1xYxXBmnVQsrirkMwPwxwjWxjs 

場景

那么場景是什么?根據RFC723的描述,該模式用于當客戶端希望利用一個現有的、可信任的、使用JWT語義表達的關系來獲取Access Token,它不需要在授權服務器上直接進行用戶批準(User Approval)步驟。

另外jwt-bearer也被定義用于客戶端身份驗證機制,來判斷客戶端的身份是否合規。客戶端使用JWT進行身份認證和客戶端使用JWT進行授權是分離的行為。當然這兩種行為可以組合使用,也可以分離使用。客戶端使用JWT進行身份驗證僅是客戶端向令牌端點進行身份驗證一種替代方法。

個人感覺就是方便在已經有JWT體系上使用OAuth2.0協議。

總結

今天主要對jwt-bearer授權模式的協議進行了分享,和其它模式比較起來jwt-bearer還很新,雖然目前還沒有大規模運用,不過目前我在國外的技術社區已經發現了很多關于這種模式的問題和討論,看來這個模式還是有點東西的,需要留意一下。

本文轉載自微信公眾號「碼農小胖哥」,可以通過以下二維碼關注。轉載本文請聯系碼農小胖哥公眾號。

 

責任編輯:武曉燕 來源: 碼農小胖哥
相關推薦

2022-09-09 10:15:06

OAuthJava

2025-04-11 05:55:00

2011-09-07 16:24:01

Windows Int

2009-03-30 09:16:16

JBossSOAEclipse

2009-04-01 08:53:34

JavaRebelJVM插件

2022-03-16 00:07:55

OAuth2授權框架

2020-07-08 07:45:44

OAuth2.0授權

2011-10-18 15:00:46

Perl

2009-12-17 08:54:31

MySQL 5.5半同步復制

2012-02-16 09:15:48

JavaJActor

2013-02-26 09:36:57

RubyRuby 2.0

2011-07-13 15:09:48

PHP

2012-02-13 09:47:28

JavaJActor

2009-12-11 17:46:21

Visual Stud

2009-05-20 16:28:47

LinuxMusix2.0 Beta 1

2011-03-30 14:29:13

QuartzJava

2009-11-30 10:44:37

Debris LinuLinux

2009-06-10 08:43:33

Linux桌面發布

2012-05-11 10:42:56

JavaErrai

2021-04-30 08:29:16

KafkaZooKeeper分布式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本一区二区三区四区 | 亚洲国产91 | 亚洲精品久久久一区二区三区 | 玖玖在线精品 | 国产露脸对白88av | 免费成人高清在线视频 | 欧美极品少妇xxxxⅹ免费视频 | 国产激情一区二区三区 | 久久久精品网站 | 国产精品久久久久久久一区探花 | 一区二区三区国产精品 | 色偷偷888欧美精品久久久 | 成人精品久久日伦片大全免费 | 国产一级特黄视频 | 亚洲一区精品在线 | 中文字幕在线第一页 | 久久久精品网站 | 看片网站在线 | 天天综合国产 | 欧美一级二级三级视频 | 日韩2020狼一二三 | 国产精品成人在线 | 亚洲一区中文字幕 | www.色综合| 琪琪午夜伦伦电影福利片 | 亚洲精品www. | 成人免费视频网站在线看 | 午夜久草 | 精品久久久久久一区二区 | 亚洲精品二三区 | 亚洲综合网站 | 在线资源视频 | 久久在看 | 午夜看片网站 | 欧美性猛交一区二区三区精品 | 日本精品国产 | 日韩欧美中文字幕在线观看 | 欧洲一区二区三区 | 精品久久久久久久久久 | 欧美精品首页 | 精品欧美一区二区三区免费观看 |