搜索

第 13 章 使用 vault 获取 secret

download PDF

要从 vault 获取 secret,而不是直接输入它,在适当的字段中输入以下特殊字符串:

**${vault.**_key_**}**

其中,密钥是 密码库识别的机密的名称。

为防止 secret 在域间泄漏,Red Hat Single Sign-On 会将域名与从 vault 表达式获取 的密钥 合并。此方法意味着 密钥 不会直接映射到密码库中的条目,而是根据用于组合键和域名的算法创建最终条目名称。

您可以在以下字段从 vault 获取 secret:

SMTP 密码
在 realm SMTP 设置中
LDAP 绑定凭证
在基于 LDAP 的用户联合的 LDAP 设置中。
OIDC 身份提供程序 secret
在身份提供程序 OpenID Connect Config 中的客户端 Secret

要使用密码库,请在 Red Hat Single Sign-On 中注册 vault 提供程序。您可以使用 此处描述的 供应商或实施您的供应商。如需更多信息,请参阅 服务器开发人员指南

注意

Red Hat Single Sign-On 一次允许每个红帽单点登录实例最多一个活跃的 vault 供应商。在集群中的每个实例中一致地配置 vault 提供程序。

13.1. Kubernetes/ OpenShift 文件纯文本 vault 供应商

红帽单点登录支持 Kubernetes secret 的 vault 实现。您可以将 Kubernetes secret 挂载为数据卷,它们显示为具有无格式文件结构的目录。Red Hat Single Sign-On 代表每个 secret 作为文件,文件名称为 secret 名称,文件的内容作为 secret 值。

您必须将此目录中的文件命名为以 realm 名称和下划线前缀的 secret 名称。在 secret 名称或域名中的域名中加倍所有下划线。例如,对于名为 sso_realm 的域中的字段,名称 secret-name 的 secret 引用将写为 ${vault.secret-name},其文件名查找为 sso_realm_secret-name。请注意域名中的下划线。

要使用这类 secret 存储,您必须在 standalone.xml 文件中声明 files-plaintext vault provider,并为包含挂载卷的目录设置其参数。本例演示了 files-plaintext provider with directory,其中 vault 文件被设置为 standalone/configuration/vault,相对于 Red Hat Single Sign-On 基础目录:

<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/" />
        </properties>
    </provider>
</spi>

以下是使用 CLI 命令的对等配置:

/subsystem=keycloak-server/spi=vault/:add
/subsystem=keycloak-server/spi=vault/provider=files-plaintext/:add(enabled=true,properties={dir => "${jboss.home.dir}/standalone/configuration/vault"})
/subsystem=keycloak-server/spi=vault:write-attribute(name=default-provider,value=files-plaintext)
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.