我正在学习 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)?:
我正在查看此 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/