欣然宣布 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 社区中所有即将举行的活动。

查看全部