使用带用户名和密码的 VaultTemplate

Using VaultTemplate with username and password

我正在学习 Spring Vault 教程 https://docs.spring.io/spring-vault/docs/current/reference/html/index.html,并且我已经通过令牌访问成功地将 Java 程序与 Vault 连接起来。在下图中,标签号 1.

VaultTemplate vaultTemplate = new VaultTemplate(endpoint, new TokenAuthentication("MySecretToken"));

如何使用用户名和密码实例化 VaultTemplate,例如当我们在此选项(选项卡编号 2)中通过 Vault WebUI 登录时?:

我正在看这个 Java文档,但不清楚该选择哪一个: https://docs.spring.io/spring-vault/docs/current/api/index.html?overview-summary.html

所以换句话说:如何使用 spring-vault 连接 Vault,使用用户名+密码而不是令牌?或者至少,我需要一个关于如何使用用户名+密码

生成令牌的指针

正如@h3rmanj 指出的那样,Spring Vault 不支持username/password 身份验证,因为此方法适用于人工身份验证,而不是机器对机器身份验证。

身份验证取决于您的威胁模型以及您can/want如何解决在发生违规时利用凭据的问题。使用 username/password,您基本上需要锁定被破坏帐户的用户。这很不幸,因为这些帐户往往与人相关联,您会锁定操作员。

如果您使用 AppRole,您会得到两个因素,并且您可以按应用程序类型隔离帐户。如果您不在多个应用程序中重复使用令牌,则使用令牌可为您提供最大的灵活性。重用很方便,但如果遇到漏洞,则必须使所有共享同一令牌的应用程序脱机。因此,分配单个令牌具有最高的灵活性和最高的操作开销。

介于两者之间的任何东西都是对潜在违规行为的反应与运营工作量之间的折衷。

HTH.