API аннулирования токена
Аннулирует один или несколько токенов доступа или токенов обновления.
Запрос
DELETE /_security/oauth2/token
Описание
Токены доступа, возвращаемые API получения токена, имеют ограниченный срок действия, после которого они больше не могут использоваться. Этот срок действия определяется настройкой xpack.security.authc.token.timeout. Дополнительную информацию см. в разделе Настройки службы токенов.
Токены обновления, возвращаемые API получения токена, действительны только в течение 24 часов. Они также могут быть использованы только один раз.
Если необходимо немедленно аннулировать один или несколько токенов доступа или обновления, используйте этот API аннулирования токена.
Тело запроса
В теле запроса DELETE можно указать следующие параметры, относящиеся к аннулированию токенов:
-
token - (Необязательный, строка) Токен доступа. Этот параметр не может использоваться, если используются любые из
refresh_token,realm_nameилиusername. -
refresh_token - (Необязательный, строка) Токен обновления. Этот параметр не может использоваться, если используются любые из
refresh_token,realm_nameилиusername. -
realm_name - (Необязательный, строка) Название области аутентификации. Этот параметр не может использоваться с
refresh_tokenилиtoken. -
username - (Необязательный, строка) Имя пользователя. Этот параметр не может использоваться с
refresh_tokenилиtoken.
Хотя все параметры необязательны, требуется как минимум один из них. Более конкретно, требуется один из параметров token или refresh_token. Если ни один из этих двух параметров не указан, необходимо указать realm_name и/или username.
Тело ответа
Успешный вызов возвращает JSON-структуру, содержащую количество аннулированных токенов, количество уже аннулированных токенов и, возможно, список ошибок, возникших при аннулировании определённых токенов.
Примеры
Например, если вы создаёте токен с типом client_credentials следующим образом:
POST /_security/oauth2/token
{
"grant_type" : "client_credentials"
} API получения токена возвращает следующую информацию о токене доступа:
{
"access_token" : "dGhpcyBpcyBub3QgYSByZWFsIHRva2VuIGJ1dCBpdCBpcyBvbmx5IHRlc3QgZGF0YS4gZG8gbm90IHRyeSB0byByZWFkIHRva2VuIQ==",
"type" : "Bearer",
"expires_in" : 1200,
"authentication" : {
"username" : "test_admin",
"roles" : [
"superuser"
],
"full_name" : null,
"email" : null,
"metadata" : { },
"enabled" : true,
"authentication_realm" : {
"name" : "file",
"type" : "file"
},
"lookup_realm" : {
"name" : "file",
"type" : "file"
},
"authentication_type" : "realm"
}
} Этот токен доступа теперь можно немедленно аннулировать, как показано в следующем примере:
DELETE /_security/oauth2/token
{
"token" : "dGhpcyBpcyBub3QgYSByZWFsIHRva2VuIGJ1dCBpdCBpcyBvbmx5IHRlc3QgZGF0YS4gZG8gbm90IHRyeSB0byByZWFkIHRva2VuIQ=="
} Если вы использовали тип password для получения токена для пользователя, ответ также может содержать токен обновления. Например:
POST /_security/oauth2/token
{
"grant_type" : "password",
"username" : "test_admin",
"password" : "x-pack-test-password"
} API получения токена возвращает следующую информацию:
{
"access_token" : "dGhpcyBpcyBub3QgYSByZWFsIHRva2VuIGJ1dCBpdCBpcyBvbmx5IHRlc3QgZGF0YS4gZG8gbm90IHRyeSB0byByZWFkIHRva2VuIQ==",
"type" : "Bearer",
"expires_in" : 1200,
"refresh_token": "vLBPvmAB6KvwvJZr27cS",
"authentication" : {
"username" : "test_admin",
"roles" : [
"superuser"
],
"full_name" : null,
"email" : null,
"metadata" : { },
"enabled" : true,
"authentication_realm" : {
"name" : "file",
"type" : "file"
},
"lookup_realm" : {
"name" : "file",
"type" : "file"
},
"authentication_type" : "realm"
}
} Токен обновления также можно немедленно аннулировать, как показано в следующем примере:
DELETE /_security/oauth2/token
{
"refresh_token" : "vLBPvmAB6KvwvJZr27cS"
} Следующий пример аннулирует все токены доступа и обновления для области saml1 немедленно:
DELETE /_security/oauth2/token
{
"realm_name" : "saml1"
} Следующий пример аннулирует все токены доступа и обновления для пользователя myuser во всех областях немедленно:
DELETE /_security/oauth2/token
{
"username" : "myuser"
} Наконец, следующий пример аннулирует все токены доступа и обновления для пользователя myuser в области saml1 немедленно:
DELETE /_security/oauth2/token
{
"username" : "myuser",
"realm_name" : "saml1"
} {
"invalidated_tokens":9,
"previously_invalidated_tokens":15,
"error_count":2,
"error_details":[
{
"type":"exception",
"reason":"Elasticsearch exception [type=exception, reason=foo]",
"caused_by":{
"type":"exception",
"reason":"Elasticsearch exception [type=illegal_argument_exception, reason=bar]"
}
},
{
"type":"exception",
"reason":"Elasticsearch exception [type=exception, reason=boo]",
"caused_by":{
"type":"exception",
"reason":"Elasticsearch exception [type=illegal_argument_exception, reason=far]"
}
}
]
} | Количество токенов, которые были аннулированы в рамках этого запроса. | |
| Количество токенов, которые уже были аннулированы. | |
| Количество ошибок, возникших при аннулировании токенов. | |
| Подробная информация об этих ошибках. Это поле отсутствует в ответе, когда |
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-api-invalidate-token.html