Авторизация
Для доступа к конечным точкам (endpoints) API необходимо в заголовке HTTP-запроса Authorization предоставить
билет (ticket) Kerberos.
Чтобы получить билет (ticket) Kerberos, выполните шаги:
-
Убедитесь, что на машине, с которой вы будете выполнять вызов API-методов, настроено окружение для аутентификации Kerberos — установлен и настроен Kerberos-клиент.
-
Получите билет (ticket) Kerberos, используя команду
kinit.kinit -v <имя пользователя>@<имя домена>
Пример команды:
kinit -v vivanov@LCM.TERRA.INNO.TECH
Пример вывода:
Placing tickets for `vivanov@LCM.TERRA.INNO.TECH` in cache `API:AS8FAF0V-AS4S-V39T-T4ZE-12DE34N4N77JA`
-
Для проверки валидности полученного билета (ticket) отобразите список кэшированных билетов (tickets) Kerberos, выполнив команду
klist.Пример вывода:
Credentials cache: API:EC59A7DE-43A4-43E3-A349-56F92E31A71D Principal: aarshavin@LCM.TERRA.INNO.TECH Issued Expires Principal Feb 13 12:51:40 2024 Feb 13 22:51:40 2024 krbtgt/LCM.TERRA.INNO.TECH@LCM.TERRA.INNO.TECH Feb 13 12:51:47 2024 Feb 13 22:51:40 2024 HTTP/staging-lcm.terra.inno.tech@LCM.TERRA.INNO.TECHH
Чтобы подставить значение полученного билета (ticket) в заголовок Authorization при вызове API-метода, используйте утилиту cURL.
Ниже рассмотрен вызов API-метода на примере
getConfigurationList — получение
списка конфигураций:
curl -x POST --location "https://"staging-lcm-terra-inno-tech/api/v1/configurations/search" -Н "Content-type: application/json" --negotiate --user : | jq
Где:
-
curl— утилита командной строки, которая позволяет отправлять HTTP-запросы на сервер и получать ответы; -
-x POST— флаг, указывающий метод запроса, который используется для отправки данных на сервер; -
--location— флаг, указывающийcurlна необходимость следовать перенаправлениям, если сервер возвращает HTTP-код3xx; -
https://staging-rt-terra-inno-tech— URL-адрес сервера, на который будет отправлен запрос; -
-H "Content-type: application/json"— флаг, который добавляет заголовок к запросу. В данном примере заголовокContent-typeустанавливается в значениеapplication/json, что указывает на то, что тело запроса будет передано в формате JSON; -
--negotiate— флаг, указывающий на использование аутентификации по протоколу Kerberos (Negotiate); -
--user :— флаг, который определяет имя пользователя для аутентификации. Двоеточие в сочетании с флагом--negotiateуказываетcurl, что необходимо получить билет (ticket) для указанного хоста от имени данного пользователя и подставить в заголовокAuthorization.
Пример ответа:
{
"configurations": [
{
"id": 5467,
"displayName": "Яндекс браузер",
"description": "Браузер от компании Яндекс",
"fullDescription": "Браузер от компании Яндекс.(...)",
"guide": "Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не показывалось, включите опцию Больше не спрашивать и нажмите Не сейчас.",
"isApplication": true,
"tags": [
"Браузер"
],
"categories": [
"Сеть"
],
"createdAt": "2023-08-27T09:37:40.000Z",
"updatedAt": "2023-08-27T09:37:40.000Z",
"createdBy": "vivanov@domain.local",
"updatedBy": "vivanov@domain.local",
"iconPath": "icons/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office.png",
"imagesPaths": [
"images/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office-screen03.jpg"
],
"defaultVersion": 1234,
"isActive": true
}
],
"meta": {
"totalRecords": 1729,
"pageSize": 20,
"totalPages": 87,
"currentPage": 2,
"hasNext": true,
"hasPrev": true
}
}
|
Если при установке продукта в конфигурационном файле бэкенда |