第 7 章 Vault SPI
7.1. Vault 供应商
您可以使用来自 org.keycloak.vault
软件包的 vault SPI 为红帽构建的 Keycloak 编写自定义扩展,以连接到任意 vault 实现。
内置文件纯文本
提供程序是此 SPI 的实现示例。通常应用以下规则:
-
要防止机密在域间泄漏,您可能需要隔离或限制域可以检索的 secret。在这种情况下,您的供应商在查找 secret 时应考虑 realm 名称,例如,使用 realm name 前缀。例如,一个表达式
${vault.key}
会根据域 A 或 realm B 中使用的不同条目名称进行评估。要区分域,需要将域从VaultProvider
Factory.create ()KeycloakSession
参数获取。 -
vault 供应商需要实施单一方法 get
Secret
,该方法为给定 secret 名称返回VaultRawSecret
。该类以byte[]
或ByteBuffer
形式包含 secret 的表示,并期望根据需要在两者之间进行转换。请注意,在使用后将丢弃此缓冲区,如下所述。
有关如何打包和部署自定义提供程序的详情,请参考 服务提供商接口 章节。