管理インターフェースの設定

メトリクスやヘルスチェックなどのエンドポイント用にKeycloakの管理インターフェースを設定する方法を学びます。

管理インターフェースを使用すると、プライマリサーバーとは異なるHTTPサーバー経由で管理エンドポイントにアクセスできます。これにより、/metrics/health などのエンドポイントを外部から隠蔽し、セキュリティを強化できます。Kubernetes環境では、特定の管理ポートが公開されない可能性があるため、最も大きな利点が見られるかもしれません。

管理インターフェースの設定

管理インターフェースは、何かが公開されるとオンになります。メトリクスとヘルスが有効になっている場合、/metrics/health などの管理エンドポイントは、デフォルトの管理ポート 9000 で公開されます。管理インターフェースは、一連のオプションを提供し、完全に構成可能です。

管理インターフェースのプロパティが明示的に設定されていない場合、それらの値はデフォルトのHTTPサーバーから自動的に継承されます。

ポート

管理インターフェースのポートを変更するには、Keycloakオプション http-management-port を使用できます。

相対パス

管理エンドポイントのプレフィックスパスは異なる可能性があるため、管理インターフェースの相対パスを変更できます。これは、Keycloakオプション http-management-relative-path を使用して実現できます。

たとえば、CLIオプション --http-management-relative-path=/management を設定した場合、メトリクスとヘルスエンドポイントは /management/metrics および /management/health パスでアクセスできるようになります。

相対パスが指定されている場合、ユーザーはKeycloakがホストされているパスに自動的にリダイレクトされます。つまり、相対パスが /management に設定されている場合、ユーザーが localhost:9000/ にアクセスすると、ページは localhost:9000/management にリダイレクトされます。

明示的に値を設定しない場合、http-relative-path プロパティの値が使用されます。たとえば、CLIオプション --http-relative-path=/auth を設定した場合、これらのエンドポイントは /auth/metrics および /auth/health パスでアクセスできます。

TLSサポート

デフォルトのKeycloakサーバーにTLSが設定されている場合、管理インターフェースはHTTPS経由でもアクセスできるようになります。管理インターフェースは、メインサーバーのようにHTTPまたはHTTPSのいずれかでのみ実行でき、両方では実行できません。

https-management-* というプレフィックスが付いた特定のKeycloak管理インターフェースオプションは、管理HTTPサーバーに異なるTLSパラメータを設定するために提供されています。これらの機能は、メインHTTPサーバーの対応するものと同様です。詳細については、TLSの設定 を参照してください。これらのオプションが明示的に設定されていない場合、TLSパラメータはデフォルトのHTTPサーバーから継承されます。

管理インターフェースの無効化

管理インターフェースは、何も公開されていない場合、自動的にオフになります。現在、ヘルスチェックとメトリクスのみが管理インターフェースで公開されています。管理インターフェースでの公開を無効にする場合は、Keycloakプロパティ legacy-observability-interfacetrue に設定してください。

セキュリティ上の理由から、デフォルトサーバーでヘルスおよびメトリクスエンドポイントを公開することはお勧めしません。常に管理インターフェースを使用する必要があります。注意してください、legacy-observability-interface オプションは非推奨であり、将来のリリースで削除される予定です。これは、移行のための時間を稼ぐためだけに使用できます。

関連オプション

http-management-port

管理インターフェースのポート。

何かが管理インターフェースで公開されている場合にのみ関連します - 詳細についてはガイドを参照してください。

CLI: --http-management-port
Env: KC_HTTP_MANAGEMENT_PORT

9000 (デフォルト)

http-management-relative-path

管理インターフェースからリソースを提供するための / からの相対パスを設定します。

パスは / で始まる必要があります。指定されていない場合、値はHTTPオプションから継承されます。何かが管理インターフェースで公開されている場合にのみ関連します - 詳細についてはガイドを参照してください。

CLI: --http-management-relative-path
Env: KC_HTTP_MANAGEMENT_RELATIVE_PATH

/ (デフォルト)

https-management-certificate-file

管理サーバー用のPEM形式のサーバー証明書または証明書チェーンへのファイルパス。

指定されていない場合、値はHTTPオプションから継承されます。何かが管理インターフェースで公開されている場合にのみ関連します - 詳細についてはガイドを参照してください。

CLI: --https-management-certificate-file
Env: KC_HTTPS_MANAGEMENT_CERTIFICATE_FILE

https-management-certificate-key-file

管理サーバー用のPEM形式の秘密鍵へのファイルパス。

指定されていない場合、値はHTTPオプションから継承されます。何かが管理インターフェースで公開されている場合にのみ関連します - 詳細についてはガイドを参照してください。

CLI: --https-management-certificate-key-file
Env: KC_HTTPS_MANAGEMENT_CERTIFICATE_KEY_FILE

https-management-certificates-reload-period

管理サーバーの https-management-* オプションによって参照されるキーストア、トラストストア、および証明書ファイルをリロードする間隔。

java.time.Duration 値、秒単位の整数、または整数の後に [ms, h, m, s, d] のいずれかを続けることができます。30秒より大きくする必要があります。無効にするには -1 を使用します。指定されていない場合、値はHTTPオプションから継承されます。何かが管理インターフェースで公開されている場合にのみ関連します - 詳細についてはガイドを参照してください。

CLI: --https-management-certificates-reload-period
Env: KC_HTTPS_MANAGEMENT_CERTIFICATES_RELOAD_PERIOD

1h (デフォルト)

https-management-client-auth

クライアント認証を要求/要求するように管理インターフェースを構成します。

指定されていない場合、値はHTTPオプションから継承されます。何かが管理インターフェースで公開されている場合にのみ関連します - 詳細についてはガイドを参照してください。

CLI: --https-management-client-auth
Env: KC_HTTPS_MANAGEMENT_CLIENT_AUTH

none (デフォルト)、 requestrequired

https-management-key-store-file

管理サーバー用に個別のファイルを指定する代わりに、証明書情報を保持するキーストア。

指定されていない場合、値はHTTPオプションから継承されます。何かが管理インターフェースで公開されている場合にのみ関連します - 詳細についてはガイドを参照してください。

CLI: --https-management-key-store-file
Env: KC_HTTPS_MANAGEMENT_KEY_STORE_FILE

https-management-key-store-password

管理サーバーのキーストアファイルのパスワード。

指定されていない場合、値はHTTPオプションから継承されます。何かが管理インターフェースで公開されている場合にのみ関連します - 詳細についてはガイドを参照してください。

CLI: --https-management-key-store-password
Env: KC_HTTPS_MANAGEMENT_KEY_STORE_PASSWORD

password (デフォルト)

legacy-observability-interface

メトリクス/ヘルスエンドポイントをメインHTTPサーバーで公開する必要がある場合(非推奨)。

trueに設定すると、管理インターフェースは無効になります。

CLI: --legacy-observability-interface
Env: KC_LEGACY_OBSERVABILITY_INTERFACE

非推奨。

truefalse (デフォルト)

このページについて