领先一步
VMware 提供培训和认证,助您快速进步。
了解更多我很高兴宣布 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 社区的一员!