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 准备身份验证 API 和 OpenID 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" }