使 API 密钥失效 API编辑

使一个或多个 API 密钥失效。

请求编辑

DELETE /_security/api_key

先决条件编辑

  • 要使用此 API,您至少需要 manage_securitymanage_api_keymanage_own_api_key 集群权限。 manage_security 权限允许删除任何 API 密钥,包括 REST 和 跨集群 API 密钥manage_api_key 权限允许删除任何 REST API 密钥,但不包括跨集群 API 密钥。 manage_own_api_key 仅允许删除用户拥有的 REST API 密钥。 此外,使用 manage_own_api_key 权限,失效请求必须以以下三种格式之一发出

    1. 设置参数 owner=true
    2. 或者,将 usernamerealm_name 都设置为与用户的身份匹配。
    3. 或者,如果请求是由 API 密钥发出的,即 API 密钥使自身失效,则在 ids 字段中指定其 ID。

描述编辑

此 API 使由 创建 API 密钥授予 API 密钥 API 创建的 API 密钥失效。 失效的 API 密钥将无法通过身份验证,但仍可以使用 获取 API 密钥信息查询 API 密钥信息 API 查看,至少在 配置的保留期 内,直到它们被自动删除。

请求主体编辑

以下参数可以在 DELETE 请求的主体中指定,并与使 API 密钥失效相关

ids
(可选,字符串数组) API 密钥 ID 列表。 当使用任何 namerealm_nameusername 时,此参数不可使用
name
(可选,字符串) API 密钥名称。 此参数不能与任何 idsrealm_nameusername 一起使用。
realm_name
(可选,字符串) 身份验证域的名称。 此参数不能与 idsname 一起使用,也不能在 owner 标志设置为 true 时使用。
username
(可选,字符串) 用户的用户名。 此参数不能与 idsname 一起使用,也不能在 owner 标志设置为 true 时使用。
owner
(可选,布尔值) 一个布尔值标志,可用于查询当前已认证用户拥有的 API 密钥。 默认值为 false。 当此参数设置为 true 时,不能指定 realm_nameusername 参数,因为它们被假定为当前已认证的参数。

如果 "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"
      }
    }
  ]
}

作为此请求的一部分而失效的 API 密钥的 ID。

已失效的 API 密钥的 ID。

在使 API 密钥失效时遇到的错误数量。

有关这些错误的详细信息。 当 error_count 为 0 时,响应中不会出现此字段。