【问题标题】:Using VaultTemplate with username and password使用带有用户名和密码的 VaultTemplate
【发布时间】:2019-07-30 13:26:24
【问题描述】:

我正在关注 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 登录时?:

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

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

【问题讨论】:

  • spring-vault 似乎没有实现用户/密码验证。你最好的办法是自己实现 ClientAuthentication 并调用 Vault API,或者找一个做过的人。另外我不知道你在解决什么问题,但如果它只是一个应用程序,AppRole 身份验证应该是要走的路。

标签: java hashicorp-vault spring-vault


【解决方案1】:

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

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

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

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

HTH。

【讨论】:

    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    相关资源
    最近更新 更多