Обзор


Назначение

ESIA Adapter реализует сервер OpenID Connect для приложений и клиента ЕСИА. Приложение не взаимодействует с ЕСИА напрямую и не работает с криптографией: подпись запросов и проверку токенов ЕСИА выполняет адаптер через КриптоПро CSP 5.0 R3 КС3 (исполнение 3-Base).

Адаптер:

  • принимает запрос аутентификации от OIDC-клиента по Authorization Code Flow, поддерживает PKCE;
  • перенаправляет пользователя в ЕСИА и обрабатывает ответ;
  • подписывает запросы к ЕСИА и проверяет подпись полученных токенов;
  • запрашивает у API ЕСИА данные о пользователе (контакты, организации, документы) и отдаёт их приложению в токене;
  • работает как служба ОС, интерфейса у него нет, всё настраивается файлами и переменными окружения.

Схема работы

  1. OIDC-клиент отправляет запрос аутентификации адаптеру.
  2. Адаптер подписывает запрос через КриптоПро CSP.
  3. Адаптер направляет пользователя в ЕСИА.
  4. ЕСИА возвращает авторизационный код.
  5. Адаптер подписывает запрос токена.
  6. Адаптер меняет код на токены в ЕСИА.
  7. ЕСИА возвращает access_token, refresh_token, id_token.
  8. Адаптер проверяет подпись токена.
  9. Адаптер запрашивает в API ЕСИА данные о пользователе.
  10. ЕСИА возвращает данные.
  11. Адаптер возвращает код клиенту.
  12. Клиент обменивает код на токен.
  13. Адаптер выдаёт клиенту access_token, refresh_token, id_token.

Типовые сценарии

  • Вход сотрудников на корпоративном портале через «Госуслуги» с автоматическим входом в сервисы.
  • Создание локального аккаунта на первом входе по данным профиля (email, ФИО, СНИЛС).
  • Привязка дополнительных данных: список организаций пользователя, документы, данные из Цифрового профиля.
  • Мобильное приложение с PKCE: приложение работает со стандартным OIDC, сложность ЕСИА скрыта адаптером.

Среда функционирования

  • Astra Linux Special Edition РУСБ.10015-17, физический сервер x86-64 (виртуализация не рассматривается).
  • КриптоПро CSP 5.0 R3 КС3 (3-Base); ключи в контейнере на носителе HDIMAGE, облачное хранение ключей запрещено.
  • Другого ПО не требуется.

Состав поставки

esia-adapter_linux_amd64 (исполняемый файл), genguids (генератор идентификаторов), примеры конфигурации для API ЕСИА v1, v2 и v2 с PKCE, clients.example.json, открытый ключ public_key.gpg для проверки подписи файлов, контрольные суммы, README и Руководство администратора.

Адаптер поставляется как опция к FAM и WSSO и в составе ПАК ЕСИА.

Обсуждение