您现在的位置是:网络安全 >>正文
你知道吗?OAuth2客户端有两种,认证方式有七种
网络安全529人已围观
简介OAuth2客户端按照它们与授权服务器进行安全认证的能力可以分为机密类型(Confidential)和公共类型(Public)。机密类型的自身会有个密码凭据,比如Web服务器后端程序;而公共类型则没有 ...
OAuth2客户端按照它们与授权服务器进行安全认证的知道种认证方种能力可以分为机密类型(Confidential)和公共类型(Public)。
机密类型的户端自身会有个密码凭据,比如Web服务器后端程序;而公共类型则没有密码凭据,有两纯浏览器前端应用或者移动客户端应用大都属于这一种类型 。知道种认证方种不管是户端哪一种,它们都有客户端ID(client_id) 。有两
OAuth2客户端认证
客户端在执行OAuth2授权的知道种认证方种敏感流程中(相关的流程有令牌请求、令牌自省请求、户端令牌撤销请求)必须使用授权服务器进行客户端身份验证,有两确保客户端中途不会被调包。知道种认证方种
客户端认证方式
目前客户端认证的户端方式有以下几种 :

前面Gitee的源码库DEMO使用的是过时的POST方式;微信DEMO使用的是非OAuth2标准的方式;Spring Authorization Server目前相关的DEMO使用的是client_secret_basic方式 。剩下的有两方式中client_secret_jwt和private_key_jwt用的比较多 ,这两种方式可以很好地保护客户端的知道种认证方种认证信息,安全性更高 。云计算户端Spring Security和Spring Authorization Server目前已经支持这两种方式。有两
client_secret_jwtclient_secret_jwt方式是OAuth2客户端将自己的密钥作为HmacSHA256算法的key生成SecretKey:
复制byte[] pin = clientSecret.getBytes(StandardCharsets.UTF_8);
SecretKeySpec secretKey = new SecretKeySpec(pin,"HmacSHA256"); 1.2.然后通过SecretKey生成一个携带OAuth2客户端信息的JWT,在授权码请求Token环节携带该JWT以便授权服务器进行客户端认证,请求的报文为:
复制 POST /oauth2/token HTTP/1.1
Host: oauth2_client.felord.cn
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&
code=n0esc3NRze7LTCu7iYzS6a5acc3f0ogp4&
client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&
client_assertion=你的JWT1.2.3.4.5.6.7.8.授权服务器收到请求后通过OAuth2客户端的client_secret对JWT进行解码校验以认证客户端。这种方式能很好地保护client_secret在非HTTPS环境下的传输 。
这里OAuth2客户端的密钥(client_secret)比特长度必须大于等于256 。
private_key_jwtprivate_key_jwt和client_secret_jwt唯一的服务器租用区别就是生成JWT的方式不同。通过这种方式,OAuth2客户端已经不需要client_secret,只需要配置一对RSA或者EC密钥 ,通过密钥来生成JWT ,另外还需要向授权服务器提供公钥,通常是一个jwkSetUrl。该方式的细节已经在胖哥专栏[1]中JOSE规范[2]一文中进行过详细说明了 ,这里不再赘述。这种方式让客户端的认证信息更加安全的传输,高防服务器是我个人比较喜欢的方式。
tls_client_auth这个比较高级 ,嵌入了TLS安全层 ,在HTTP协议级别来认证OAuth2客户端,它涉及的证书来自可信任的CA 。这种方式基本脱离了应用层 ,是一种无侵入的方式。
self_signed_tls_client_auth这个同样也是在TLS安全层 ,不过它使用了自签名的源码下载X.509证书。
总结
市面上的教程大多只会提到过时的POST方式以及client_secret_basic和client_secret_post,对后面的五种很少涉及 ,胖哥会对private_key_jwt和client_secret_jwt详细的实现 ,详细请订阅我的Spring Security OAuth2专栏。这些OAuth2客户端认证方式在不同的场景有不同的优势 ,你可以根据不同的安全级别选择不同的OAuth2客户端认证方式 。建站模板
参考资料[1]胖哥专栏: https://blog.csdn.net/qq_35067322/category_11691173.html
[2]JOSE规范: https://felord.blog.csdn.net/article/details/123540550
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“商站动力”。http://www.noorid.com/html/89e499906.html
相关文章
保持警觉,勒索软件HelloXD可能在你的系统上部署新后门
网络安全近日,有观察人士发现,勒索软件HelloXD新部署了一个后门——MicroBackdoor,旨在加强其对受感染主机的持续远程访问。勒索软件HelloXD首次出现在威胁场景发生于2021年11月30日, ...
【网络安全】
阅读更多了解云端容器安全的概念和需求
网络安全2010年下半年,人们对容器和容器平台的兴趣呈爆炸式增长。在这股热潮中,容器已成为排在 Linux和Windows虚拟机VM)之后的第三大托管应用程序的运行时。在本指南中,我们将探讨在云端运行容器的好 ...
【网络安全】
阅读更多新型 Meterpreter 后门能够在图片中隐藏恶意代码
网络安全据Cyber Security News消息,ANY.RUN 沙盒分析了一种被称为Meterpreter 的新型后门恶意软件,能利用复杂的隐写技术将恶意有效载荷隐藏在看似无害的图片文件中。基于Mete ...
【网络安全】
阅读更多
热门文章
最新文章
友情链接
- 索泰1070性能评测及用户体验(一款强劲的显卡,为你带来出色的游戏体验)
- 华硕插座(华硕插座品质可靠,稳定供电保障)
- 详解如何使用U盘重装戴尔系统(一步步教你重装戴尔系统,轻松搞定电脑问题)
- 如何设置笔记本电脑启动U盘(一步步教你将U盘设置为笔记本电脑的启动选项)
- 学习使用gimagex,轻松完成系统备份与还原(掌握gimagex的教程,高效实现系统镜像的管理)
- nova2plus(性能卓越,拍摄出色)
- 锤子T2体验报告(锤子T2全面评测,从外观到性能全方位解析)
- Excel表格调整坐标轴位置的方法教程
- 手机安装APP提示解析错误怎么办
- 显卡的位置及寻找技巧(探索显卡的安装位置与优化选择) 企业服务器网站建设云服务器源码库香港物理机b2b信息平台亿华云