API подготовки аутентификации OpenID Connect
Создаёт запрос аутентификации 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