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