Keycloak 23.0.0 リリース

2023年11月23日

リリースをダウンロードするには、Keycloak ダウンロードにアクセスしてください。

ハイライト

OpenID Connect / OAuth 2.0

FAPI 2 ドラフトのサポート

Keycloak には、新しいクライアントプロファイル fapi-2-security-profile および fapi-2-message-signing が追加されました。これらは、クライアントとの通信時に Keycloak が最新の FAPI 2 ドラフト仕様への準拠を保証するものです。貢献してくれた Takashi Norimatsu に感謝します。

DPoP プレビューサポート

Keycloak は、OAuth 2.0 Demonstrating Proof-of-Possession at the Application Layer (DPoP) のサポートをプレビュー提供しています。貢献してくれた Takashi NorimatsuDmitry Telegin に感謝します。

イントロスペクションエンドポイントの柔軟性向上

以前のバージョンでは、イントロスペクションエンドポイントは、アクセストークンで利用可能なほとんどのクレームを自動的に返していました。今回のバージョンでは、ほとんどのプロトコルマッパーに新しいスイッチ Add to token introspection が追加されました。この追加により、イントロスペクションエンドポイントがアクセストークンとは異なるクレームを返すことができるようになり、柔軟性が向上します。これは、「ライトウェイトアクセストークン」のサポートに向けた最初のステップであり、アクセストークンは多くのクレームを省略できますが、イントロスペクションエンドポイントからは引き続き返されます。以前のバージョンから移行する場合、イントロスペクションエンドポイントはアクセストークンから返されるクレームと同じクレームを返す必要があるため、移行後もデフォルトで効果的に同じ動作になるはずです。貢献してくれた Shigeyuki Kabano に感謝します。

OAuth 2.0 デバイス認可グラントフローのフィーチャーフラグ

OAuth 2.0 デバイス認可グラントフローにフィーチャーフラグが追加され、この機能を簡単に無効にできるようになりました。この機能はデフォルトで有効になっています。貢献してくれた Thomas Darimont に感謝します。

認証

パスキーのサポート

Keycloak は、パスキーのプレビューサポートを提供しています。

パスキーの登録と認証は、WebAuthn の機能によって実現されます。したがって、Keycloak のユーザーは、既存の WebAuthn の登録と認証によってパスキーの登録と認証を行うことができます。

同期されたパスキーとデバイスバインドされたパスキーの両方を、同一デバイスおよびクロスデバイス認証の両方に使用できます。ただし、パスキー操作の成功はユーザーの環境に依存します。環境内でどの操作が成功するかを確認してください。貢献してくれた Takashi Norimatsu と、この機能のアイデアとテストにご協力いただいた Thomas Darimont に感謝します。

WebAuthn の改善

WebAuthn ポリシーに新しいフィールド Extra Origins が追加されました。これにより、非 Web プラットフォーム(例:ネイティブモバイルアプリケーション)との相互運用性が向上します。貢献してくれた Charley Wu に感謝します。

すでにログイン済みです

ユーザーが複数のブラウザータブでログインページを開き、そのうちの1つで認証した場合、後続のブラウザータブで認証しようとすると You are already logged-in ページが開かれるという悪名高い問題がありました。これは改善され、最初のブラウザータブの認証後、他のブラウザータブも自動的に認証されるようになりました。ただし、認証セッションが期限切れになり、1つのブラウザータブでのみ再開された場合など、動作が100%正確ではないコーナーケースがまだあります。そのため、他のブラウザータブは自動的にログインに追従しません。この領域では、引き続き改善を計画しています。

最大認証時間を指定するためのパスワードポリシー

Keycloak は、新しいパスワードポリシーをサポートしています。これにより、ユーザーが再認証なしでパスワードを変更できる認証の最大有効期間を指定できます。このパスワードポリシーが 0 に設定されている場合、ユーザーはアカウントコンソールまたは他の方法でパスワードを変更するために再認証する必要があります。デフォルト値の 5 分よりも低い値または高い値を指定することもできます。貢献してくれた Thomas Darimont に感謝します。

デプロイメント

マルチサイトアクティブ/パッシブデプロイメントのプレビューサポート

高可用性と障害からの迅速な復旧を提供するために、一部の環境では Keycloak を複数の独立したサイトにデプロイすることが不可欠です。このリリースでは、Keycloak のアクティブ/パッシブデプロイメントのプレビューサポートが追加されました。

負荷に耐え、障害シナリオから復旧できるセットアップのテストと検証に多くの労力が費やされました。開始するには、高可用性ガイドを使用してください。これには、高可用性 Keycloak をクラウド環境にデプロイするための包括的なブループリントも含まれています。

アダプター

OpenID Connect WildFly および JBoss EAP

以前のバージョンで非推奨になった WildFly および JBoss EAP 用の OpenID Connect アダプターは、このリリースで削除されました。これは、WildFly に含まれており、Keycloak アダプターからのシームレスな移行を提供する Elytron OIDC アダプターに置き換えられます。

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 は、この変更と互換性があるはずです。 ResteasyClientBuilder を含む RESTEasy Classic に依存する SPI は互換性がなく、更新が必要になります。これは、Jersey のような JAX-RS API の他の実装にも当てはまります。

ユーザープロファイル

宣言型ユーザープロファイルは、このリリースではまだプレビュー機能ですが、サポート対象の機能に昇格させるために懸命に取り組んでいます。フィードバックをお待ちしております。問題点や改善点がありましたら、Github issue を作成してください。理想的には、ラベル area/user-profile を付けてください。また、移行に関連する追加情報については、このリリースの移行変更を含む アップグレードガイド を確認することをお勧めします。

グループのスケーラビリティ

多数のグループとサブグループを持つユースケースにおいて、グループ検索のパフォーマンスが向上しました。サブグループのページネーションルックアップを可能にする改善があります。貢献してくれた Alice に感謝します。

テーマ

テーマのローカライズファイルはデフォルトで UTF-8 エンコーディングになります

テーマのメッセージプロパティファイルは、UTF-8 エンコーディングで読み込まれるようになり、ISO-8859-1 エンコーディングへの自動フォールバックが追加されました。

詳細については、移行ガイドを参照してください。

ストレージ

Map Store の削除

Map Store は、以前のリリースでは実験的な機能でした。このリリース以降、削除され、ユーザーは現在の JPA ストアを引き続き使用する必要があります。詳細については、移行ガイドを参照してください。

アップグレード

アップグレードする前に、変更の完全なリストについては、移行ガイドを参照してください。

解決済みのすべての問題

新機能

機能拡張

バグ