Spring Security OAuth(spring-security-oauth2)停更
主要意思是:生命周期终止通知 Spring Security OAuth(spring-security-oauth2)项目已达到生命周期结束,不再由VMware,Inc.积极维护。 此项目已被Spring Security和Spring Authorization Server提供的OAuth2支持所取代。
那么我们来分析一下这两个项目。Spring Authorization Server是Spring Security OAuth的进化版本,Spring Security OAuth官方已经宣布“End of Life”了。Spring Security OAuth使用的是OAuth2.0标准而Spring Authorization Serve引入了对OAuth 2.1和OpenID Connect 1.0规范的支持,并提供了更多功能和改进。它提供了OAuth 2.1和OpenID Connect 1.0规范以及其他相关规范的实现。它是基于Spring Security构建的,为构建OpenID Connect 1.0身份提供者和OAuth2授权服务器产品提供了安全、轻量级和可定制的基础。
OAuth 2.1和OpenID Connect 1.0是用于身份验证和授权的行业标准协议。它们被广泛应用于各种应用程序和系统,以实现安全的用户身份验证和授权流程。Spring Authorization Server提供了一个方便的方式来实现这些协议,使开发人员能够快速构建安全可靠的身份验证和授权系统。
Spring Security OAuth(spring-security-oauth2)是一个基于Spring Security的扩展,用于提供OAuth(开放授权)协议的实现。它提供了OAuth 2.0的客户端和服务端支持,使开发人员可以轻松地将OAuth集成到他们的应用程序中。
https://spring.io/projects/spring-security-oauth
Spring Authorization Server(spring-authorization-server)是一个框架,提供OAuth 2.1和OpenID Connect 1.0规范以及其他相关规范的实现。它构建在Spring Security之上,为构建OpenID Connect 1.0 Identity Providers和OAuth2 Authorization Server产品提供了一个安全,轻量级和可定制的基础。
https://spring.io/projects/spring-authorization-serverspring.io/projects/spring-authorization-server
补充知识点一:OAuth 2.0和OAuth 2.1区别
OAuth 2.0和OAuth 2.1是OAuth协议的两个不同版本,它们在以下方面有一些区别:
需要注意的是,OAuth 2.1并非OAuth协议的完全新版本,而是在OAuth 2.0基础上的改进和细化。它旨在提供更好的安全性和便捷性,并解决了一些在OAuth 2.0中发现的问题。
在实际应用中,您应该根据具体需求和支持情况选择OAuth的版本。对于新的项目,建议考虑使用OAuth 2.1,以获得更好的安全性和简化的开发体验。对于现有的OAuth 2.0应用程序,可以考虑逐步迁移到OAuth 2.1以利用其优势和增强功能。
补充知识点二:OpenID Connect 1.0
OpenID Connect 1.0 是建立在 OAuth 2.0 协议之上的身份验证协议,它扩展了 OAuth 2.0 的功能,为客户端应用程序提供了更丰富的用户身份验证和属性信息获取能力。以下是 OpenID Connect 1.0 与 OAuth 2.0 的一些区别:
综上所述,OpenID Connect 1.0 是在 OAuth 2.0 的基础上增加了身份验证层和用户信息获取功能的协议。它通过引入 ID Token 和用户信息端点等机制,为客户端应用程序提供了更丰富的用户身份验证和属性信息获取能力。
1)授权码模式:authorization_code
2)简化模式:implicit
3)客户端模式:client_credentials
4)密码模式:password
可以看到spring authorization server中password模式已经标记为过时了。另外多了jwt-bearer和device_code模式。
authorizationGrantTypes:客户端可以使用的授权授予类型。支持的值包括authorization_code、client_credentials、refresh_token和urn:ietf:params:oauth:grant-type:device_code。
密码模式已经被标记为过时了,官方推荐使用 JWT-Bearer Token 或 Device Code Flow 模式。
JWT-Bearer Token 模式是一种基于 JSON Web Token(JWT)的认证方式,客户端向服务器发送一个包含用户身份信息的 JWT Token,服务器通过验证该 Token 来确认用户的身份。这种模式的优点是简单易用、安全性高、跨平台性强。
Device Code Flow 模式则是一种基于移动设备的认证方式,客户端向服务器发送一个请求,要求获取一个一次性的访问码(Device Code),并在移动设备上完成该码的输入以完成身份验证。这种模式的优点是安全性高、易于集成和使用。
如果您正在使用 Spring Security 并且需要更改认证方式,请考虑使用 JWT-Bearer Token 或 Device Code Flow 模式。
https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Features-Matrixgithub.com/spring-projects/spring-security/wiki/OAuth-2.0-Features-Matrix
========================================
如果文章对你有帮助,请不要忘记加个关注、点个赞!