設定管理介面

了解如何設定 Keycloak 的管理介面,以用於如指標和健康檢查等端點。

管理介面允許透過與主要 HTTP 伺服器不同的 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-interface 設定為 true

為了安全起見,不建議在預設伺服器上公開健康檢查和指標端點,您應該始終使用管理介面。請注意,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-client-auth

設定管理介面以要求/請求用戶端驗證。

如果未給定,則該值會從 HTTP 選項繼承。僅當管理介面上公開了某些內容時才相關 - 請參閱指南了解詳細資訊。

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

none (預設), request, required

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

已棄用。

true, false (預設)

在此頁面