API создания токена учетной записи службы
Создаёт токен учетной записи службы для доступа без необходимости базовой аутентификации.
Запрос
POST /_security/service/<namespace>/<service>/credential/token/<token_name>
PUT /_security/service/<namespace>/<service>/credential/token/<token_name>
POST /_security/service/<namespace>/<service>/credential/token
Предварительные условия
- Для использования этого API у вас должна быть как минимум
manage_service_accountпривилегия кластера.
Описание
Успешный вызов API создания токена учетной записи службы возвращает JSON-структуру, содержащую токен учетной записи службы, его имя и значение секрета.
Токены учетных записей службы никогда не истекают. Необходимо вручную удалить их, если они больше не нужны.
Параметры пути
-
namespace - (Обязательно, строка) Имя пространства имён.
-
service - (Обязательно, строка) Имя службы.
-
token_name -
(Необязательно, строка) Имя токена учетной записи службы. Если опущен, будет сгенерировано случайное имя.
Имена токенов должны быть не менее 1 и не более 256 символов. Они могут содержать буквенно-цифровые символы (
a-z,A-Z,0-9), дефисы (-) и символы подчеркивания (_), но не могут начинаться с символа подчеркивания.Имена токенов должны быть уникальными в контексте связанной учетной записи службы. Они также должны быть уникальными по всему пространству имён, состоящему из имени учетной записи службы и имени токена, например,
<namespace>/<service>/<token-name>.
Примеры
Следующий запрос создаёт токен учетной записи службы:
resp = client.security.create_service_token(
namespace="elastic",
service="fleet-server",
name="token1",
)
print(resp) const response = await client.security.createServiceToken({
namespace: "elastic",
service: "fleet-server",
name: "token1",
});
console.log(response); POST /_security/service/elastic/fleet-server/credential/token/token1
Ответ включает токен учетной записи службы, его имя и значение секрета:
{
"created": true,
"token": {
"name": "token1",
"value": "AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ"
}
} | Значение секрета для использования как токена-носителя |
Для использования токена учетной записи службы включите сгенерированное значение токена в запрос с заголовком Authorization: Bearer:
curl -H "Authorization: Bearer AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ" http://localhost:9200/_cluster/health
Если на вашем узле параметр xpack.security.http.ssl.enabled установлен на true, то вы должны указать https в URL запроса.
Следующий запрос создает токен службы с автоматически сгенерированным именем токена:
resp = client.security.create_service_token(
namespace="elastic",
service="fleet-server",
)
print(resp) const response = await client.security.createServiceToken({
namespace: "elastic",
service: "fleet-server",
});
console.log(response); POST /_security/service/elastic/fleet-server/credential/token
Ответ включает токен учетной записи службы, его автоматически сгенерированное имя и его значение секрета:
{
"created": true,
"token": {
"name": "Jk5J1HgBuyBK5TpDrdo4",
"value": "AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ"
}
}
© 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/8.17/security-api-create-service-token.html