使用 Okta 进行 Vault 身份验证

Vault authentication with Okta

我们设置了 Vault 集群,我们正在尝试使用 Okta 对 Vault 进行身份验证。已启用身份验证并对其进行配置:

vault auth enable okta
vault write auth/okta/config base_url="BASE_URL" organization="ORG" token="TOKEN"

每当我尝试在 Vault UI 中针对 Okta 进行身份验证时,我都会收到此错误:

Authentication failed: Okta auth failed: HTTP Method: POST - URL: https://org.okta.com/api/v1/authn: - HTTP Status Code: 401, OKTA Error Code: E0000004, OKTA Error Summary: Authentication failed, OKTA Error Causes: []

问题是我们使用 Google 作为 IdP。正在将登录请求发送至 Google。在 Okta 中,我们将 Google 配置为 IDP。

如果我将用户的凭据保存在 Okta 本身中,它就可以工作。那么,当 IDP 为 Google 时,有没有办法通过 Okta 进行身份验证?

我不熟悉 Vault,但在我看来 Vault 正在执行简单的 AuthN 身份验证,基本上只是检查 Username/Password 与 Okta 的对比。

因此,不幸的是,据我所见,您提供的对 Okta 进行社交身份验证然后登录 Vault 的内容可能不受 Vault 支持。

现在,如果您在 Okta 中创建一个本地帐户,并且身份验证有效,那么我们可以确认 Vault 没有正确支持联合(单点登录):(

不幸的是,Vault 需要支持联合才能允许您通过 Google 登录,然后登录到 Vault。

您正在 Vault 中使用 Okta auth method。这只会 post 您针对 Okta 的 AuthN 端点的凭据以验证它们并根据响应授予访问权限。

使用 Google 作为用户在 Okta 中的 IDP,您将需要设置 JWT/OIDC auth method in Vault and configure Vault in Okta。当用户进行身份验证时,他们的浏览器将重定向到 Okta 以完成登录,如果他们还没有会话,这会将他们重定向到 Google 以进行身份​​验证。