2.2. バージョン 26.4.2 の互換性を失わせる変更
2.2.1. acr_values リクエストパラメーターがアイデンティティープロバイダーに自動的に転送されない リンクのコピーリンクがクリップボードにコピーされました!
acr_values リクエストパラメーターは、認証中に OpenID Connect アイデンティティープロバイダーに自動的に転送されなくなりました。この変更により、認証コンテキスト情報が外部 IDP に意図せず公開されることを防ぎ、セキュリティーが強化されます。
acr_values パラメーターがアイデンティティープロバイダーに伝播されることに依存している場合は、アイデンティティープロバイダー設定の Forwarded query parameters 設定に acr_values リクエストパラメーターを明示的に設定する必要があります。
2.2.2. CLIENT_ATTRIBUTES と GROUP_ATTRIBUTE テーブルのインデックスを再作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Keycloak の以前のバージョンの一部では、EnterpriseDB (EDB) はサポートされていないとみなされていました。これは変更され、このリリース以降、EDB Advanced がサポートされるようになりました。以前のバージョンで EDB への接続に EDB JDBC ドライバーが使用されていた場合、一部の無効なスキーマ変更がデータベースに適用されていました。これを軽減するために、このバージョンへのスキーマ移行中に一部のインデックスが自動的に再作成されます。これは、以前のリリースで EDB を使用していたかどうかに関係なく、PostreSQL データベース (EDB を含む) を使用している場合に影響します。
これは、CLIENT_ATTRIBUTES と GROUP_ATTRIBUTE テーブルのインデックスに影響します。これらのテーブルに 300,000 を超えるエントリーが含まれている場合、Red Hat build of Keycloak は、デフォルトで自動スキーマ移行中にインデックスの作成をスキップし、Red Hat build of Keycloak の起動後に手動で適用できるように、代わりに移行中にコンソールに SQL ステートメントを記録します。異なる制限を設定する方法の詳細は、アップグレードガイド を参照してください。
2.2.3. 追加のデータソースの設定変更 リンクのコピーリンクがクリップボードにコピーされました!
以前のリリースでは、追加のデータソースを設定する唯一の方法は、一般的にサポートされていないと考えられている raw の Quarkus プロパティーを使用することでした。同時に、追加のデータソースの追加がサポートされていたため、状況が不明確になっていました。
追加のデータソースを設定するためのサポートされたユーザーフレンドリーな方法を提供するために、専用の新しいサーバーオプションを導入しました。このリリース以降、Quarkus プロパティーを介した元のアプローチを使用して追加のデータソースを設定することは、サポート対象外 とみなされます。
設定を移行する方法については、次の例を確認してください。
- 新しい Red Hat build of Keycloak オプションを使用する (推奨)
追加のデータソースを設定するためにサポートされている方法は、新しい設定オプションを使用することです。
以下の設定を
conf/quarkus.propertiesから、quarkus.datasource.user-store.db-kind=postgresql quarkus.datasource.user-store.username=my-username quarkus.datasource.user-store.jdbc.url=jdbc:postgresql://my-remote-postgres:5432/user-store quarkus.datasource.user-store.jdbc.transactions=xa
quarkus.datasource.user-store.db-kind=postgresql quarkus.datasource.user-store.username=my-username quarkus.datasource.user-store.jdbc.url=jdbc:postgresql://my-remote-postgres:5432/user-store quarkus.datasource.user-store.jdbc.transactions=xaCopy to Clipboard Copied! Toggle word wrap Toggle overflow conf/keycloak.confの以下の設定へ移行できます。db-kind-user-store=postgres db-username-user-store=my-username db-url-full-user-store=jdbc:postgresql://my-remote-postgres:5432/user-store # transactions XA is enabled by default for datasources
db-kind-user-store=postgres db-username-user-store=my-username db-url-full-user-store=jdbc:postgresql://my-remote-postgres:5432/user-store # transactions XA is enabled by default for datasourcesCopy to Clipboard Copied! Toggle word wrap Toggle overflow データソースオプションの詳細は、複数のデータソースの設定 を参照してください。
quarkus.properties内の引用符を削除します (サポート対象外)現時点で Red Hat build of Keycloak のデータソースオプションへ移行できない場合は、データソースオプションのマッピングの衝突を防ぎ、問題を回避するために、追加のデータソース名から引用符を削除してください。
つまり、以下の
conf/quarkus.propertiesの設定を、quarkus.datasource."user-store".db-kind=postgresql quarkus.datasource."user-store".username=my-username
quarkus.datasource."user-store".db-kind=postgresql quarkus.datasource."user-store".username=my-usernameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 引用符なし以下のバージョンへ移行する必要があります。
quarkus.datasource.user-store.db-kind=postgresql quarkus.datasource.user-store.username=my-username
quarkus.datasource.user-store.db-kind=postgresql quarkus.datasource.user-store.username=my-usernameCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.4. 一時的にロックされたユーザーに関する情報の読み取り リンクのコピーリンクがクリップボードにコピーされました!
以前のリリースでは、ユーザーの取得 (GET /admin/realms/{realm}/users/{user-id}) とユーザーの検索 (GET /admin/realms/{realm}/users) の REST エンドポイント結果に不一致がありました。BruteForce が有効になっていて、ユーザーが一時的にロックアウトされている場合、前者のエンドポイントは enabled=false を返し、後者のエンドポイントは enabled=true を返します。ユーザーが更新された際、一時的なロックアウトによって enabled の値が false になっていた場合、そのユーザーは永続的に無効化されます。ユーザーが一時的にロックアウトされている場合、両方のエンドポイントは enabled=true を返すようになりました。ユーザーが一時的にロックアウトされているかどうかを確認するには、BruteForceUserResource エンドポイントを利用する必要があります (GET /admin/realms/{realm}/attack-detection/brute-force/users/{userId})。
2.2.5. User API を介したユーザー検索がユーザープロファイル設定を考慮するようになる リンクのコピーリンクがクリップボードにコピーされました!
User API を通じてユーザーをクエリーする場合、ユーザー表現とその属性では、レルムに定義されたユーザープロファイル設定が考慮されるようになりました。
過去に返された情報が多すぎる場合、ユーザープロファイルの設定によっては、ユーザー表現内の属性が利用できなくなる可能性があります。
2.2.6. ブローカーとして機能する際の OpenID Connect クライアントシークレットの送信時におけるエンコーディングの修正 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Keycloak がブローカーとして機能し、OpenID Connect によって別のアイデンティティープロバイダーに接続するシナリオでは、RFC6749 で指定されている正しいエンコードで、Basic 認証によってクライアント認証情報が送信されるようになりました。Red Hat build of Keycloak をリクエスト本文で認証情報を送信するように設定していた場合は、影響を受けません。
これにより、コロンやパーセント記号などが含まれるクライアント ID やパスワードの問題を回避できます。
古い動作に戻すには、クライアント認証を非推奨のオプションである Client secret sent as HTTP Basic authentication without URL encoding (client_secret_basic_unencoded) に変更します。