宣布推出 Spring Authorization Server

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

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

成功的基础

我们走到今天的故事很长,但关键信息简短而甜蜜:如果没有我们出色的社区,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 声明、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 社区所有即将举行的活动。

查看所有