第 8 章 Vault SPI
8.1. Vault 供应商
您可以使用 org.keycloak.vault
软件包中的 vault SPI 编写 Red Hat Single Sign-On 的自定义扩展来连接到任意 vault 实施。
内置文件说明文本
提供程序是实施此 SPI 的示例。通常适用以下规则:
-
要防止机密在域间泄漏,您可能需要隔离或限制可由域检索的机密。在这种情况下,您的供应商在查找 secret 时应该考虑域名,例如,为带有 realm 名称的条目添加前缀。例如,表达式
${vault.key}
将按照在域 A 还是 realm B 中使用的,则通常会评估为不同的条目名称。为了区分域,域需要传递到创建的VaultProvider
实例(从KeycloakSession
参数获取的VaultProviderFactory.create ()
方法)。 -
vault 提供程序需要实施单一方法 get
Secret
,该方法为给定的 secret 名称返回VaultRawSecret
。该类包含 secret 的表示,可以是byte[]
或ByteBuffer
,它应该在两个需求之间转换。请注意,此缓冲区将在使用后丢弃,具体如下方所述。
有关如何打包和部署自定义提供程序的详情,请参考 Service Provider Interfaces 章节。