使 API 密钥失效 API
编辑使 API 密钥失效 API编辑
使一个或多个 API 密钥失效。
请求编辑
DELETE /_security/api_key
先决条件编辑
-
要使用此 API,您至少需要
manage_security
、manage_api_key
或manage_own_api_key
集群权限。manage_security
权限允许删除任何 API 密钥,包括 REST 和 跨集群 API 密钥。manage_api_key
权限允许删除任何 REST API 密钥,但不包括跨集群 API 密钥。manage_own_api_key
仅允许删除用户拥有的 REST API 密钥。 此外,使用manage_own_api_key
权限,失效请求必须以以下三种格式之一发出- 设置参数
owner=true
- 或者,将
username
和realm_name
都设置为与用户的身份匹配。 - 或者,如果请求是由 API 密钥发出的,即 API 密钥使自身失效,则在
ids
字段中指定其 ID。
- 设置参数
描述编辑
此 API 使由 创建 API 密钥 或 授予 API 密钥 API 创建的 API 密钥失效。 失效的 API 密钥将无法通过身份验证,但仍可以使用 获取 API 密钥信息 和 查询 API 密钥信息 API 查看,至少在 配置的保留期 内,直到它们被自动删除。
请求主体编辑
以下参数可以在 DELETE 请求的主体中指定,并与使 API 密钥失效相关
-
ids
- (可选,字符串数组) API 密钥 ID 列表。 当使用任何
name
、realm_name
、username
时,此参数不可使用 -
name
- (可选,字符串) API 密钥名称。 此参数不能与任何
ids
、realm_name
或username
一起使用。 -
realm_name
- (可选,字符串) 身份验证域的名称。 此参数不能与
ids
或name
一起使用,也不能在owner
标志设置为true
时使用。 -
username
- (可选,字符串) 用户的用户名。 此参数不能与
ids
或name
一起使用,也不能在owner
标志设置为true
时使用。 -
owner
- (可选,布尔值) 一个布尔值标志,可用于查询当前已认证用户拥有的 API 密钥。 默认值为 false。 当此参数设置为 true 时,不能指定 realm_name 或 username 参数,因为它们被假定为当前已认证的参数。
如果 "owner" 为 "false"(默认值),则必须指定 "ids"、"name"、"username" 和 "realm_name" 中的至少一个。
响应主体编辑
成功的调用将返回一个 JSON 结构,其中包含已失效的 API 密钥的 ID、已失效的 API 密钥的 ID,以及可能在使特定 API 密钥失效时遇到的错误列表。
示例编辑
如果您创建 API 密钥如下
POST /_security/api_key { "name": "my-api-key" }
成功的调用将返回一个 JSON 结构,其中提供 API 密钥信息。 例如
{ "id": "VuaCfGcBCdbkQm-e5aOx", "name": "my-api-key", "api_key": "ui2lp2axTNmsyakw9tvNnw", "encoded": "VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw==" }
以下示例立即使由指定 ids
标识的 API 密钥失效
DELETE /_security/api_key { "ids" : [ "VuaCfGcBCdbkQm-e5aOx" ] }
以下示例立即使由指定 name
标识的 API 密钥失效
DELETE /_security/api_key { "name" : "my-api-key" }
以下示例立即使 native1
域的所有 API 密钥失效
DELETE /_security/api_key { "realm_name" : "native1" }
以下示例立即使所有域中用户 myuser
的所有 API 密钥失效
DELETE /_security/api_key { "username" : "myuser" }
以下示例立即使由指定 ids
标识的 API 密钥失效,前提是它由当前已认证的用户拥有
DELETE /_security/api_key { "ids" : ["VuaCfGcBCdbkQm-e5aOx"], "owner" : "true" }
以下示例立即使当前已认证用户拥有的所有 API 密钥失效
DELETE /_security/api_key { "owner" : "true" }
最后,以下示例立即使 native1
域中用户 myuser
的所有 API 密钥失效
DELETE /_security/api_key { "username" : "myuser", "realm_name" : "native1" }
{ "invalidated_api_keys": [ "api-key-id-1" ], "previously_invalidated_api_keys": [ "api-key-id-2", "api-key-id-3" ], "error_count": 2, "error_details": [ { "type": "exception", "reason": "error occurred while invalidating api keys", "caused_by": { "type": "illegal_argument_exception", "reason": "invalid api key id" } }, { "type": "exception", "reason": "error occurred while invalidating api keys", "caused_by": { "type": "illegal_argument_exception", "reason": "invalid api key id" } } ] }