温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spring Security5.5支持OAuth2.0第五种授权模式是什么

发布时间:2021-09-22 09:16:24 来源:亿速云 阅读:235 作者:小新 栏目:开发技术

这篇文章主要介绍了Spring Security5.5支持OAuth2.0第五种授权模式是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Spring Security  5.5发布了,主要涉及OAuth3.0和SAML2.0两个协议。其中最大的亮点是支持了OAuth3.0的另一种授权模式jwt-bearer。

JWT Bearer 授权模式

通常出现在各大技术社区的OAuth3.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参数来表明使用的授权模式:

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

这个grant_type有点长!还要携带assertion参数,这个参数对应的值只能是一个JWT,另外也可以携带(可选)scope参数以表明请求的作用域。根据上面的描述,一个jwt-bearer类型的授权模式大致是这样的:

POST /token/oauth3 HTTP/1.1      Host: felord.cn      Content-Type: application/x-www-form-urlencoded       grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer      &assertion=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.      eyJzdWIiOiJhbGwiLCJhdWQiOiJGZWxvcmRjbiIsInJv.      ER2U4CAt1xYxXBmnVQsrirkMwPwxwjWxjs

其实也就是说用户如果要请求授权要先有一个JWT,我个人估计有可能是可以被授权服务器信任的第三方JWT凭据,凭据校验通过用户就可以得到相应的授权去访问特定的资源。

客户端身份认证

RFC7523还规定JWT Bearer还可以用于客户端身份验证。客户端携带一个client_assertion_type参数:

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

同Beaerer JWT授权类似,还要携带一个client_assertion参数,这个参数同样要带一个JWT。请求实例如下:

POST /token/oauth3 HTTP/1.1     Host: felord.cn     Content-Type: application/x-www-form-urlencoded      grant_type=authorization_code&     code=n0esc3NRze7LTCu7iYzS6a5acc3f0ogp4&     client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3A     client-assertion-type%3Ajwt-bearer&     client_assertion=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.     eyJzdWIiOiJhbGwiLCJhdWQiOiJGZWxvcmRjbiIsInJv.     ER2U4CAt1xYxXBmnVQsrirkMwPwxwjWxjs

场景

那么场景是什么?根据RFC723的描述,该模式用于当客户端希望利用一个现有的、可信任的、使用JWT语义表达的关系来获取Access  Token,它不需要在授权服务器上直接进行用户批准(User Approval)步骤。

另外jwt-bearer也被定义用于客户端身份验证机制,来判断客户端的身份是否合规。客户端使用JWT进行身份认证和客户端使用JWT进行授权是分离的行为。当然这两种行为可以组合使用,也可以分离使用。客户端使用JWT进行身份验证仅是客户端向令牌端点进行身份验证一种替代方法。

感谢你能够认真阅读完这篇文章,希望小编分享的“Spring Security5.5支持OAuth2.0第五种授权模式是什么”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI