将VaultTemplate与用户名和密码一起使用

时间:2019-03-08 13:42:22

标签: java hashicorp-vault spring-vault

我正在关注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,例如当我们通过该选项通过Vault WebUI登录时(选项卡编号2)? enter image description here

我正在查看此JavaDoc,但选择哪一个并不明显: https://docs.spring.io/spring-vault/docs/current/api/index.html?overview-summary.html

因此,换句话说:如何使用spring-vault,用户名和密码(而不是令牌)与Vault连接?或者至少,我需要一个有关如何使用用户名+密码生成令牌的指针

1 个答案:

答案 0 :(得分:1)

如@ h3rmanj所示,Spring Vault不支持用户名/密码身份验证,因为此方法用于人工身份验证,而不是机器对机器身份验证。

身份验证取决于您的威胁模型以及在出现违规情况时如何/希望如何利用凭据。使用用户名/密码,您基本上需要锁定帐户遭到破坏的用户。不幸的是,由于这些帐户往往与人相关联,因此您将锁定操作员。

如果使用AppRole,则有两个因素,您可以按应用程序类型隔离帐户。如果您不要在多个应用程序中重复使用令牌,则使用令牌可以为您带来最大的灵活性。重用很方便,但是如果遇到违反行为,则必须使共享相同令牌的所有应用程序脱机。因此,分配单个令牌具有最高的灵活性和最高的运营开销。

介于两者之间的是对潜在违规行为的反应与操作工作量之间的折衷。

HTH。