搜索

1.2. 配置格式

download PDF

配置使用 统一源 格式,简化了从一个配置源到另一个配置源的键/值对转换。请注意,这些格式也适用于 spi 选项。

命令行参数格式
命令行的值使用 -- <key-with-dashes> = &lt;value> 格式。对于某些值,也存在一个 - &lt;abbreviation>= &lt;value& gt; 简写。
环境变量格式
环境变量的值使用大写的 KC_ <key_with_underscores> = &lt;value> 格式。
配置文件格式
进入配置文件的值使用 < key-with-dashes> = &lt;value> 格式。
密钥存储配置文件格式
进入 KeyStore 配置文件的值使用 kc. <key-with-dashes> 格式。然后,<value > 是存储在 KeyStore 中的密码。

在每个配置章节的末尾,查看 相关选项 标题,用于定义适用的配置格式。有关所有配置选项,请查看 所有配置。选择适用于您的用例的配置源和格式。

1.2.1. 示例 - 基于配置源的替代格式

以下示例显示了三个配置源的 db-url-host 的配置格式:

命令行参数

bin/kc.[sh|bat] start --db-url-host=mykeycloakdb

环境变量

export KC_DB_URL_HOST=mykeycloakdb

conf/keycloak.conf

db-url-host=mykeycloakdb

1.2.2. 命令行参数的格式

红帽构建的 Keycloak 使用许多命令行参数进行打包。要查看可用的配置格式,请输入以下命令:

bin/kc.[sh|bat] start --help

或者,查看所有服务器选项的所有配置。???

1.2.3. 环境变量的格式

您可以使用 ${ENV_VAR} 语法从 keycloak.conf 文件中的环境变量解析环境特定值:

db-url-host=${MY_DB_HOST}

如果环境变量无法解析,您可以指定回退值。在 mydb 之前使用 : (colon):

db-url-host=${MY_DB_HOST:mydb}

1.2.4. 包含特定配置文件的格式

默认情况下,服务器始终从 conf/keycloak.conf 文件中获取配置选项。对于新安装,此文件仅包含注释的设置,作为在生产环境中运行时要设置的想法。

您还可以输入以下命令使用 [-cf|--config-file] 选项指定显式配置文件位置:

bin/kc.[sh|bat] --config-file=/path/to/myconfig.conf start

设置该选项可让红帽从指定的文件而不是 conf/keycloak.conf 读取配置。

1.2.5. 使用 Java KeyStore 文件设置敏感选项

由于 Keystore Configuration Source,您可以使用 [--config-keystore][--config-keystore-password] 选项直接从 Java KeyStore 加载属性。另外,您可以使用 [--config-keystore-type] 选项指定 KeyStore 类型。默认情况下,KeyStore 类型是 PKCS12

KeyStore 中的 secret 需要使用 PBE (基于密码的加密)密钥算法存储,其中密钥从 KeyStore 密码衍生而来。您可以使用以下 keytool 命令生成这种 KeyStore:

keytool -importpass -alias kc.db-password -keystore keystore.p12 -storepass keystorepass -storetype PKCS12 -v

执行该命令后,系统将提示您输入要 存储的密码,这表示 上面的 kc.db-password 属性的值。

创建 KeyStore 时,您可以使用以下参数启动服务器:

bin/kc.[sh|bat] start --config-keystore=/path/to/keystore.p12 --config-keystore-password=storepass --config-keystore-type=PKCS12

1.2.6. raw Quarkus 属性的格式

在大多数情况下,可用的配置选项应该可以满足配置服务器。但是,对于红帽构建的 Keycloak 配置中缺少的特定行为或功能,您可以使用底层 Quarkus 框架中的属性。

如果可能,请直接使用 Quarkus 的属性,因为它们不受红帽构建的 Keycloak 不支持。如果需要,请考虑首先打开 增强请求。这个方法有助于改进红帽构建的 Keycloak 配置以满足您的需要。

如果无法进行增强请求,您可以使用原始 Quarkus 属性配置服务器:

  1. conf 目录中创建 quarkus.properties 文件。
  2. 在该文件中定义必要属性。

    您只能使用 Quarkus 文档 中定义的 Quarkus 扩展 子集。另外,请注意 Quarkus 属性的这些区别:

    • Quarkus 文档中的 Quarkus 属性的锁定图标表示构建时间属性。您可以运行 build 命令来应用此属性。有关 build 命令的详情,请参阅有关优化红帽构建的 Keycloak 的后续部分。
    • Quarkus 指南中的属性没有锁定图标表示 Quarkus 和 Red Hat build of Keycloak 的运行时属性。
  3. 使用 [-cf|--config-file] 命令行参数来包括该文件。

同样,您还可以将 Quarkus 属性存储在 Java KeyStore 中。

请注意,一些 Quarkus 属性已在红帽构建的 Keycloak 配置中映射,如 quarkus.http.port 和类似基本属性。如果红帽构建的 Keycloak 使用了属性,在 quarkus.properties 中定义该属性键无效。红帽构建的 Keycloak 配置值优先于 Quarkus 属性值。

1.2.7. 在值中使用特殊字符

红帽构建的 Keycloak 依赖于 Quarkus 和 MicroProfile 来处理配置值。请注意,支持值表达式。例如,${some_key} 评估为 some_key 的值。

要禁用表达式评估,\ 字符充当转义字符。特别是,它必须用于在出现定义表达式或重复时转义 $ 字符的使用。例如,如果您希望配置值 my$password,请改为使用 my\$\$password。请注意,在使用大多数 unix shell 或其出现在属性文件中时,\ 字符需要额外的转义或引用。例如,bash 单引号保留单个反斜杠 --db-password='my\$\$password'。另外,使用 bash 双引号时,您需要额外的反斜杠 --db-password="my\\$\\$password"。在属性文件中,还必须转义反斜杠字符:kc .db-password=my\\$\\$password

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.