13.3. 密钥解析器

所有内置供应商都支持密钥解析器的配置。键解析器实施算法或策略,用于将域名和从 ${vault.key} 表达式获取的密钥合并到用于从 vault 检索 secret 的最终条目名称中。Red Hat Single Sign-On 使用 keyResolvers 属性来配置提供程序使用的解析器。该值是一个以逗号分隔的解析器名称列表。以下是 files-plaintext 供应商配置示例:

<spi name="vault">
    <default-provider>files-plaintext</default-provider>
    <provider name="files-plaintext" enabled="true">
        <properties>
            <property name="dir" value="${jboss.home.dir}/standalone/configuration/vault/" />
            <property name="keyResolvers" value="REALM_UNDERSCORE_KEY, KEY_ONLY"/>
        </properties>
    </provider>
</spi>

解析器按照您在配置中声明的顺序相同的顺序运行。对于每个解析器,Red Hat Single Sign-On 使用解析器生成的最后一个条目名,它将 realm 与 vault 密钥合并,以搜索 vault 的机密。如果 Red Hat Single Sign-On 发现了 secret,它将返回 secret。如果没有,Red Hat Single Sign-On 将使用下一个解析器。这个搜索将继续,直到 Red Hat Single Sign-On 找到一个非空 secret 或运行解析器为止。如果 Red Hat Single Sign-On 没有找到 secret,Red Hat Single Sign-On 会返回一个空 secret。

在上例中,Red Hat Single Sign-On 会首先使用 REALM_UNDERSCORE_KEY 解析器。如果 Red Hat Single Sign-On 在使用该解析器的 vault 中找到条目,Red Hat Single Sign-On 会返回该条目。如果没有,Red Hat Single Sign-On 会使用 KEY_ONLY 解析器再次搜索。如果 Red Hat Single Sign-On 使用 KEY_ONLY 解析器发现条目,Red Hat Single Sign-On 会返回该条目。如果 Red Hat Single Sign-On 使用所有解析器,Red Hat Single Sign-On 会返回一个空 secret。

当前可用解析器的列表如下:

名称描述

KEY_ONLY

Red Hat Single Sign-On 忽略域名并使用 vault 表达式中的密钥。

REALM_UNDERSCORE_KEY

红帽单点登录结合了域和密钥,使用下划线字符。Red Hat Single Sign-On 在 realm 或 key 中又带有另一个下划线的下划线进行转义。例如,如果 realm 名为 master_realm,并且密钥是 smtp_key,则组合键是 master__realm_smtp_key

REALM_FILESEPARATOR_KEY

红帽单点登录结合了域和密钥,方法是使用平台文件分隔符字符。

如果您还没有为内置提供程序配置解析器,Red Hat Single Sign-On 选择 REALM_UNDERSCORE_KEY