第2章 リリース固有の変更
2.1. サーバー設定の変更
2.1.1. 新しいホスト名オプション
古いホスト名オプションが削除されたため、ホスト名 v2 オプションがデフォルトでサポートされます。
必要な移行のリスト:
古いオプション | 新しいオプション |
---|---|
|
|
|
|
|
|
ご覧のとおり、hostname
および hostname-admin
オプションの *-url
接尾辞は削除されました。オプション hostname
は、ホスト名と URL の両方を受け入れますが、hostname-admin
は現在完全な URL のみを受け入れます。
また、path
や port
を個別に設定する方法はありません。これは、hostname
と hostname-admin
オプションの完全な URL を指定することで実現できます。
ポートが URL の一部でない場合は、受信リクエストヘッダーから動的に解決されます。
HTTPS は、hostname
および hostname-admin
URL の一部でない限り、強制されなくなりました。指定されていない場合、使用されるプロトコル (http/https
) は受信リクエストから動的に解決されます。hostname-strict-https
オプションは削除されました。
削除されたオプション |
---|
|
|
|
|
|
|
2.1.1.1. 例
簡略表記
# Hostname v1 bin/kc.[sh|bat] start --hostname=mykeycloak.org --https-port=8543 --hostname-path=/auth --hostname-strict-https=true # Hostname v2 bin/kc.[sh|bat] start --hostname=https://mykeycloak.org:8543/auth
例からわかるように、URL のすべての部分を単一の hostname
オプションを使用して指定できるようになり、ホスト名のセットアッププロセスが簡素化されました。HTTPS は hostname-strict-https
オプションによって強制されるのではなく、ホスト名 URL で指定することによって強制されることに注意してください。
バックチャネル設定
# Hostname v1 bin/kc.[sh|bat] start --hostname=mykeycloak.org --hostname-strict-backchannel=true # Hostname v2 bin/kc.[sh|bat] start --hostname=mykeycloak.org --hostname-backchannel-dynamic=false
バックエンドエンドポイントとフロントエンドエンドポイントの両方に同じ URL を使用する場合は、動作が変更することに注意してください。以前の hostname v1 では、バックチャネル URL はリクエストヘッダーから動的に解決されていました。したがって、必要な結果を得るには、hostname-strict-backchannel=true
を指定する必要がありました。
ホスト名 v2 の場合、バックチャネル URL はフロントエンドの URL とすでに同じです。リクエストヘッダーから動的に解決するには、hostname-backchannel-dynamic=true
を設定し、hostname
オプションに完全な URL を指定する必要があります。
詳細とより包括的なシナリオは、ホスト名の設定 (v2) を参照してください。
2.1.2. kcadm と kcreg の変更
kcadm と kcreg がオプションとパラメーターを解析して処理する方法が変更されました。使用方法エラー、間違ったオプションまたはパラメーターからのエラーメッセージは、以前のバージョンとは若干異なる場合があります。また、使用方法エラーの場合、終了コードは 1 ではなく 2 になります。
2.1.3. グループパス内のスラッシュのエスケープ
Red Hat build of Keycloak はグループパス内のスラッシュをエスケープしたことはありません。そのため、top
の子である group/slash
という名前のグループは、完全なパス /top/group/slash
を使用しますが、これは明らかに誤解を招きます。このバージョンから、サーバーを起動して名前内のスラッシュをエスケープできるようになりました。
bin/kc.[sh|bat] start --spi-group-jpa-escape-slashes-in-group-path=true
エスケープ文字はチルダ文字 ~
です。前の例では、パスは /top/group~/slash
になります。エスケープは、最後のスラッシュを階層区切りではなく、名前の一部としてマークします。
エスケープは動作の変更を表すため、現在デフォルトでは無効になっています。ただし、エスケープを有効にすることが推奨されており、今後のバージョンではこれがデフォルトになる可能性があります。
2.1.4. --import-realm
オプションはマスターレルムをインポートできる
マスターレルムが存在する前に、--import-realm
オプションを指定して start
または start-dev
コマンドを実行すると、インポートマテリアルにマスターレルムが存在する場合はインポートされます。以前の動作では、マスターレルムが最初に作成され、その後そのインポートがスキップされていました。
2.1.5. --optimized
起動オプションの追加検証
--optimized
起動オプションでは、最初に最適化されたサーバーイメージをビルドすることが必要になりました。これは、最初に kc.sh|bat build
を実行するか、--optimized
フラグなしで他の任意のサーバーコマンド (start
、export
、import
など) を実行することによって実現できます。
2.1.6. ランタイムで cache
オプションを指定する
オプション cache
、cache-stack
、cache-config-file
はビルドオプションではなくなり、ランタイム時のみ指定できます。これにより、ビルドフェーズを実行してイメージを再ビルドする必要がなくなります。これらは build
フェーズでは認識されないため、build
フェーズから削除して runtime
フェーズに追加する必要があることに注意してください。現在のキャッシュオプションを runtime
フェーズに追加しない場合、Red Hat build of Keycloak はデフォルトのキャッシュ設定に戻ります。
2.1.7. HTTP レスポンスの消費時にメモリー使用量を制限する
ブローカリングなどの一部のシナリオでは、Red Hat build of Keycloak は HTTP を使用して外部サーバーと通信します。これらのプロバイダーが大量のデータを送信した場合にサービス拒否が発生するのを回避するために、Red Hat build of Keycloak では、デフォルトで応答が 10 MB に制限されるようになりました。
ユーザーは、プロバイダー設定オプション spi-connections-http-client-default-max-consumed-response-size
を設定することでこの制限を設定できます。
消費されるレスポンスを 1 MB に制限する
bin/kc.[sh|bat] --spi-connections-http-client-default-max-consumed-response-size=1000000
2.1.8. kc.sh/bat インポートプレースホルダーの置換
kc.[sh|bat] import
コマンドでプレースホルダーの置換が有効になりました。以前は、プレースホルダーの置換は起動時のレルムのインポートに対してのみ有効になっていました。
import
コマンドのプレースホルダー置換を無効にする場合は、システムプロパティー -Dkeycloak.migration.replace-placeholders=false
を追加します。