OpenID Connect 身份验证 API

编辑

OpenID Connect 身份验证 API编辑

提交对 oAuth 2.0 身份验证请求的响应,供 Elasticsearch 使用。验证成功后,Elasticsearch 将使用 Elasticsearch 内部访问令牌和刷新令牌进行响应,这些令牌随后可用于身份验证。

请求编辑

POST /_security/oidc/authenticate

描述编辑

此 API 端点基本上将成功的 OpenID Connect 身份验证响应交换为 Elasticsearch 访问令牌和刷新令牌,以用于身份验证。

Elasticsearch 通过 OpenID Connect API 公开了所有必要的 OpenID Connect 相关功能。Kibana 在内部使用这些 API 来提供基于 OpenID Connect 的身份验证,但其他自定义 Web 应用程序或其他客户端也可以使用这些 API。另请参阅 OpenID Connect 准备身份验证 APIOpenID Connect 注销 API

请求正文编辑

redirect_uri
(必填,字符串)OpenID Connect 提供程序在成功身份验证后,响应身份验证请求而将用户代理重定向到的 URL。此 URL 预计按原样提供(URL 编码),取自响应正文或 OpenID Connect 提供程序响应中 Location 标头的值。
state
(必填,字符串)用于维护身份验证请求和响应之间的状态。此值需要与之前提供给 /_security/oidc/prepare 调用的值相同,或者与 Elasticsearch 生成并包含在该调用响应中的值相同。
nonce
(必填,字符串)用于将客户端会话与 ID 令牌相关联,并减少重放攻击。此值需要与之前提供给 /_security/oidc/prepare 调用的值相同,或者与 Elasticsearch 生成并包含在该调用响应中的值相同。
realm
(可选,字符串)用于标识应该用于对此进行身份验证的 OpenID Connect 领域的名称。在定义了多个领域时很有用。

示例编辑

以下示例请求将成功身份验证后从 OpenID Connect 提供程序返回的响应交换为 Elasticsearch 访问令牌和刷新令牌,以用于后续请求。此示例来自使用授权代码授权流程的身份验证。

POST /_security/oidc/authenticate
{
  "redirect_uri" : "https://oidc-kibana.elastic.co:5603/api/security/oidc/callback?code=jtI3Ntt8v3_XvcLzCFGq&state=4dbrihtIAt3wBTwo6DxK-vdk-sSyDBV8Yf0AjdkdT5I",
  "state" : "4dbrihtIAt3wBTwo6DxK-vdk-sSyDBV8Yf0AjdkdT5I",
  "nonce" : "WaBPH0KqPVdG5HHdSxPRjfoZbXMCicm5v1OiAj0DUFM",
  "realm" : "oidc1"
}

以下示例输出包含响应中生成的访问令牌、令牌过期时间(以秒为单位)、类型和刷新令牌

{
  "access_token" : "dGhpcyBpcyBub3QgYSByZWFsIHRva2VuIGJ1dCBpdCBpcyBvbmx5IHRlc3QgZGF0YS4gZG8gbm90IHRyeSB0byByZWFkIHRva2VuIQ==",
  "type" : "Bearer",
  "expires_in" : 1200,
  "refresh_token": "vLBPvmAB6KvwvJZr27cS"
}