2.7. 非推奨および削除された機能
2.7.1. トラストストアの非推奨化
spi-truststore-file-*
オプションとトラストストア関連のオプション https-trust-store-*
が非推奨になりました。そのため、トラストストアマテリアルの新しいデフォルトの場所である conf/truststores
を使用するか、truststore-paths
オプションを使用して目的のパスを指定してください。詳細は、送信要求用の信頼済み証明書の設定 を参照してください。
spi-truststore-file-hostname-verification-policy
プロパティーの代わりに tls-hostname-verifier
プロパティーを使用する必要があります。
変更の副次的な影響として、トラストストアプロバイダーが常に何らかの証明書で設定されるようになりました (少なくとも、デフォルトの Java 信頼済み証明書が存在します)。この新しい動作は、Red Hat build of Keycloak の他の部分に影響を与える可能性があります。
たとえば、attestation conveyance が Direct 検証に設定されている場合は、webauthn 登録が失敗する可能性があります。以前は、トラストストアプロバイダーが設定されていないと、受信証明書が検証されませんでした。しかし、現在ではこの検証は常に実行されます。この登録は invalid cert path
エラーで失敗します。ドングルによって送信された証明書チェーンが Red Hat build of Keycloak によって信頼されていないためです。アテステーションを正しく実行するには、オーセンティケーターの認証局がトラストストアプロバイダーに存在している必要があります。
2.7.2. --proxy
オプションの非推奨化
--proxy
オプションは非推奨となり、今後のリリースで削除される予定です。次の表に、非推奨のオプションとサポートされているオプションの対応関係を示します。
非推奨の使用法 | 新しい使用法 |
---|---|
|
|
|
|
|
|
|
|
|
|
セキュリティーを強化するため、--proxy-headers
オプションでは、forwarded
値と xforwarded
値の両方を同時に選択することはできません (以前の --proxy edge
および --proxy reencrypt
の場合と同様)。
プロキシーヘッダーオプションを使用する場合は、リバースプロキシーによって Forwarded
ヘッダーまたは X-Forwarded-*
ヘッダーが適切に設定および上書きされることを確認してください。これらのヘッダーを設定するには、リバースプロキシーのドキュメントを参照してください。設定を誤ると、Red Hat build of Keycloak がセキュリティー上の脆弱性にさらされることになります。
Operator を使用するときにプロキシーヘッダーを設定することもできます。
apiVersion: k8s.keycloak.org/v2alpha1 kind: Keycloak metadata: name: example-kc spec: ... proxy: headers: forwarded|xforwarded
proxy.headers
フィールドが指定されていない場合、Operator はデフォルトで proxy=passthrough
を暗黙的に設定して、以前の動作にフォールバックします。これにより、サーバーログに非推奨の警告が記録されます。このフォールバックは今後のリリースで削除される予定です。
2.7.3. オフラインセッションのプリロードの非推奨化
Red Hat build of Keycloak のデフォルトの動作では、オンデマンドでオフラインセッションをロードします。起動時にオフラインセッションをプリロードするという従来の動作は、非推奨になりました。起動時にプリロードすると、セッション数の増加に応じて適切にスケールすることができず、Red Hat build of Keycloak のメモリー使用量が増加するためです。古い動作は今後のリリースで削除される予定です。
非推奨でまだ削除されていない古い動作を再度有効にするには、次に示すように機能フラグと SPI オプションを使用します。
bin/kc.[sh|bat] start --features-enabled offline-session-preloading --spi-user-sessions-infinispan-preload-offline-sessions-from-database=true
UserSessionProvider
の API で、メソッド getOfflineUserSessionByBrokerSessionId (RealmModel レルム、String brokerSessionId)
が非推奨になりました。このメソッドの代わりに、getOfflineUserSessionByBrokerUserIdStream (RealmModel、String brokerUserId)
を使用して、ユーザーのセッションを取得してから、必要に応じてブローカーセッション ID でそれらをフィルタリングします。
2.7.4. データプロバイダーおよびモデルのメソッドの非推奨化
-
RealmModel#getTopLevelGroupsStream()
およびオーバーロードされたメソッドの非推奨化
2.7.5. Cookie の非推奨化と削除
Red Hat build of Keycloak での Cookie 処理のリファクタリングの一環として、Cookie の設定方法にいくつか変更が加えられています。
- 要求がセキュアなコンテキストを介して行われる場合は、すべての Cookie にセキュア属性が設定されるようになりました。
-
WELCOME_STATE_CHECKER
Cookie がSameSite=Strict
に設定されるようになりました。
カスタムエクステンションの場合は、いくつかの変更が必要になることがあります。
-
LocaleSelectorProvider.KEYCLOAK_LOCALE
は、Cookie が CookieProvider を通じて管理されるようになったため、非推奨になりました。 -
HttpResponse.setWriteCookiesOnTransactionComplete
が削除されました。 -
HttpCookie
が非推奨になりました。代わりにNewCookie.Builder
を使用してください。 -
ServerCookie
が非推奨になりました。代わりにNewCookie.Builder
を使用してください。
2.7.6. SAML 暗号化の非推奨モードの削除
バージョン 21 で導入された SAML 暗号化の互換モードが削除されました。システムプロパティー keycloak.saml.deprecated.encryption
が、サーバーによって管理されなくなりました。暗号化に古い署名鍵をまだ使用しているクライアントは、新しい IDP 設定メタデータから署名鍵を更新する必要があります。
2.7.7. モデルモジュールの名前変更
マップストアの削除後に、次のモジュールの名前が変更になりました。
-
org.keycloak:keycloak-model-legacy-private
をorg.keycloak:keycloak-model-storage-private
に変更 -
org.keycloak:keycloak-model-legacy-services
をorg.keycloak:keycloak-model-storage-services
に変更
org.keycloak:keycloak-model-legacy
モジュールが非推奨になりました。次のリリースで org.keycloak:keycloak-model-storage
モジュールに置き換えられて削除される予定です。
2.7.8. RegistrationProfile フォームアクションの削除
フォームアクション RegistrationProfile
(認証フローの UI では Profile Validation
として表示されます) がコードベースから削除され、すべての認証フローからも削除されました。これはデフォルトですべてのレルムの組み込み登録フローに含まれていました。ユーザー属性の検証と、そのユーザーのすべての属性を含むユーザーの作成は、RegistrationUserCreation
フォームアクションによって処理されるため、RegistrationProfile
は不要になります。独自のプロバイダーで RegistrationProfile
クラスを使用していない限り、通常、この変更に関するさらなる対処は不要です。