使 API 密钥失效 API
编辑使 API 密钥失效 API
编辑使一个或多个 API 密钥失效。
请求
编辑DELETE /_security/api_key
先决条件
编辑-
要使用此 API,您必须至少具有
manage_security
、manage_api_key
或manage_own_api_key
集群权限。manage_security
权限允许删除任何 API 密钥,包括 REST API 密钥和跨集群 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 密钥
resp = client.security.create_api_key( name="my-api-key", ) print(resp)
const response = await client.security.createApiKey({ name: "my-api-key", }); console.log(response);
POST /_security/api_key { "name": "my-api-key" }
成功调用会返回一个 JSON 结构,其中提供了 API 密钥信息。例如
{ "id": "VuaCfGcBCdbkQm-e5aOx", "name": "my-api-key", "api_key": "ui2lp2axTNmsyakw9tvNnw", "encoded": "VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw==" }
以下示例会立即失效由指定的 ids
标识的 API 密钥
resp = client.security.invalidate_api_key( ids=[ "VuaCfGcBCdbkQm-e5aOx" ], ) print(resp)
const response = await client.security.invalidateApiKey({ ids: ["VuaCfGcBCdbkQm-e5aOx"], }); console.log(response);
DELETE /_security/api_key { "ids" : [ "VuaCfGcBCdbkQm-e5aOx" ] }
以下示例会立即失效由指定的 name
标识的 API 密钥
resp = client.security.invalidate_api_key( name="my-api-key", ) print(resp)
const response = await client.security.invalidateApiKey({ name: "my-api-key", }); console.log(response);
DELETE /_security/api_key { "name" : "my-api-key" }
以下示例会立即失效 native1
领域的所有 API 密钥
resp = client.security.invalidate_api_key( realm_name="native1", ) print(resp)
const response = await client.security.invalidateApiKey({ realm_name: "native1", }); console.log(response);
DELETE /_security/api_key { "realm_name" : "native1" }
以下示例会立即失效所有领域中用户 myuser
的所有 API 密钥
resp = client.security.invalidate_api_key( username="myuser", ) print(resp)
const response = await client.security.invalidateApiKey({ username: "myuser", }); console.log(response);
DELETE /_security/api_key { "username" : "myuser" }
以下示例会立即失效由指定的 ids
标识的 API 密钥,如果该 API 密钥由当前经过身份验证的用户拥有
resp = client.security.invalidate_api_key( ids=[ "VuaCfGcBCdbkQm-e5aOx" ], owner=True, ) print(resp)
const response = await client.security.invalidateApiKey({ ids: ["VuaCfGcBCdbkQm-e5aOx"], owner: "true", }); console.log(response);
DELETE /_security/api_key { "ids" : ["VuaCfGcBCdbkQm-e5aOx"], "owner" : "true" }
以下示例会立即失效当前经过身份验证的用户拥有的所有 API 密钥
resp = client.security.invalidate_api_key( owner=True, ) print(resp)
const response = await client.security.invalidateApiKey({ owner: "true", }); console.log(response);
DELETE /_security/api_key { "owner" : "true" }
最后,以下示例会立即失效 native1
领域中用户 myuser
的所有 API 密钥
resp = client.security.invalidate_api_key( username="myuser", realm_name="native1", ) print(resp)
const response = await client.security.invalidateApiKey({ username: "myuser", realm_name: "native1", }); console.log(response);
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" } } ] }