最近,再见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 项目正式进入维护模式,并且计划在不久的将来会彻底停止支持。 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 的支持。 完整功能列表: 即将到来的功能: 这部分这里就不展开介绍了,后续栈长有时间会进行详细的理论+实战,关注公众号Java技术栈,第一时间推送。 这个你需要了解下 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 事实上的标准框架。官宣新品
项目前身
我们进入 Spring Security OAuth 项目主页:
项目背景
为什么需要授权服务器?
另外,OAuth2.0 支持四种运行模式:
授权码模式 隐式授权模式 密码模式 客户端模式 授权码模式运行流程如下:
流程说明:
总结