您现在的位置是:亿华云 > 系统运维
再见,Spring Security OAuth!!
亿华云2025-10-02 16:47:06【系统运维】3人已围观
简介官宣新品最近,Spring 官方又推出了《Spring Authorization Server》项目:本次将 《Spring Authorization Server》项目正式上线,去掉了之前的体验
官宣新品
最近,再见Spring 官方又推出了《Spring Authorization Server》项目:
本次将 《Spring Authorization Server》项目正式上线,再见去掉了之前的再见体验状态,此举恰逢 0.2.0 版本发布,再见这也是再见第一个正式支持的生产就绪版本。
项目前身
首先来看一则 2019 年 的再见 Spring Security OAuth 2.0 路线更新图说明:
Spring Security OAuth 2.0 Roadmap Update
https://spring.io/blog/2019/11/14/spring-security-oauth-2-0-roadmap-update
大概的意思是:
Spring Security 项目用来支持授权服务器不是一个合适的选择,因为授权服务器需要一个库来进行构建,再见而 Spring Security 作为一个框架,再见不适合用来参与构建库或产品,再见市面上又有大量商业和开源授权服务器可以选择,再见因此,再见Spring Security 团队决定不再提供对授权服务器的再见支持。。再见
另外,再见在 2018 年初,再见Spring 就宣布了 Spring Security OAuth 项目正式进入维护模式,并且计划在不久的将来会彻底停止支持。
我们进入 Spring Security OAuth 项目主页:
https://projects.spring.io/spring-security-oauth/docs/oauth2.html
可以看到弃用通知:
Spring Security OAuth 项目已经被弃用了,最新的 OAuth 2.0 支持由 Spring Security 项目提供,有关更多详细信息,请参阅 OAuth 2.0 迁移指南:
https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide
即使 Spring Security OAuth 项目被 Spring Security 项目接管了,但 Spring Security 依旧不再包含对授权服务器的支持,服务器托管你可以用商用的、开源的,或者自己搭建,反正 Spring 不再提供了,纯粹的只做框架了。。
项目背景
Spring 弃用授权服务器之后,社区、博客上的反馈、Gitter 中的讨论和 GitHub 中的评论反响热烈,一致强烈要求 Spring 提供对授权服务器的支持,Spring 估计也是顶不住压力了,或者真的意识到 Spring 生态确实是需要授权服务器这玩意。。
于是在 2020/04/15 这天,Spring 团队又宣布新起《Spring Authorization Server》项目,以继续提供对 Spring 授权服务器的支持。
https://spring.io/blog/2020/04/15/announcing-the-spring-authorization-server
这是由 Spring Security 团队领导的社区驱动项目,专注于为 Spring 社区提供授权服务器支持,云服务器该项目也开始替换了 Spring Security OAuth 提供的对于 Authorization Server 的支持。
完整功能列表:
The OAuth 2.0 Authorization Framework Authorization Code Grant HTTP Basic HTTP POST Authorization Code Client Credentials Refresh Token Authorization Grant Client Authentication User Consent Proof Key for Code Exchange by OAuth Public Clients (PKCE) OAuth 2.0 Token Revocation OAuth 2.0 Token Introspection OAuth 2.0 Authorization Server Metadata JSON Web Token (JWT) JSON Web Signature (JWS) JSON Web Key (JWK) OpenID Connect Core 1.0 Authorization Code Flow OpenID Connect Discovery 1.0 Provider Configuration Endpoint OpenID Connect Dynamic Client Registration 1.0 Client Registration Endpoint即将到来的功能:
JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens OpenID Connect Core 1.0 UserInfo Endpoint OAuth 2.0 Token Exchange这部分这里就不展开介绍了,后续栈长有时间会进行详细的理论+实战,关注公众号Java技术栈,第一时间推送。
为什么需要授权服务器?
这个你需要了解下 OAuth2.0 协议,它定义了四个角色:
Client:客户端,即请求授权用户资源的第三方应用程序; Resource Owner:资源所有者,授权 Client 访问其帐户的用户; Authorization server: 授权服务器,即服务商用于处理用户授权认证的服务器; Resource server:资源服务器,即服务商提供用户受保护资源的服务器;另外,OAuth2.0 支持四种运行模式:
授权码模式 隐式授权模式 密码模式 客户端模式但一般我们使用较多的还是授权码模式。
授权码模式运行流程如下:
流程说明:
1、客户端请求用户给予授权;
2、用户同意给予客户端授权,并返回授权码;
3、客户端通过授权码再向认证服务器申请令牌;
4、认证服务器对客户端进行认证并返回令牌;
5、客户端使用令牌向资源服务器获取资源;
6、资源服务器验证令牌,并返回资源;
如流程所示,OAuth2 授权码模式的运行流程就少不了 Authorization Server(授权服务器),香港云服务器授权服务器用于授权认证,以及对 Access Token(令牌)的发放、管理、吊销等。
授权服务器可以和资源服务器在不同的服务器,也可以是同一台服务器。
总结
Spring 官方在 2020/04 才宣布搞《Spring Authorization Server》这个项目,才一年多时间就可以上线使用了,效率杠杠的啊,团队的目标也很明确,就是要使《Spring Authorization Server》项目最终成为 Java 平台上 OAuth 2 Authorization Server 事实上的标准框架。
很赞哦!(94647)
上一篇: 应用程序的私人医生——APM
下一篇: 如何让数据中心运维工作更加高效可靠?