設定 mTLS 的信任憑證

了解如何設定 Mutual TLS 來驗證連線至 Keycloak 的用戶端。

為了正確驗證客戶端憑證並啟用某些驗證方法,例如雙向 TLS 或 mTLS,您可以設定一個信任儲存區,其中包含伺服器應信任的所有憑證(和憑證鏈)。許多功能都依賴此信任儲存區來正確驗證使用憑證的客戶端,例如 Mutual TLS 和 X.509 驗證。

啟用 mTLS

預設情況下,使用 mTLS 進行驗證是停用的。若要在 Keycloak 作為伺服器時啟用 mTLS 憑證處理,並需要驗證來自對 Keycloak 端點發出的請求的憑證,請將適當的憑證放入信任儲存區中,並使用以下命令啟用 mTLS:

bin/kc.[sh|bat] start --https-client-auth=<none|request|required>

使用值 required 會設定 Keycloak 總是要求憑證,如果請求中未提供憑證則會失敗。透過將值設定為 request,Keycloak 也會接受沒有憑證的請求,並且僅在憑證存在時驗證憑證的正確性。

mTLS 設定和信任儲存區由所有領域共用。無法為不同的領域設定不同的信任儲存區。
管理介面屬性繼承自主 HTTP 伺服器,包括 mTLS 設定。這表示當設定 mTLS 時,管理介面也會啟用 mTLS。若要覆寫此行為,請使用 https-management-client-auth 屬性。

為 mTLS 使用專用信任儲存區

預設情況下,Keycloak 使用系統信任儲存區來驗證憑證。有關詳細資訊,請參閱設定信任憑證

如果您需要為 mTLS 使用專用信任儲存區,您可以執行以下命令來設定此信任儲存區的位置:

bin/kc.[sh|bat] start --https-trust-store-file=/path/to/file --https-trust-store-password=<value>

其他資源

將 mTLS 用於傳出的 HTTP 請求

請注意,這是 Keycloak 作為伺服器時 mTLS 用例的基本憑證設定。當 Keycloak 改為作為客戶端時,例如當 Keycloak 嘗試從由 mTLS 保護的代理身分提供者的權杖端點取得權杖時,您需要設定 HttpClient 以在傳出的請求的鑰匙儲存區中提供正確的憑證。若要設定這些情境中的 mTLS,請參閱設定傳出的 HTTP 請求

設定 X.509 驗證

有關如何設定 X.509 驗證的詳細資訊,請參閱X.509 用戶端憑證使用者驗證章節

相關選項

https-client-auth

設定伺服器以要求/請求用戶端驗證。

CLI: --https-client-auth
Env: KC_HTTPS_CLIENT_AUTH

none(預設值)、requestrequired

https-trust-store-file

信任儲存區,其中保存要信任的憑證的憑證資訊。

CLI: --https-trust-store-file
Env: KC_HTTPS_TRUST_STORE_FILE

https-trust-store-password

信任儲存區檔案的密碼。

CLI: --https-trust-store-password
Env: KC_HTTPS_TRUST_STORE_PASSWORD

https-trust-store-type

信任儲存區檔案的類型。

如果未提供,則根據檔案副檔名自動偵測類型。如果 fips-mode 設定為 strict 且未設定值,則預設為 BCFKS

CLI: --https-trust-store-type
Env: KC_HTTPS_TRUST_STORE_TYPE

https-management-client-auth

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

如果未提供,則該值繼承自 HTTP 選項。僅在管理介面上公開某些內容時才相關 - 有關詳細資訊,請參閱指南。

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

none(預設值)、requestrequired

在此頁面上