Keycloak 23.0.0 發布

2023 年 11 月 23 日

若要下載此版本,請前往 Keycloak 下載頁面

重點

OpenID Connect / OAuth 2.0

支援 FAPI 2 草案

Keycloak 新增了客戶端設定檔 fapi-2-security-profilefapi-2-message-signing,確保 Keycloak 在與您的客戶端通訊時,強制符合最新的 FAPI 2 草案規範。感謝 Takashi Norimatsu 的貢獻。

DPoP 預覽支援

Keycloak 提供 OAuth 2.0 應用層證明擁有權 (DPoP) 的預覽支援。感謝 Takashi NorimatsuDmitry Telegin 的貢獻。

內省端點的更多彈性

在先前的版本中,內省端點會自動傳回存取令牌中可用的大部分宣告。現在,大多數協定對應器都有一個新的開關 加入令牌內省。此新增功能提供了更大的彈性,因為內省端點可以傳回與存取令牌不同的宣告。這是朝向「輕量級存取令牌」支援的第一步,因為存取令牌可以省略許多仍由內省端點傳回的宣告。從先前版本遷移時,內省端點應傳回與存取令牌傳回的相同宣告,因此遷移後預設行為應基本相同。感謝 Shigeyuki Kabano 的貢獻。

OAuth 2.0 裝置授權授予流程的功能旗標

OAuth 2.0 裝置授權授予流程現在包含一個功能旗標,因此您可以輕鬆停用此功能。此功能預設仍為啟用。感謝 Thomas Darimont 的貢獻。

驗證

Passkeys 支援

Keycloak 提供 Passkeys 的預覽支援。

Passkey 註冊和驗證是透過 WebAuthn 的功能實現的。因此,Keycloak 的使用者可以透過現有的 WebAuthn 註冊和驗證來進行 passkey 註冊和驗證。

同步的 passkey 和裝置綁定的 passkey 都可以用於相同裝置和跨裝置驗證。但是,passkey 操作的成功與否取決於使用者的環境。請確認 該環境中哪些操作可以成功。感謝 Takashi Norimatsu 的貢獻,並感謝 Thomas Darimont 在此功能的概念和測試方面的協助。

WebAuthn 改善

WebAuthn 原則現在包含一個新欄位:額外來源。它提供了與非 Web 平台(例如,原生行動應用程式)更好的互通性。感謝 Charley Wu 的貢獻。

您已登入

曾經有一個臭名昭著的問題,當使用者在多個瀏覽器分頁中開啟登入頁面並在其中一個分頁中進行驗證時,嘗試在後續開啟的瀏覽器分頁中進行驗證會開啟 您已登入 頁面。現在已經改善了,因為在第一個瀏覽器分頁驗證後,其他瀏覽器分頁也會自動驗證。仍然存在一些邊角情況,行為並非 100% 正確,例如驗證會話過期的情況,此時只在一個瀏覽器分頁中重新啟動,因此其他瀏覽器分頁不會自動跟隨登入。因此,我們仍然計劃在此領域進行改進。

密碼原則:指定最長驗證時間

Keycloak 支援新的密碼原則,允許指定最長驗證時間,在此時間內,使用者可以變更密碼而無需重新驗證。當此密碼原則設定為 0 時,使用者將需要重新驗證才能在帳戶控制台中或透過其他方式變更密碼。您也可以指定低於或高於預設值 5 分鐘的值。感謝 Thomas Darimont 的貢獻。

部署

多站點主動-被動部署的預覽支援

對於某些環境,將 Keycloak 部署到多個獨立站點對於提供高可用性和從故障中快速恢復至關重要。此版本新增了 Keycloak 主動-被動部署的預覽支援。

我們在測試和驗證可以維持負載並從故障場景中恢復的設定上投入了大量工作。若要開始使用,請使用高可用性指南,其中還包括將高可用性 Keycloak 部署到雲端環境的全面藍圖。

轉接器

OpenID Connect WildFly 和 JBoss EAP

WildFly 和 JBoss EAP 的 OpenID Connect 轉接器在先前版本中已棄用,在此版本中已移除。它已由 Elytron OIDC 轉接器取代,該轉接器包含在 WildFly 中,並提供從 Keycloak 轉接器的無縫遷移。

SAML WildFly 和 JBoss EAP

WildFly 和 JBoss EAP 的 SAML 轉接器不再以 ZIP 下載形式分發,而是以 Galleon 功能包的形式分發,使其更易於安裝和更無縫。

如需詳細資訊,請參閱保護應用程式和服務指南

伺服器發佈

負載調適支援

Keycloak 現在具有 http-max-queued-requests 選項,允許在高負載下適當拒絕傳入的請求。有關詳細資訊,請參閱生產指南

RESTEasy Reactive

Keycloak 已切換到 RESTEasy Reactive。即使未使用反應式樣式/語義,使用 quarkus-resteasy-reactive 的應用程式仍應受益於更好的啟動時間、執行階段效能和記憶體佔用。直接依賴 JAX-RS API 的 SPI 應與此變更相容。依賴 RESTEasy Classic(包括 ResteasyClientBuilder)的 SPI 將不相容,並且需要更新,這對於 JAX-RS API 的其他實作(如 Jersey)也是如此。

使用者設定檔

宣告式使用者設定檔在此版本中仍然是預覽功能,但我們正在努力將其升級為受支援的功能。歡迎提供意見回饋。如果您發現任何問題或有任何改進想法,歡迎建立 Github 問題,最好加上標籤 area/user-profile。也建議查看升級指南,其中包含此版本遷移的相關資訊。

群組可擴展性

對於具有許多群組和子群組的使用案例,改進了群組搜尋的效能。有一些改進,允許對子群組進行分頁查詢。感謝 Alice 的貢獻。

佈景主題

佈景主題的本地化檔案預設為 UTF-8 編碼

佈景主題的訊息屬性檔案現在以 UTF-8 編碼讀取,並自動回退到 ISO-8859-1 編碼。

有關更多詳細資訊,請參閱遷移指南。

儲存

移除 Map Store

Map Store 在先前的版本中一直是實驗性功能。從此版本開始,它將被移除,使用者應繼續使用目前的 JPA 儲存。有關詳細資訊,請參閱遷移指南。

升級

升級之前,請參閱遷移指南,以獲取完整的變更清單。

所有已解決的問題

新功能

增強功能

錯誤