APIキーの無効化API

1つ以上のAPIキーを無効化します。

リクエスト

DELETE /_security/api_key

前提条件

  • このAPIを使用するには、少なくともmanage_securitymanage_api_key、またはmanage_own_api_keyのクラスター権限を持っている必要があります。manage_securityの権限は、RESTおよびcross cluster API keysを含む任意のAPIキーを削除することを許可します。manage_api_keyの権限は、任意のREST APIキーを削除することを許可しますが、cross cluster API keysは削除できません。manage_own_api_keyは、ユーザーが所有するREST APIキーのみを削除することを許可します。さらに、manage_own_api_keyの権限を持つ場合、無効化リクエストは次の3つの形式のいずれかで発行する必要があります:
    hebin-ul-start
    • パラメータowner=trueを設定
    • または、usernamerealm_nameの両方を設定してユーザーのアイデンティティに一致させます。
    • または、リクエストがAPIキーによって発行された場合、つまりAPIキーが自分自身を無効化する場合は、idsフィールドにそのIDを指定します。
      hebin-ul-end

説明

このAPIは、create API keyまたはgrant API key APIによって作成されたAPIキーを無効化します。無効化されたAPIキーは認証に失敗しますが、get API key informationおよびquery API key information APIを使用して、少なくとも設定された保持期間の間は表示できます。自動的に削除されるまで。

リクエストボディ

次のパラメータは、DELETEリクエストのボディに指定でき、APIキーの無効化に関連しています:

  • ids
  • (オプション、文字列の配列)APIキーIDのリスト。このパラメータは、namerealm_nameusernameのいずれかが使用されている場合には使用できません。
  • name
  • (オプション、文字列)APIキー名。このパラメータは、idsrealm_name、またはusernameのいずれかが使用されている場合には使用できません。
  • realm_name
  • (オプション、文字列)認証レルムの名前。このパラメータは、idsまたはnameのいずれかが使用されている場合、またはownerフラグがtrueに設定されている場合には使用できません。
  • username
  • (オプション、文字列)ユーザーのユーザー名。このパラメータは、idsまたはnameのいずれかが使用されている場合、またはownerフラグがtrueに設定されている場合には使用できません。
  • owner
  • (オプション、ブール値)現在認証されているユーザーが所有するAPIキーをクエリするために使用できるブールフラグ。デフォルトはfalseです。このパラメータがtrueに設定されている場合、realm_nameまたはusernameパラメータは指定できません。現在認証されているものと見なされます。

「ids」、「name」、「username」、「realm_name」のいずれかを指定する必要があります。これは「owner」が「false」(デフォルト)の場合です。

レスポンスボディ

成功した呼び出しは、無効化されたAPIキーのID、すでに無効化されたAPIキーのID、および特定のAPIキーを無効化する際に遭遇した可能性のあるエラーのリストを含むJSON構造を返します。

次のようにAPIキーを作成した場合:

Python

  1. resp = client.security.create_api_key(
  2. name="my-api-key",
  3. )
  4. print(resp)

Js

  1. const response = await client.security.createApiKey({
  2. name: "my-api-key",
  3. });
  4. console.log(response);

コンソール

  1. POST /_security/api_key
  2. {
  3. "name": "my-api-key"
  4. }

成功した呼び出しは、APIキー情報を提供するJSON構造を返します。例えば:

コンソール-結果

  1. {
  2. "id": "VuaCfGcBCdbkQm-e5aOx",
  3. "name": "my-api-key",
  4. "api_key": "ui2lp2axTNmsyakw9tvNnw",
  5. "encoded": "VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw=="
  6. }

次の例は、指定されたidsによって識別されるAPIキーを即座に無効化します:

Python

  1. resp = client.security.invalidate_api_key(
  2. ids=[
  3. "VuaCfGcBCdbkQm-e5aOx"
  4. ],
  5. )
  6. print(resp)

Js

  1. const response = await client.security.invalidateApiKey({
  2. ids: ["VuaCfGcBCdbkQm-e5aOx"],
  3. });
  4. console.log(response);

コンソール

  1. DELETE /_security/api_key
  2. {
  3. "ids" : [ "VuaCfGcBCdbkQm-e5aOx" ]
  4. }

次の例は、指定されたnameによって識別されるAPIキーを即座に無効化します:

Python

  1. resp = client.security.invalidate_api_key(
  2. name="my-api-key",
  3. )
  4. print(resp)

Js

  1. const response = await client.security.invalidateApiKey({
  2. name: "my-api-key",
  3. });
  4. console.log(response);

コンソール

  1. DELETE /_security/api_key
  2. {
  3. "name" : "my-api-key"
  4. }

次の例は、native1レルムのすべてのAPIキーを即座に無効化します:

Python

  1. resp = client.security.invalidate_api_key(
  2. realm_name="native1",
  3. )
  4. print(resp)

Js

  1. const response = await client.security.invalidateApiKey({
  2. realm_name: "native1",
  3. });
  4. console.log(response);

コンソール

  1. DELETE /_security/api_key
  2. {
  3. "realm_name" : "native1"
  4. }

次の例は、すべてのレルムでユーザーmyuserのすべてのAPIキーを即座に無効化します:

Python

  1. resp = client.security.invalidate_api_key(
  2. username="myuser",
  3. )
  4. print(resp)

Js

  1. const response = await client.security.invalidateApiKey({
  2. username: "myuser",
  3. });
  4. console.log(response);

コンソール

  1. DELETE /_security/api_key
  2. {
  3. "username" : "myuser"
  4. }

次の例は、現在認証されているユーザーが所有している場合、指定されたidsによって識別されるAPIキーを即座に無効化します:

Python

  1. resp = client.security.invalidate_api_key(
  2. ids=[
  3. "VuaCfGcBCdbkQm-e5aOx"
  4. ],
  5. owner=True,
  6. )
  7. print(resp)

Js

  1. const response = await client.security.invalidateApiKey({
  2. ids: ["VuaCfGcBCdbkQm-e5aOx"],
  3. owner: "true",
  4. });
  5. console.log(response);

コンソール

  1. DELETE /_security/api_key
  2. {
  3. "ids" : ["VuaCfGcBCdbkQm-e5aOx"],
  4. "owner" : "true"
  5. }

次の例は、現在認証されているユーザーが所有するすべてのAPIキーを即座に無効化します:

Python

  1. resp = client.security.invalidate_api_key(
  2. owner=True,
  3. )
  4. print(resp)

Js

  1. const response = await client.security.invalidateApiKey({
  2. owner: "true",
  3. });
  4. console.log(response);

コンソール

  1. DELETE /_security/api_key
  2. {
  3. "owner" : "true"
  4. }

最後に、次の例は、myuserユーザーのnative1レルムのすべてのAPIキーを即座に無効化します:

Python

  1. resp = client.security.invalidate_api_key(
  2. username="myuser",
  3. realm_name="native1",
  4. )
  5. print(resp)

Js

  1. const response = await client.security.invalidateApiKey({
  2. username: "myuser",
  3. realm_name: "native1",
  4. });
  5. console.log(response);

コンソール

  1. DELETE /_security/api_key
  2. {
  3. "username" : "myuser",
  4. "realm_name" : "native1"
  5. }

Js

  1. {
  2. "invalidated_api_keys": [
  3. "api-key-id-1"
  4. ],
  5. "previously_invalidated_api_keys": [
  6. "api-key-id-2",
  7. "api-key-id-3"
  8. ],
  9. "error_count": 2,
  10. "error_details": [
  11. {
  12. "type": "exception",
  13. "reason": "error occurred while invalidating api keys",
  14. "caused_by": {
  15. "type": "illegal_argument_exception",
  16. "reason": "invalid api key id"
  17. }
  18. },
  19. {
  20. "type": "exception",
  21. "reason": "error occurred while invalidating api keys",
  22. "caused_by": {
  23. "type": "illegal_argument_exception",
  24. "reason": "invalid api key id"
  25. }
  26. }
  27. ]
  28. }
このリクエストの一部として無効化されたAPIキーのID。
すでに無効化されたAPIキーのID。
APIキーを無効化する際に遭遇したエラーの数。
これらのエラーに関する詳細。このフィールドは、error_countが0の場合、レスポンスには存在しません。