宣布 Spring Authorization Server

工程 | Rob Winch | 2020 年 4 月 15 日 | ...

我很高兴宣布 Spring Authorization Server 项目。这是一个由 Spring Security 团队主导的社区驱动项目,专注于为 Spring 社区提供 授权服务器 (Authorization Server) 支持。

成功的基础

我们之所以能走到今天,过程漫长,但要点却简单明了:没有我们出色的社区,Spring 就不会是今天的样子。

将近十年前,我们将一个社区驱动的开源项目 Spring Security OAuth 引入,并使其成为 Spring 项目组合的一部分。自成立以来,它已经发展成为一个成熟的项目,支持 OAuth 规范的很大一部分,包括资源服务器、客户端、登录和授权服务器。毫不奇怪,它已成为 UAA 的基础,UAA 除其他功能外,还充当所有 Cloud Foundry 安装的身份管理服务。Spring Security OAuth 项目已成为一个典范项目,是我们出色社区能够取得成就的证明。

在社区成功的基础上再接再厉

自该项目成立以来,OAuth 世界已发生了巨大变化。因此,我们决定在社区成功的基础上再接再厉,重写 Spring Security OAuth,以更好地调整 Spring 的 OAuth 故事,简化代码库,并使 Spring 的 OAuth 支持更加灵活。

首先,最初的 OAuth 支持在很早的时候就完成了,无法预见到它将需要以各种不同的方式使用。这导致许多 Spring 项目提供了自己的 OAuth 支持。通过重写,我们能够满足整个 Spring 产品组合的需求,并提供一个统一的 OAuth 库。

其次,OAuth 项目最初编写时,包含了对 OAuth 1.0 和 OAuth 2.0 的支持。此后,OAuth 2.0 已正式宣布 OAuth 1.0 过时。因此,新的支持能够完全专注于 OAuth 2.0,这极大地简化了代码。

第三,原始项目提供了所有自己的库支持。现在,有了许多可供选择的库,我们能够通过围绕一个名为 Nimbus 的现有库提供抽象,将其整合到 Spring Security 中。通过在 Nimbus 之上构建,我们能够更快地推进并添加更多功能,例如对 JWT claims、OIDC、响应式编程等更好的支持。

社区在其过去的成功基础上继续发展壮大,这令人印象深刻。

向社区学习

显然,重写 Spring Security 的 OAuth 支持是一项艰巨的任务。首先,团队决定将工作分成客户端、资源服务器和授权服务器。随着客户端和资源服务器的进展,我们越来越确信不应该提供授权服务器支持。

自 Spring Security OAuth 项目创建以来,授权服务器的选择数量显著增加。此外,我们不认为创建授权服务器是一个常见的场景。我们也不认为在一个没有库支持的框架中提供授权支持是合适的。经过仔细考虑,Spring Security 团队决定我们将不正式支持创建授权服务器

自我们的博客文章发布以来,社区已经发声,我们也倾听了。从博客上的反馈、Gitter 中的交流以及 GitHub 中的评论,我们收到了一个一致的信息:Spring 生态系统需要授权服务器的支持。

未来的计划

在此之前,Spring Authorization Server 只是一个想法。现在,我们想正式将 Spring Authorization Server 作为由 Spring Security 团队主导的社区驱动项目进行介绍。

该项目将作为 Spring 实验项目中的一个独立项目启动,以便能够更快地发展。在您的帮助下,该项目将像最初的 Spring Security OAuth 项目一样成长壮大。

参与其中

我们非常希望您加入我们一起踏上这段旅程。如果您想参与其中,请阅读 CONTRIBUTING 文档。我们期待您的来信,并且一如既往地感谢您成为 Spring 社区的一员!

获取 Spring 新闻通讯

订阅 Spring 新闻通讯,保持联系

订阅

领先一步

VMware 提供培训和认证,助您快速进步。

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举办的活动

查看 Spring 社区的所有即将举办的活动。

查看全部