java - 使用带有用户名和密码的 VaultTemplate

标签 java hashicorp-vault spring-vault

我正在学习 Spring Vault 教程 https://docs.spring.io/spring-vault/docs/current/reference/html/index.html我已经通过 token 访问成功将Java程序与Vault连接起来。在下图中,选项卡编号 1。

VaultTemplateVaultTemplate = 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、使用用户名+密码而不是 token 连接 Vault?或者至少,我需要一个关于如何使用用户名+密码生成 token 的指针

最佳答案

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

身份验证取决于您的威胁模型以及您可以/希望如何解决凭据被破坏的情况。使用用户名/密码,您基本上需要锁定被破坏帐户的用户。这是不幸的,因为这些帐户往往与人相关联,并且您会锁定运算符(operator)。

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

介于两者之间的任何事情都是对潜在违规的 react 和运营工作量之间的折衷。

HTH。

关于java - 使用带有用户名和密码的 VaultTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55064466/

相关文章:

java - 构造函数问题: Actual and formal list differ in length

java - Java 有 "visual debugger"吗?

hashicorp-vault - 在 Hashicorp Vault 中,如何防止 "userpass"用户更改彼此的策略和密码?

spring - 由 : java. lang.IllegalArgumentException : Token (spring. cloud.vault.token 引起)不能为空 - Hashicorp Vault

java - 如何删除链表中特定索引处的对象?

java - 不能从静态上下文中引用非静态方法

hashicorp-vault - 带有通配符的保管库策略路径

nginx - 如何在Kubernetes中为HashiCorp Vault UI设置入口

spring-boot - Spring Vault Hashicorp 和 Cyber​​ark 集成

azure-keyvault - Vault .NET - 版本化 K/V secret 引擎的无效路径