管理 REST API 上的身份验证

管理 REST API 上的身份验证

情况是,我想管理验证在不同环境中部署的几个 REST API 中。

我一直在阅读保险库,显然,它有这个功能。

使用 Vault,我的应用程序是否只需要向 Vault 发出请求,然后仅使用别名就可以对外部 API(正确配置)进行身份验证?无需在我的应用程序中存储外部 API 的用户/密码/令牌?

我想知道是否有人以这种方式使用过 Vault,以及其优缺点是什么

或者如果有人推荐其他方法来实现这一目标

更新:

我找到了一个我正在寻找的问题 https://stackoverflow.com/questions/57703943/how-to-allow-single-sign-on-for-al-clients-in-keycloak

答案1

Vault 可以验证其服务的客户端身份。它还可以将身份验证委托给其服务,例如 GitHub 或某些 OpenID 连接提供商。

但无论你选择什么方法/协议,模式总是客户端向 Vault 进行身份验证,而不是您的 REST API。

Keycloak 更符合您的要求,因为它是一个通用的身份提供者。

你正在寻找的模式是这样的:

  1. API 客户端向身份提供商进行身份验证
  2. 他们会得到“一些东西”作为回报,通常是签名的 JSON Web Token (JWT)
  3. 他们在 REST API 调用的授权 http 标头中发送 JWT
  4. 无论哪个 REST API 收到请求,都会使用身份提供者的公钥验证 JWT 签名

相关内容