API аутентификации OpenID Connect
Отправляет ответ на запрос аутентификации oAuth 2.0 для использования в Elasticsearch. При успешной валидации Elasticsearch вернёт внутренний токен доступа и токен обновления Elasticsearch, которые впоследствии можно использовать для аутентификации.
Запрос
POST /_security/oidc/authenticate
Описание
Этот конечный пункт API по существу обменивает успешные ответы аутентификации OpenID Connect на токены доступа и обновления Elasticsearch, которые используются для аутентификации.
Elasticsearch предоставляет всю необходимую функциональность OpenID Connect через API OpenID Connect. Эти API используются внутри Kibana для обеспечения аутентификации на основе OpenID Connect, но также могут использоваться другими пользовательскими веб-приложениями или другими клиентами. Также см. API подготовки аутентификации OpenID Connect и API выхода из системы OpenID Connect
Тело запроса
-
redirect_uri - (Обязательно, строка) URL, на который провайдер OpenID Connect перенаправил агента пользователя в ответ на запрос аутентификации после успешной аутентификации. Этот URL ожидается в исходном виде (URL-кодированном), взятом из тела ответа или в качестве значения заголовка
Locationв ответе от провайдера OpenID Connect. -
state - (Обязательно, строка) Используется для поддержания состояния между запросом на аутентификацию и ответом. Это значение должно быть таким же, как и то, которое было предоставлено вызову
/_security/oidc/prepareранее, или то, которое было сгенерировано Elasticsearch и включено в ответ на этот вызов. -
nonce - (Обязательно, строка) Используется для ассоциации сеанса клиента с токеном идентификации и для предотвращения атак повторного воспроизведения. Это значение должно быть таким же, как и то, которое было предоставлено вызову
/_security/oidc/prepareранее, или то, которое было сгенерировано Elasticsearch и включено в ответ на этот вызов. -
realm - (Необязательно, строка) Используется для идентификации имени области OpenID Connect, которая должна использоваться для аутентификации. Полезно, когда определено несколько областей.
Примеры
В следующем примере запрос обменивает ответ, возвращённый провайдером OpenID Connect после успешной аутентификации, на токен доступа и токен обновления Elasticsearch для использования в последующих запросах. Этот пример взят из аутентификации, использующей поток предоставления кода авторизации.
resp = client.security.oidc_authenticate(
redirect_uri="https://oidc-kibana.elastic.co:5603/api/security/oidc/callback?code=jtI3Ntt8v3_XvcLzCFGq&state=4dbrihtIAt3wBTwo6DxK-vdk-sSyDBV8Yf0AjdkdT5I",
state="4dbrihtIAt3wBTwo6DxK-vdk-sSyDBV8Yf0AjdkdT5I",
nonce="WaBPH0KqPVdG5HHdSxPRjfoZbXMCicm5v1OiAj0DUFM",
realm="oidc1",
)
print(resp) const response = await client.transport.request({
method: "POST",
path: "/_security/oidc/authenticate",
body: {
redirect_uri:
"https://oidc-kibana.elastic.co:5603/api/security/oidc/callback?code=jtI3Ntt8v3_XvcLzCFGq&state=4dbrihtIAt3wBTwo6DxK-vdk-sSyDBV8Yf0AjdkdT5I",
state: "4dbrihtIAt3wBTwo6DxK-vdk-sSyDBV8Yf0AjdkdT5I",
nonce: "WaBPH0KqPVdG5HHdSxPRjfoZbXMCicm5v1OiAj0DUFM",
realm: "oidc1",
},
});
console.log(response); POST /_security/oidc/authenticate
{
"redirect_uri" : "https://oidc-kibana.elastic.co:5603/api/security/oidc/callback?code=jtI3Ntt8v3_XvcLzCFGq&state=4dbrihtIAt3wBTwo6DxK-vdk-sSyDBV8Yf0AjdkdT5I",
"state" : "4dbrihtIAt3wBTwo6DxK-vdk-sSyDBV8Yf0AjdkdT5I",
"nonce" : "WaBPH0KqPVdG5HHdSxPRjfoZbXMCicm5v1OiAj0DUFM",
"realm" : "oidc1"
} Следующий пример вывода содержит токен доступа, который был сгенерирован в ответ, количество времени (в секундах), в течение которого токен истекает, тип и токен обновления:
{
"access_token" : "dGhpcyBpcyBub3QgYSByZWFsIHRva2VuIGJ1dCBpdCBpcyBvbmx5IHRlc3QgZGF0YS4gZG8gbm90IHRyeSB0byByZWFkIHRva2VuIQ==",
"type" : "Bearer",
"expires_in" : 1200,
"refresh_token": "vLBPvmAB6KvwvJZr27cS"
}
© 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-oidc-authenticate.html