APIキーの無効化API
1つ以上のAPIキーを無効化します。
リクエスト
DELETE /_security/api_key
前提条件
- このAPIを使用するには、少なくとも
manage_security
、manage_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
を設定 - または、
username
とrealm_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のリスト。このパラメータは、
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パラメータは指定できません。現在認証されているものと見なされます。
「ids」、「name」、「username」、「realm_name」のいずれかを指定する必要があります。これは「owner」が「false」(デフォルト)の場合です。
レスポンスボディ
成功した呼び出しは、無効化されたAPIキーのID、すでに無効化されたAPIキーのID、および特定のAPIキーを無効化する際に遭遇した可能性のあるエラーのリストを含むJSON構造を返します。
例
次のようにAPIキーを作成した場合:
Python
resp = client.security.create_api_key(
name="my-api-key",
)
print(resp)
Js
const response = await client.security.createApiKey({
name: "my-api-key",
});
console.log(response);
コンソール
POST /_security/api_key
{
"name": "my-api-key"
}
成功した呼び出しは、APIキー情報を提供するJSON構造を返します。例えば:
コンソール-結果
{
"id": "VuaCfGcBCdbkQm-e5aOx",
"name": "my-api-key",
"api_key": "ui2lp2axTNmsyakw9tvNnw",
"encoded": "VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw=="
}
次の例は、指定されたids
によって識別されるAPIキーを即座に無効化します:
Python
resp = client.security.invalidate_api_key(
ids=[
"VuaCfGcBCdbkQm-e5aOx"
],
)
print(resp)
Js
const response = await client.security.invalidateApiKey({
ids: ["VuaCfGcBCdbkQm-e5aOx"],
});
console.log(response);
コンソール
DELETE /_security/api_key
{
"ids" : [ "VuaCfGcBCdbkQm-e5aOx" ]
}
次の例は、指定されたname
によって識別されるAPIキーを即座に無効化します:
Python
resp = client.security.invalidate_api_key(
name="my-api-key",
)
print(resp)
Js
const response = await client.security.invalidateApiKey({
name: "my-api-key",
});
console.log(response);
コンソール
DELETE /_security/api_key
{
"name" : "my-api-key"
}
次の例は、native1
レルムのすべてのAPIキーを即座に無効化します:
Python
resp = client.security.invalidate_api_key(
realm_name="native1",
)
print(resp)
Js
const response = await client.security.invalidateApiKey({
realm_name: "native1",
});
console.log(response);
コンソール
DELETE /_security/api_key
{
"realm_name" : "native1"
}
次の例は、すべてのレルムでユーザーmyuser
のすべてのAPIキーを即座に無効化します:
Python
resp = client.security.invalidate_api_key(
username="myuser",
)
print(resp)
Js
const response = await client.security.invalidateApiKey({
username: "myuser",
});
console.log(response);
コンソール
DELETE /_security/api_key
{
"username" : "myuser"
}
次の例は、現在認証されているユーザーが所有している場合、指定されたids
によって識別されるAPIキーを即座に無効化します:
Python
resp = client.security.invalidate_api_key(
ids=[
"VuaCfGcBCdbkQm-e5aOx"
],
owner=True,
)
print(resp)
Js
const response = await client.security.invalidateApiKey({
ids: ["VuaCfGcBCdbkQm-e5aOx"],
owner: "true",
});
console.log(response);
コンソール
DELETE /_security/api_key
{
"ids" : ["VuaCfGcBCdbkQm-e5aOx"],
"owner" : "true"
}
次の例は、現在認証されているユーザーが所有するすべてのAPIキーを即座に無効化します:
Python
resp = client.security.invalidate_api_key(
owner=True,
)
print(resp)
Js
const response = await client.security.invalidateApiKey({
owner: "true",
});
console.log(response);
コンソール
DELETE /_security/api_key
{
"owner" : "true"
}
最後に、次の例は、myuser
ユーザーのnative1
レルムのすべてのAPIキーを即座に無効化します:
Python
resp = client.security.invalidate_api_key(
username="myuser",
realm_name="native1",
)
print(resp)
Js
const response = await client.security.invalidateApiKey({
username: "myuser",
realm_name: "native1",
});
console.log(response);
コンソール
DELETE /_security/api_key
{
"username" : "myuser",
"realm_name" : "native1"
}
Js
{
"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の場合、レスポンスには存在しません。 |