宣佈 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 社群的所有即將舉辦的活動。

檢視全部