Spring Authorization Server 發布

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

我很高興宣布 Spring Authorization Server 專案。 這是一個由 Spring Security 團隊領導的社群驅動專案,專注於為 Spring 社群提供 授權伺服器 支援。

成功的基礎

我們如何走到這一步的故事很長,但關鍵的訊息很簡潔:如果沒有我們出色的社群,Spring 就不會是現在的樣子。

大約十年前,我們引進了一個社群驅動的開放原始碼專案 Spring Security OAuth,並將其納入 Spring 的專案組合中。 自成立以來,它已發展成為一個成熟的專案,支援 OAuth 規範的很大一部分,包括資源伺服器、客戶端、登入和授權伺服器。 難怪它已成為 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 社群中所有即將到來的活動。

檢視全部