Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›REST API ›API безопасности

API подготовки аутентификации OpenID Connect

Справочник нового API

Для получения самых последних данных об API обратитесь к API безопасности.

Создаёт запрос аутентификации oAuth 2.0 в виде строки URL на основе конфигурации соответствующего домена аутентификации OpenID Connect в Elasticsearch.

Запрос

POST /_security/oidc/prepare

Описание

Ответ этого API — URL, указывающий на конечную точку авторизации предоставленной конфигурации OpenID Connect, которую можно использовать для перенаправления браузера пользователя для продолжения процесса аутентификации.

Elasticsearch предоставляет всю необходимую функциональность, связанную с OpenID Connect, через API OpenID Connect. Эти API используются внутренне Kibana для обеспечения аутентификации на основе OpenID Connect, но также могут использоваться другими, настраиваемыми веб-приложениями или другими клиентами. См. также API аутентификации OpenID Connect и API выхода OpenID Connect.

Тело запроса

В теле запроса можно указать следующие параметры:

realm
(Необязательно, строка) Название домена OpenID Connect в Elasticsearch, конфигурация которого должна быть использована для генерации запроса на аутентификацию. Не может быть указано, когда указан iss. Требуется один из realm, iss.
state
(Необязательно, строка) Значение, используемое для поддержания состояния между запросом на аутентификацию и ответом, обычно используется для предотвращения поддельных запросов с другого сайта. Если вызывающий API не предоставляет значение, Elasticsearch сгенерирует его с достаточной энтропией и вернёт его в ответе.
nonce
(Необязательно, строка) Значение, используемое для сопоставления сессии клиента с токеном идентификации и для предотвращения атак повторного использования. Если вызывающий API не предоставляет значение, Elasticsearch сгенерирует его с достаточной энтропией и вернёт его в ответе.
iss
(Необязательно, строка) В случае инициирования Single Sign On третьей стороной, это идентификатор издателя OP, которому RP должен отправить запрос на аутентификацию. Не может быть указано, когда указан realm. Требуется один из realm, iss.
login_hint
(Необязательно, строка) В случае инициирования Single Sign On третьей стороной, строковое значение, которое следует включить в запрос на аутентификацию, как параметр login_hint. Этот параметр недействителен, когда указан realm

Примеры

Следующий пример генерирует запрос на аутентификацию для домена OpenID Connect oidc1:

resp = client.security.oidc_prepare_authentication(
    realm="oidc1",
)
print(resp)
const response = await client.transport.request({
  method: "POST",
  path: "/_security/oidc/prepare",
  body: {
    realm: "oidc1",
  },
});
console.log(response);
POST /_security/oidc/prepare
{
  "realm" : "oidc1"
}

Следующий пример ответа содержит URI, указывающий на конечную точку авторизации поставщика OpenID Connect со всеми параметрами запроса на аутентификацию в качестве параметров HTTP GET:

{
  "redirect" : "http://127.0.0.1:8080/c2id-login?scope=openid&response_type=id_token&redirect_uri=https%3A%2F%2Fmy.fantastic.rp%2Fcb&state=4dbrihtIAt3wBTwo6DxK-vdk-sSyDBV8Yf0AjdkdT5I&nonce=WaBPH0KqPVdG5HHdSxPRjfoZbXMCicm5v1OiAj0DUFM&client_id=elasticsearch-rp",
  "state" : "4dbrihtIAt3wBTwo6DxK-vdk-sSyDBV8Yf0AjdkdT5I",
  "nonce" : "WaBPH0KqPVdG5HHdSxPRjfoZbXMCicm5v1OiAj0DUFM",
  "realm" : "oidc1"
}

Следующий пример генерирует запрос на аутентификацию для домена OpenID Connect oidc1, где значения для состояния и nonce были сгенерированы клиентом:

resp = client.security.oidc_prepare_authentication(
    realm="oidc1",
    state="lGYK0EcSLjqH6pkT5EVZjC6eIW5YCGgywj2sxROO",
    nonce="zOBXLJGUooRrbLbQk5YCcyC8AXw3iloynvluYhZ5",
)
print(resp)
const response = await client.transport.request({
  method: "POST",
  path: "/_security/oidc/prepare",
  body: {
    realm: "oidc1",
    state: "lGYK0EcSLjqH6pkT5EVZjC6eIW5YCGgywj2sxROO",
    nonce: "zOBXLJGUooRrbLbQk5YCcyC8AXw3iloynvluYhZ5",
  },
});
console.log(response);
POST /_security/oidc/prepare
{
  "realm" : "oidc1",
  "state" : "lGYK0EcSLjqH6pkT5EVZjC6eIW5YCGgywj2sxROO",
  "nonce" : "zOBXLJGUooRrbLbQk5YCcyC8AXw3iloynvluYhZ5"
}

Следующий пример ответа содержит URI, указывающий на конечную точку авторизации поставщика OpenID Connect со всеми параметрами запроса на аутентификацию в качестве параметров HTTP GET:

{
  "redirect" : "http://127.0.0.1:8080/c2id-login?scope=openid&response_type=id_token&redirect_uri=https%3A%2F%2Fmy.fantastic.rp%2Fcb&state=lGYK0EcSLjqH6pkT5EVZjC6eIW5YCGgywj2sxROO&nonce=zOBXLJGUooRrbLbQk5YCcyC8AXw3iloynvluYhZ5&client_id=elasticsearch-rp",
  "state" : "lGYK0EcSLjqH6pkT5EVZjC6eIW5YCGgywj2sxROO",
  "nonce" : "zOBXLJGUooRrbLbQk5YCcyC8AXw3iloynvluYhZ5",
  "realm" : "oidc1"
}

Следующий пример генерирует запрос на аутентификацию для инициирования Single Sign On третьей стороной, указав издателя, который должен быть использован для сопоставления соответствующего домена аутентификации OpenID Connect:

resp = client.security.oidc_prepare_authentication(
    iss="http://127.0.0.1:8080",
    login_hint="this_is_an_opaque_string",
)
print(resp)
const response = await client.transport.request({
  method: "POST",
  path: "/_security/oidc/prepare",
  body: {
    iss: "http://127.0.0.1:8080",
    login_hint: "this_is_an_opaque_string",
  },
});
console.log(response);
POST /_security/oidc/prepare
{
  "iss" : "http://127.0.0.1:8080",
  "login_hint": "this_is_an_opaque_string"
}

Следующий пример ответа содержит URI, указывающий на конечную точку авторизации поставщика OpenID Connect со всеми параметрами запроса на аутентификацию в качестве параметров HTTP GET:

{
  "redirect" : "http://127.0.0.1:8080/c2id-login?login_hint=this_is_an_opaque_string&scope=openid&response_type=id_token&redirect_uri=https%3A%2F%2Fmy.fantastic.rp%2Fcb&state=4dbrihtIAt3wBTwo6DxK-vdk-sSyDBV8Yf0AjdkdT5I&nonce=WaBPH0KqPVdG5HHdSxPRjfoZbXMCicm5v1OiAj0DUFM&client_id=elasticsearch-rp",
  "state" : "4dbrihtIAt3wBTwo6DxK-vdk-sSyDBV8Yf0AjdkdT5I",
  "nonce" : "WaBPH0KqPVdG5HHdSxPRjfoZbXMCicm5v1OiAj0DUFM",
  "realm" : "oidc1"
}

© 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-prepare-authentication.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API