Эндпоинты адаптера
| Эндпоинт | Назначение |
|---|---|
/oauth2/authorize | запрос аутентификации |
/oauth2/token | запрос токена |
/oauth2/logout | выход |
/oauth2/userinfo | JSON с данными пользователя (для старых клиентов) |
/extidp/esia | перенаправление в ЕСИА |
/extidp/esia/callback | приём перенаправления от ЕСИА |
/extidp/esia/logout | перенаправление в ЕСИА для выхода |
/health/live, /health/ready | проверки состояния |
Маршруты /extidp/esia, /extidp/esia/callback и /extidp/esia/logout соответствуют значению synonym, равному esia.
Способы аутентификации и выхода
Аутентификация
- Authorization code с PKCE:
code_challengeиcode_challenge_methodпередаются в/oauth2/authorize,code_verifier— в/oauth2/token. - Authorization code с
client_secret: клиент использует секрет изclients.json.
Выход
- По
sid— завершается сессия адаптера и выполняется перенаправление в ЕСИА для завершения сессии ЕСИА. - По
id_token_hint— завершается сессия поid_token, перенаправление в ЕСИА не выполняется.
Структура id_token
{
"iss": "issuer",
"sub": "internal_user_id",
"aud": ["client_id"],
"userinfo": {
"fn": "firstname",
"ln": "lastname",
"mn": "middlename",
"un": "login",
"e": "example@email",
"p": "+79999999999",
"l": "ru",
"xid": "external_id",
"x": { "customAttr1": "attr1 value", "customAttr2": "attr2 value" }
}
}
sub — внутренний идентификатор пользователя адаптера; описание userinfo — в разделе «Атрибуты пользователя» страницы Конфигурация.
Шаги конвейера userInfoPipeline
t | Тип | Данные в d |
|---|---|---|
| 0 | HTTP-запрос (m метод, u адрес, h заголовки) | параметры запроса: query для GET, application/x-www-form-urlencoded для остальных |
| 1 | шаблон Go | ключ → шаблон |
| 2 | JavaScript (до 10 с) | ключ → скрипт |
r — имя переменной, в которую кладётся результат шага; без r значения идут в глобальные переменные процесса.
Функции шаблонов
| Функция | Что делает |
|---|---|
join | склеивает строки |
fail "текст" | прерывает вход с ошибкой |
base64, debase64 | кодирование |
timeFormat | форматирование времени |
emailUsername | часть email до @ |
cryptoSign context данные провайдер | подпись, возвращает байты |
cryptoVerify, cryptoVerifyJWT | проверка подписи / JWT (пусто — успех, иначе ошибка прерывает вход) |
cryptoHashSum | хеш-сумма в base64 |
cryptoProvider: {name: cprocsp_cms | cprocsp_raw, details: {...}}. Для cprocsp_cms (API ЕСИА v1): sha1Thumbprint, containerPIN. Для cprocsp_raw (API v2): containerName, containerPIN, hashAlg (GOST3411, GOST3411_2012_256, GOST3411_2012_512).
Коды возврата genguids
0 — успех, 1 — ошибка аргумента, 2 — ошибка инициализации КриптоПро, 3 — ошибка генерации случайных чисел.
Сокращения
ЕСИА, СКЗИ, ЗПС, МДЗ, НСД, ЭП, OIDC, PKCE, IdP, JWT, CMS, CRL — по Руководству администратора, раздел 1.