所有配置

Keycloak 的所有构建选项和配置的完整列表

缓存

cache

定义用于高可用性的缓存机制。

默认情况下,在生产模式下,使用 ispn 缓存来创建多个服务器节点之间的集群。默认情况下,在开发模式下,local 缓存禁用集群,旨在用于开发和测试目的。

CLI: --cache
Env: KC_CACHE

ispn (默认), local

cache-config-file

定义应从中加载缓存配置的文件。

配置文件相对于 conf/ 目录。

CLI: --cache-config-file
Env: KC_CACHE_CONFIG_FILE

cache-embedded-authorization-max-count

授权缓存可以存储在内存中的最大条目数。

CLI: --cache-embedded-authorization-max-count
Env: KC_CACHE_EMBEDDED_AUTHORIZATION_MAX_COUNT

cache-embedded-client-sessions-max-count

clientSessions 缓存可以存储在内存中的最大条目数。

CLI: --cache-embedded-client-sessions-max-count
Env: KC_CACHE_EMBEDDED_CLIENT_SESSIONS_MAX_COUNT

仅在配置嵌入式 Infinispan 集群时可用

cache-embedded-crl-max-count

crl 缓存可以存储在内存中的最大条目数。

CLI: --cache-embedded-crl-max-count
Env: KC_CACHE_EMBEDDED_CRL_MAX_COUNT

cache-embedded-keys-max-count

keys 缓存可以存储在内存中的最大条目数。

CLI: --cache-embedded-keys-max-count
Env: KC_CACHE_EMBEDDED_KEYS_MAX_COUNT

cache-embedded-mtls-enabled

加密 Keycloak 服务器之间的网络通信。

如果没有提供关于密钥库和信任库的附加参数,则会自动创建和轮换临时密钥对和证书,这对于标准设置是推荐的。

CLI: --cache-embedded-mtls-enabled
Env: KC_CACHE_EMBEDDED_MTLS_ENABLED

仅在使用基于 TCP 的缓存堆栈时可用

true (默认), false

cache-embedded-mtls-key-store-file

密钥库文件路径。

密钥库必须包含 TLS 协议使用的证书。默认情况下,它在 conf/ 目录下查找 cache-mtls-keystore.p12

CLI: --cache-embedded-mtls-key-store-file
Env: KC_CACHE_EMBEDDED_MTLS_KEY_STORE_FILE

仅当属性“cache-embedded-mtls-enabled”启用时可用

cache-embedded-mtls-key-store-password

访问密钥库的密码。

CLI: --cache-embedded-mtls-key-store-password
Env: KC_CACHE_EMBEDDED_MTLS_KEY_STORE_PASSWORD

仅当属性“cache-embedded-mtls-enabled”启用时可用

cache-embedded-mtls-rotation-interval-days

自动 JGroups MTLS 证书的轮换周期(天)。

CLI: --cache-embedded-mtls-rotation-interval-days
Env: KC_CACHE_EMBEDDED_MTLS_ROTATION_INTERVAL_DAYS

仅当属性“cache-embedded-mtls-enabled”启用时可用

30 (默认)

cache-embedded-mtls-trust-store-file

信任库文件路径。

它应包含受信任的证书或签署证书的证书颁发机构。默认情况下,它在 conf/ 目录下查找 cache-mtls-truststore.p12

CLI: --cache-embedded-mtls-trust-store-file
Env: KC_CACHE_EMBEDDED_MTLS_TRUST_STORE_FILE

仅当属性“cache-embedded-mtls-enabled”启用时可用

cache-embedded-mtls-trust-store-password

访问信任库的密码。

CLI: --cache-embedded-mtls-trust-store-password
Env: KC_CACHE_EMBEDDED_MTLS_TRUST_STORE_PASSWORD

仅当属性“cache-embedded-mtls-enabled”启用时可用

cache-embedded-offline-client-sessions-max-count

offlineClientSessions 缓存可以存储在内存中的最大条目数。

CLI: --cache-embedded-offline-client-sessions-max-count
Env: KC_CACHE_EMBEDDED_OFFLINE_CLIENT_SESSIONS_MAX_COUNT

仅在配置嵌入式 Infinispan 集群时可用

cache-embedded-offline-sessions-max-count

offlineSessions 缓存可以存储在内存中的最大条目数。

CLI: --cache-embedded-offline-sessions-max-count
Env: KC_CACHE_EMBEDDED_OFFLINE_SESSIONS_MAX_COUNT

仅在配置嵌入式 Infinispan 集群时可用

cache-embedded-realms-max-count

realms 缓存可以存储在内存中的最大条目数。

CLI: --cache-embedded-realms-max-count
Env: KC_CACHE_EMBEDDED_REALMS_MAX_COUNT

cache-embedded-sessions-max-count

sessions 缓存可以存储在内存中的最大条目数。

CLI: --cache-embedded-sessions-max-count
Env: KC_CACHE_EMBEDDED_SESSIONS_MAX_COUNT

仅在配置嵌入式 Infinispan 集群时可用

cache-embedded-users-max-count

users 缓存可以存储在内存中的最大条目数。

CLI: --cache-embedded-users-max-count
Env: KC_CACHE_EMBEDDED_USERS_MAX_COUNT

cache-metrics-histograms-enabled

为嵌入式缓存启用指标的直方图。

CLI: --cache-metrics-histograms-enabled
Env: KC_CACHE_METRICS_HISTOGRAMS_ENABLED

仅当指标启用时可用

true, false (默认)

cache-remote-host

外部 Infinispan 集群的主机名。

仅当设置了 multi-siteclusterlesscache-embedded-remote-store 功能时可用。

CLI: --cache-remote-host
Env: KC_CACHE_REMOTE_HOST

cache-remote-password

用于对外部 Infinispan 集群进行身份验证的密码。

如果连接到不安全的外部 Infinispan 集群,则此选项是可选的。如果指定了此选项,则 cache-remote-username 也为必填项。

CLI: --cache-remote-password
Env: KC_CACHE_REMOTE_PASSWORD

仅当设置了远程主机时可用

cache-remote-port

外部 Infinispan 集群的端口。

CLI: --cache-remote-port
Env: KC_CACHE_REMOTE_PORT

仅当设置了远程主机时可用

11222 (默认)

cache-remote-tls-enabled

启用 TLS 支持以与安全的远程 Infinispan 服务器通信。

建议在生产环境中启用。

CLI: --cache-remote-tls-enabled
Env: KC_CACHE_REMOTE_TLS_ENABLED

仅当设置了远程主机时可用

true (默认), false

cache-remote-username

用于对外部 Infinispan 集群进行身份验证的用户名。

如果连接到不安全的外部 Infinispan 集群,则此选项是可选的。如果指定了此选项,则 cache-remote-password 也为必填项。

CLI: --cache-remote-username
Env: KC_CACHE_REMOTE_USERNAME

仅当设置了远程主机时可用

cache-stack

定义用于集群通信和节点发现的默认堆栈。

CLI: --cache-stack
Env: KC_CACHE_STACK

仅当“cache”类型设置为“ispn”时可用

使用 'jdbc-ping' 代替 已弃用值: azure, ec2, google, tcp, udp, jdbc-ping-udp

jdbc-ping (默认), kubernetes, jdbc-ping-udp (已弃用), tcp (已弃用), udp (已弃用), ec2 (已弃用), azure (已弃用), google (已弃用), 或任何

配置

config-keystore

指定 KeyStore 配置源的路径。

CLI: --config-keystore
Env: KC_CONFIG_KEYSTORE

config-keystore-password

指定 KeyStore 配置源的密码。

CLI: --config-keystore-password
Env: KC_CONFIG_KEYSTORE_PASSWORD

config-keystore-type

指定 KeyStore 配置源的类型。

CLI: --config-keystore-type
Env: KC_CONFIG_KEYSTORE_TYPE

PKCS12 (默认)

数据库

db

数据库供应商。

在生产模式下,dev-file 的默认值已被弃用,您应该显式指定数据库。

CLI: --db
Env: KC_DB

dev-file (默认), dev-mem, mariadb, mssql, mysql, oracle, postgres

db-driver

JDBC 驱动程序的完全限定类名。

如果未设置,则会根据所选数据库设置默认驱动程序。

CLI: --db-driver
Env: KC_DB_DRIVER

db-password

数据库用户的密码。

CLI: --db-password
Env: KC_DB_PASSWORD

db-pool-initial-size

连接池的初始大小。

CLI: --db-pool-initial-size
Env: KC_DB_POOL_INITIAL_SIZE

db-pool-max-size

连接池的最大大小。

CLI: --db-pool-max-size
Env: KC_DB_POOL_MAX_SIZE

100 (默认)

db-pool-min-size

连接池的最小大小。

CLI: --db-pool-min-size
Env: KC_DB_POOL_MIN_SIZE

db-schema

要使用的数据库模式。

CLI: --db-schema
Env: KC_DB_SCHEMA

db-url

完整的数据库 JDBC URL。

如果未提供,则会根据所选数据库供应商设置默认 URL。例如,如果使用 postgres,则默认 JDBC URL 将为 jdbc:postgresql://127.0.0.1/keycloak

CLI: --db-url
Env: KC_DB_URL

db-url-database

设置所选供应商的默认 JDBC URL 的数据库名称。

如果设置了 db-url 选项,则忽略此选项。

CLI: --db-url-database
Env: KC_DB_URL_DATABASE

db-url-host

设置所选供应商的默认 JDBC URL 的主机名。

如果设置了 db-url 选项,则忽略此选项。

CLI: --db-url-host
Env: KC_DB_URL_HOST

db-url-port

设置所选供应商的默认 JDBC URL 的端口。

如果设置了 db-url 选项,则忽略此选项。

CLI: --db-url-port
Env: KC_DB_URL_PORT

db-url-properties

设置所选供应商的默认 JDBC URL 的属性。

确保根据数据库供应商期望的格式设置属性,并在该属性值的开头附加正确的字符。如果设置了 db-url 选项,则忽略此选项。

CLI: --db-url-properties
Env: KC_DB_URL_PROPERTIES

db-username

数据库用户的用户名。

CLI: --db-username
Env: KC_DB_USERNAME

事务

transaction-xa-enabled

如果设置为 true,将使用 XA 数据源。

CLI: --transaction-xa-enabled
Env: KC_TRANSACTION_XA_ENABLED

true, false (默认)

功能

features

启用一组或多个功能。

CLI: --features
Env: KC_FEATURES

account-api[:v1], account[:v3], admin-api[:v1], admin-fine-grained-authz[:v1,v2], admin[:v2], authorization[:v1], cache-embedded-remote-store[:v1], ciba[:v1], client-policies[:v1], client-secret-rotation[:v1], client-types[:v1], clusterless[:v1], declarative-ui[:v1], device-flow[:v1], docker[:v1], dpop[:v1], dynamic-scopes[:v1], fips[:v1], hostname[:v2], impersonation[:v1], ipa-tuura-federation[:v1], kerberos[:v1], login[:v2,v1], multi-site[:v1], oid4vc-vci[:v1], opentelemetry[:v1], organization[:v1], par[:v1], passkeys[:v1], persistent-user-sessions[:v1], preview, quick-theme[:v1], recovery-codes[:v1], rolling-updates[:v1], scripts[:v1], step-up-authentication[:v1], token-exchange-standard[:v2], token-exchange[:v1], transient-users[:v1], update-email[:v1], user-event-metrics[:v1], web-authn[:v1]

features-disabled

禁用一组或多个功能。

CLI: --features-disabled
Env: KC_FEATURES_DISABLED

account, account-api, admin, admin-api, admin-fine-grained-authz, authorization, cache-embedded-remote-store, ciba, client-policies, client-secret-rotation, client-types, clusterless, declarative-ui, device-flow, docker, dpop, dynamic-scopes, fips, impersonation, ipa-tuura-federation, kerberos, login, multi-site, oid4vc-vci, opentelemetry, organization, par, passkeys, persistent-user-sessions, preview, quick-theme, recovery-codes, rolling-updates, scripts, step-up-authentication, token-exchange, token-exchange-standard, transient-users, update-email, user-event-metrics, web-authn

主机名 v2

hostname

服务器暴露的地址。

可以是完整的 URL,也可以只是主机名。仅当提供主机名时,才从请求中解析 scheme、端口和上下文路径。

CLI: --hostname
Env: KC_HOSTNAME

仅当启用了 hostname:v2 功能时可用

hostname-admin

用于访问管理控制台的地址。

如果您使用反向代理在与 hostname 选项中指定的地址不同的地址上公开管理控制台,请使用此选项。

CLI: --hostname-admin
Env: KC_HOSTNAME_ADMIN

仅当启用了 hostname:v2 功能时可用

hostname-backchannel-dynamic

启用动态解析后通道 URL,包括主机名、scheme、端口和上下文路径。

如果您的应用程序通过专用网络访问 Keycloak,请设置为 true。如果设置为 true,则需要将 hostname 选项指定为完整 URL。

CLI: --hostname-backchannel-dynamic
Env: KC_HOSTNAME_BACKCHANNEL_DYNAMIC

仅当启用了 hostname:v2 功能时可用

true, false (默认)

hostname-debug

切换可在 /realms/master/hostname-debug 访问的主机名调试页面。

CLI: --hostname-debug
Env: KC_HOSTNAME_DEBUG

仅当启用了 hostname:v2 功能时可用

true, false (默认)

hostname-strict

禁用从请求标头动态解析主机名。

除非您的反向代理覆盖 Host 标头,否则应始终在生产环境中设置为 true。如果启用,则需要指定 hostname 选项。

CLI: --hostname-strict
Env: KC_HOSTNAME_STRICT

仅当启用了 hostname:v2 功能时可用

true (默认), false

HTTP(S)

http-enabled

启用 HTTP 监听器。

在开发模式下默认启用。通常在生产环境中不启用,除非服务器前面有 TLS 终止代理。

CLI: --http-enabled
Env: KC_HTTP_ENABLED

true, false (默认)

http-host

HTTP 主机。

CLI: --http-host
Env: KC_HTTP_HOST

0.0.0.0 (默认)

http-max-queued-requests

排队 HTTP 请求的最大数量。

在过载情况下使用此选项来减少负载。超出请求将返回“503 服务器不可用”响应。

CLI: --http-max-queued-requests
Env: KC_HTTP_MAX_QUEUED_REQUESTS

http-metrics-histograms-enabled

为 HTTP 服务器请求的持续时间启用具有默认存储桶的直方图。

CLI: --http-metrics-histograms-enabled
Env: KC_HTTP_METRICS_HISTOGRAMS_ENABLED

仅当指标启用时可用

true, false (默认)

http-metrics-slos

HTTP 服务器请求的服务级别目标。

使用此选项代替默认直方图,或组合使用以添加其他存储桶。指定以逗号分隔的值列表,以毫秒为单位定义。例如,存储桶从 5ms 到 10s:5,10,25,50,250,500,1000,2500,5000,10000

CLI: --http-metrics-slos
Env: KC_HTTP_METRICS_SLOS

仅当指标启用时可用

http-pool-max-threads

最大线程数。

如果未指定,则会根据可用处理器数量的 4 倍和 50 中的较大者自动调整大小。例如,如果有 4 个处理器,则最大线程数为 50。如果有 48 个处理器,则为 192。

CLI: --http-pool-max-threads
Env: KC_HTTP_POOL_MAX_THREADS

http-port

使用的 HTTP 端口。

CLI: --http-port
Env: KC_HTTP_PORT

8080 (默认)

http-relative-path

设置相对于 / 的路径以服务资源。

路径必须以 / 开头。

CLI: --http-relative-path
Env: KC_HTTP_RELATIVE_PATH

/ (默认)

https-certificate-file

PEM 格式的服务器证书或证书链的文件路径。

CLI: --https-certificate-file
Env: KC_HTTPS_CERTIFICATE_FILE

https-certificate-key-file

PEM 格式的私钥的文件路径。

CLI: --https-certificate-key-file
Env: KC_HTTPS_CERTIFICATE_KEY_FILE

https-certificates-reload-period

重新加载密钥库、信任库以及 https-* 选项引用的证书文件的间隔。

可以是 java.time.Duration 值、整数秒数或后跟 [ms, h, m, s, d] 之一的整数。必须大于 30 秒。使用 -1 禁用。

CLI: --https-certificates-reload-period
Env: KC_HTTPS_CERTIFICATES_RELOAD_PERIOD

1h (默认)

https-cipher-suites

要使用的密码套件。

如果未给出,则选择合理的默认值。

CLI: --https-cipher-suites
Env: KC_HTTPS_CIPHER_SUITES

https-client-auth

配置服务器以要求/请求客户端身份验证。

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

none (默认), request, required

https-key-store-file

保存证书信息的密钥库,而不是指定单独的文件。

CLI: --https-key-store-file
Env: KC_HTTPS_KEY_STORE_FILE

https-key-store-password

密钥库文件的密码。

CLI: --https-key-store-password
Env: KC_HTTPS_KEY_STORE_PASSWORD

password (默认)

https-key-store-type

密钥库文件的类型。

如果未给出,则根据文件扩展名自动检测类型。如果 fips-mode 设置为 strict 且未设置值,则默认为 BCFKS

CLI: --https-key-store-type
Env: KC_HTTPS_KEY_STORE_TYPE

https-port

使用的 HTTPS 端口。

CLI: --https-port
Env: KC_HTTPS_PORT

8443 (默认)

https-protocols

要显式启用的协议列表。

CLI: --https-protocols
Env: KC_HTTPS_PROTOCOLS

[TLSv1.3,TLSv1.2] (默认)

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

健康检查

health-enabled

服务器是否应公开健康检查端点。

如果启用,则健康检查在 /health/health/ready/health/live 端点可用。

CLI: --health-enabled
Env: KC_HEALTH_ENABLED

true, false (默认)

管理

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 (默认), 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 (默认)

指标

metrics-enabled

服务器是否应公开指标。

如果启用,则指标在 /metrics 端点可用。

CLI: --metrics-enabled
Env: KC_METRICS_ENABLED

true, false (默认)

代理

proxy-headers

服务器应接受的代理标头。

错误配置可能会使服务器暴露于安全漏洞。优先于已弃用的 proxy 选项。

CLI: --proxy-headers
Env: KC_PROXY_HEADERS

forwarded, xforwarded

proxy-protocol-enabled

当从代理后面提供请求时,服务器是否应使用 HA PROXY 协议。

设置为 true 时,返回的远程地址将是来自实际连接客户端的地址。当使用 proxy-headers 时,无法启用。

CLI: --proxy-protocol-enabled
Env: KC_PROXY_PROTOCOL_ENABLED

true, false (默认)

proxy-trusted-addresses

受信任代理地址的逗号分隔列表。

如果设置,则来自其他地址的代理标头将被忽略。默认情况下,所有地址都受信任。受信任的代理地址指定为 IP 地址(IPv4 或 IPv6)或无类别域间路由 (CIDR) 表示法。仅当设置了 proxy-headers 时可用。

CLI: --proxy-trusted-addresses
Env: KC_PROXY_TRUSTED_ADDRESSES

密钥库

vault

启用密钥库提供程序。

CLI: --vault
Env: KC_VAULT

file, keystore

vault-dir

如果设置,则可以通过读取给定目录中文件的内容来获取密钥。

CLI: --vault-dir
Env: KC_VAULT_DIR

vault-file

密钥库文件的路径。

CLI: --vault-file
Env: KC_VAULT_FILE

vault-pass

密钥库密钥库的密码。

CLI: --vault-pass
Env: KC_VAULT_PASS

vault-type

指定密钥库文件的类型。

CLI: --vault-type
Env: KC_VAULT_TYPE

PKCS12 (默认)

日志

log

在逗号分隔的列表中启用一个或多个日志处理程序。

CLI: --log
Env: KC_LOG

console, file, syslog

log-console-color

在记录到控制台时启用或禁用颜色。

CLI: --log-console-color
Env: KC_LOG_CONSOLE_COLOR

仅当控制台日志处理程序激活时可用

true, false (默认)

log-console-format

非结构化控制台日志条目的格式。

如果格式中包含空格,请使用 "<format>" 转义该值。

CLI: --log-console-format
Env: KC_LOG_CONSOLE_FORMAT

仅当控制台日志处理程序激活时可用

%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n (默认)

log-console-include-trace

在控制台日志中包含跟踪信息。

如果指定了 log-console-format 选项,则此选项无效。

CLI: --log-console-include-trace
Env: KC_LOG_CONSOLE_INCLUDE_TRACE

仅当控制台日志处理程序和跟踪激活时可用

true (默认), false

log-console-json-format

设置生成的 JSON 的格式。

CLI: --log-console-json-format
Env: KC_LOG_CONSOLE_JSON_FORMAT

仅当控制台日志处理程序激活且输出设置为“json”时可用

default (默认), ecs

log-console-level

设置控制台处理程序的日志级别。

它指定输出中显示的最详细的日志级别。它遵循 log-level 选项中指定的级别,该选项表示整个日志系统的最大详细程度。有关更多信息,请查看日志指南。

CLI: --log-console-level
Env: KC_LOG_CONSOLE_LEVEL

仅当控制台日志处理程序激活时可用

off, fatal, error, warn, info, debug, trace, all (默认)

log-console-output

将日志输出设置为 JSON 或默认(纯)非结构化日志记录。

CLI: --log-console-output
Env: KC_LOG_CONSOLE_OUTPUT

仅当控制台日志处理程序激活时可用

default (默认), json

log-file

设置日志文件路径和文件名。

CLI: --log-file
Env: KC_LOG_FILE

仅当文件日志处理程序激活时可用

data/log/keycloak.log (默认)

log-file-format

设置特定于文件日志条目的格式。

CLI: --log-file-format
Env: KC_LOG_FILE_FORMAT

仅当文件日志处理程序激活时可用

%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n (默认)

log-file-include-trace

在文件日志中包含跟踪信息。

如果指定了 log-file-format 选项,则此选项无效。

CLI: --log-file-include-trace
Env: KC_LOG_FILE_INCLUDE_TRACE

仅当文件日志处理程序和跟踪已激活时可用

true (默认), false

log-file-json-format

设置生成的 JSON 的格式。

CLI: --log-file-json-format
Env: KC_LOG_FILE_JSON_FORMAT

仅当文件日志处理程序已激活且输出设置为 'json' 时可用

default (默认), ecs

log-file-level

设置文件处理程序的日志级别。

它指定输出中显示的最详细的日志级别。它遵循 log-level 选项中指定的级别,该选项表示整个日志系统的最大详细程度。有关更多信息,请查看日志指南。

CLI: --log-file-level
Env: KC_LOG_FILE_LEVEL

仅当文件日志处理程序激活时可用

off, fatal, error, warn, info, debug, trace, all (默认)

log-file-output

将日志输出设置为 JSON 或默认(纯)非结构化日志记录。

CLI: --log-file-output
Env: KC_LOG_FILE_OUTPUT

仅当文件日志处理程序激活时可用

default (默认), json

log-level

根类别的日志级别或以逗号分隔的各个类别及其级别的列表。

对于根类别,您无需指定类别。

CLI: --log-level
Env: KC_LOG_LEVEL

[info] (默认)

log-syslog-app-name

设置以 RFC5424 格式格式化消息时使用的应用程序名称。

CLI: --log-syslog-app-name
Env: KC_LOG_SYSLOG_APP_NAME

仅当 Syslog 已激活时可用

keycloak (默认)

log-syslog-endpoint

设置 Syslog 服务器的 IP 地址和端口。

CLI: --log-syslog-endpoint
Env: KC_LOG_SYSLOG_ENDPOINT

仅当 Syslog 已激活时可用

localhost:514 (默认)

log-syslog-format

设置特定于 Syslog 条目的格式。

CLI: --log-syslog-format
Env: KC_LOG_SYSLOG_FORMAT

仅当 Syslog 已激活时可用

%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n (默认)

log-syslog-include-trace

在 Syslog 中包含跟踪信息。

如果指定了 log-syslog-format 选项,则此选项无效。

CLI: --log-syslog-include-trace
Env: KC_LOG_SYSLOG_INCLUDE_TRACE

仅当 Syslog 处理程序和跟踪已激活时可用

true (默认), false

log-syslog-json-format

设置生成的 JSON 的格式。

CLI: --log-syslog-json-format
Env: KC_LOG_SYSLOG_JSON_FORMAT

仅当 Syslog 已激活且输出设置为 'json' 时可用

default (默认), ecs

log-syslog-level

设置 Syslog 处理程序的日志级别。

它指定输出中显示的最详细的日志级别。它遵循 log-level 选项中指定的级别,该选项表示整个日志系统的最大详细程度。有关更多信息,请查看日志指南。

CLI: --log-syslog-level
Env: KC_LOG_SYSLOG_LEVEL

仅当 Syslog 已激活时可用

off, fatal, error, warn, info, debug, trace, all (默认)

log-syslog-max-length

设置允许发送的消息的最大长度(以字节为单位)。

长度包括标头和消息。如果未设置,当 log-syslog-type 为 rfc5424(默认)时,默认值为 2048,当 log-syslog-type 为 rfc3164 时,默认值为 1024。

CLI: --log-syslog-max-length
Env: KC_LOG_SYSLOG_MAX_LENGTH

仅当 Syslog 已激活时可用

log-syslog-output

将 Syslog 输出设置为 JSON 或默认(纯文本)非结构化日志记录。

CLI: --log-syslog-output
Env: KC_LOG_SYSLOG_OUTPUT

仅当 Syslog 已激活时可用

default (默认), json

log-syslog-protocol

设置用于连接到 Syslog 服务器的协议。

CLI: --log-syslog-protocol
Env: KC_LOG_SYSLOG_PROTOCOL

仅当 Syslog 已激活时可用

tcp (默认), udp, ssl-tcp

log-syslog-type

设置用于格式化发送消息的 Syslog 类型。

CLI: --log-syslog-type
Env: KC_LOG_SYSLOG_TYPE

仅当 Syslog 已激活时可用

rfc5424 (默认), rfc3164

跟踪

tracing-compression

用于压缩负载的 OpenTelemetry 压缩方法。

如果未设置,则禁用压缩。

CLI: --tracing-compression
Env: KC_TRACING_COMPRESSION

仅当跟踪已启用时可用

gzip, none (默认)

tracing-enabled

启用 OpenTelemetry 跟踪。

CLI: --tracing-enabled
Env: KC_TRACING_ENABLED

仅当 'opentelemetry' 功能已启用时可用

true, false (默认)

tracing-endpoint

要连接的 OpenTelemetry 端点。

CLI: --tracing-endpoint
Env: KC_TRACING_ENDPOINT

仅当跟踪已启用时可用

https://127.0.0.1:4317 (默认)

tracing-jdbc-enabled

启用 OpenTelemetry JDBC 跟踪。

CLI: --tracing-jdbc-enabled
Env: KC_TRACING_JDBC_ENABLED

仅当跟踪已启用时可用

true (默认), false

tracing-protocol

用于遥测数据的 OpenTelemetry 协议。

CLI: --tracing-protocol
Env: KC_TRACING_PROTOCOL

仅当跟踪已启用时可用

grpc (默认), http/protobuf

tracing-resource-attributes

导出跟踪中存在的 OpenTelemetry 资源属性,用于描述遥测生产者。

格式为 key1=val1,key2=val2 的值。有关更多信息,请查看跟踪指南。

CLI: --tracing-resource-attributes
Env: KC_TRACING_RESOURCE_ATTRIBUTES

仅当跟踪已启用时可用

tracing-sampler-ratio

OpenTelemetry 采样器比率。

跨度将被采样的概率。期望的双精度值在 [0,1] 区间内。

CLI: --tracing-sampler-ratio
Env: KC_TRACING_SAMPLER_RATIO

仅当跟踪已启用时可用

1.0 (默认)

tracing-sampler-type

用于跟踪的 OpenTelemetry 采样器。

CLI: --tracing-sampler-type
Env: KC_TRACING_SAMPLER_TYPE

仅当跟踪已启用时可用

always_on, always_off, traceidratio (默认), parentbased_always_on, parentbased_always_off, parentbased_traceidratio

tracing-service-name

OpenTelemetry 服务名称。

优先于 tracing-resource-attributes 属性中定义的 service.name

CLI: --tracing-service-name
Env: KC_TRACING_SERVICE_NAME

仅当跟踪已启用时可用

keycloak (默认)

事件

event-metrics-user-enabled

基于用户事件创建指标。

CLI: --event-metrics-user-enabled
Env: KC_EVENT_METRICS_USER_ENABLED

仅当指标已启用且用户事件指标功能已启用时可用

true, false (默认)

event-metrics-user-events

要为用户事件指标收集的事件的逗号分隔列表。

此选项可用于减少创建的指标数量,因为默认情况下所有用户事件都会创建一个指标。

CLI: --event-metrics-user-events
Env: KC_EVENT_METRICS_USER_EVENTS

仅当用户事件指标已启用时可用

使用 remove_credential 代替 remove_totp,并使用 update_credential 代替 update_totpupdate_password已弃用的值:remove_totp, update_totp, update_password

authreqid_to_token, client_delete, client_info, client_initiated_account_linking, client_login, client_register, client_update, code_to_token, custom_required_action, delete_account, execute_action_token, execute_actions, federated_identity_link, federated_identity_override_link, grant_consent, identity_provider_first_login, identity_provider_link_account, identity_provider_login, identity_provider_post_login, identity_provider_response, identity_provider_retrieve_token, impersonate, introspect_token, invalid_signature, invite_org, login, logout, oauth2_device_auth, oauth2_device_code_to_token, oauth2_device_verify_user_code, oauth2_extension_grant, permission_token, pushed_authorization_request, refresh_token, register, register_node, remove_credential, remove_federated_identity, remove_totp (已弃用), reset_password, restart_authentication, revoke_grant, send_identity_provider_link, send_reset_password, send_verify_email, token_exchange, unregister_node, update_consent, update_credential, update_email, update_password (已弃用), update_profile, update_totp (已弃用), user_disabled_by_permanent_lockout, user_disabled_by_temporary_lockout, user_info_request, verify_email, verify_profile

event-metrics-user-tags

要为用户事件指标收集的标签的逗号分隔列表。

默认情况下,仅启用 realm 以避免高指标基数。

CLI: --event-metrics-user-tags
Env: KC_EVENT_METRICS_USER_TAGS

仅当用户事件指标已启用时可用

realm, idp, clientId

信任库

tls-hostname-verifier

用于出站 HTTPS 和 SMTP 请求的 TLS 主机名验证策略。

CLI: --tls-hostname-verifier
Env: KC_TLS_HOSTNAME_VERIFIER

STRICT 和 WILDCARD 已被弃用,请改用 DEFAULT。 已弃用的值:STRICT, WILDCARD

ANY, WILDCARD (已弃用), STRICT (已弃用), DEFAULT (默认)

truststore-paths

将用作系统信任库的 pkcs12(p12、pfx 或 pkcs12 文件扩展名)、PEM 文件或包含这些文件的目录的列表。

CLI: --truststore-paths
Env: KC_TRUSTSTORE_PATHS

安全性

fips-mode

设置 FIPS 模式。

如果设置 non-strict,则启用 FIPS 但处于非批准模式。 为了完全符合 FIPS 标准,请设置 strict 以在批准模式下运行。 当 fips 功能禁用时,此选项默认为 disabled,这是默认设置。 当 fips 功能启用时,此选项默认为 non-strict

CLI: --fips-mode
Env: KC_FIPS_MODE

non-strict, strict

导出

dir

设置将在其中创建包含导出数据文件的目录路径。

CLI: --dir
Env: KC_DIR

file

设置将要创建的包含导出数据文件的路径。

要导出超过 500 个用户,请导出到具有不同文件的目录。

CLI: --file
Env: KC_FILE

realm

设置要导出的 realm 的名称。

如果未设置,将导出所有 realm。

CLI: --realm
Env: KC_REALM

users

设置应如何导出用户。

CLI: --users
Env: KC_USERS

skip, realm_file, same_file, different_files (默认)

users-per-file

设置每个文件的用户数。

仅当 users 设置为 different_files 时使用。 增加此数字会导致导出时间呈指数级增长。

CLI: --users-per-file
Env: KC_USERS_PER_FILE

50 (默认)

导入

dir

设置将从中读取文件的目录路径。

CLI: --dir
Env: KC_DIR

file

设置将要读取的文件的路径。

CLI: --file
Env: KC_FILE

override

设置是否应覆盖现有数据。

如果设置为 false,则将忽略数据。

CLI: --override
Env: KC_OVERRIDE

true (默认), false

引导管理

bootstrap-admin-client-id

临时引导管理服务帐户的客户端 ID。

仅在创建 master realm 时使用。 仅当设置了引导管理客户端密钥时可用。

CLI: --bootstrap-admin-client-id
Env: KC_BOOTSTRAP_ADMIN_CLIENT_ID

temp-admin (默认)

bootstrap-admin-client-secret

临时引导管理服务帐户的客户端密钥。

仅在创建 master realm 时使用。 如果可能,请为此选项使用非 CLI 配置选项。

CLI: --bootstrap-admin-client-secret
Env: KC_BOOTSTRAP_ADMIN_CLIENT_SECRET

bootstrap-admin-password

临时引导管理员密码。

仅在创建 master realm 时使用。 如果可能,请为此选项使用非 CLI 配置选项。

CLI: --bootstrap-admin-password
Env: KC_BOOTSTRAP_ADMIN_PASSWORD

bootstrap-admin-username

临时引导管理员用户名。

仅在创建 master realm 时使用。 仅当设置了引导管理员密码时可用。

CLI: --bootstrap-admin-username
Env: KC_BOOTSTRAP_ADMIN_USERNAME

temp-admin (默认)

在此页上