ЕСИА-Шлюз
Для использования авторизации ЕСИА в сложных
комплексных информационных системах

Что из себя представляет ЕСИА-Шлюз
ЕСИА-Шлюз представляет собой отдельную систему (stand alone), функционирующую на платформе Ruby on Rails. Сторонние системы и сайты обращаются к Шлюзу с запросами на авторизацию и получение данных по протоколу OAuth 2.0 в связке с OpenID Connect.

Шлюз удобен в случаях, когда планируется организовать авторизацию через ЕСИА для нескольких информационных систем, а также если для этих систем требуется управлять ролями и правами доступа.

Типы организаций, которые могут использовать Шлюз:

  1. Компании разработчики в рамках проектов по интеграции с ЕСИА каких-либо государственных, муниципальных или коммерческих организаций;
  2. Государственные или муниципальные организации для подключения своих сайтов и информационных систем (своими силами или с привлечением подрядчиков);
  3. Некоторые негосударственные организации для интеграции на сайты и информационные системы. На ноябрь 2015 года из негосударственных к ЕСИА могут подключаться банки (кредитные организации), страховые компании и профессиональные участники фондового рынка (брокеры, управляющие, финансовые компании и пр.), а также операторы связи (для идентификации пользователей Wi-Fi).
Общий вид панели управления шлюзом
Функции
Обработка запросов на авторизацию пользователей через ЕСИА

Когда пользователь нажимает кнопку "Вход через ЕСИА" в одной из систем, система формирует запрос на авторизацию шлюзу по протоколу OAuth. Шлюз в соответствии с регламентом формирует запросы к ЕСИА для проведения авторизации. После успешной авторизации шлюз возвращает системе данные о пользователе и переадресует пользователя на нужную страницу системы.

Обработка запросов на отзыв авторизации (разлогин)

При нажатии кнопки "Выйти" запрос от текущей системы передается в шлюз. Шлюз инициирует отзыв авторизации (разлогин) уже на самой ЕСИА и всех подключенных систем, поддерживающих данную возможность. После этого пользователю для доступа к системам нужно будет снова пройти авторизацию.

Обеспечение сквозной авторизации

Авторизовавшись в одной информационной системе, пользователю нет необходимости делать это в других. Если пользователь нажмет кнопку "Вход" в какой-либо очередной системе, то в случае действующей активной ЕСИА-сессии Шлюз автоматически передаст системе данные о пользователе и перенаправит на нужную страницу системы. Есть возможность дополнительно запрашивать у пользователя разрешение на передачу его данных в очередную ИС.

Асинхронный доступ к данным о пользователе

Любая подключенная к шлюзу информационная система может в произвольный момент обратиться за получением данных о пользователе. Если пользователь хотя бы раз авторизовывался через шлюз, то данные о нем хранятся в шлюзе и будут переданы запросившей системе по защищенному API.

Управление информационными системами

Шлюз имеет возможность простого добавления новых информационных систем. Достаточно указать адреса (URL) возврата и некоторые настройки. При обращении к шлюзу будет проверяться наличие в нем соответствующей ИС. Возврат ответа шлюза будет происходить на соответствующий адрес. Системе передадутся данные о пользователе и о его ролях в данной системе.
Страница с перечнем систем
Настройка ИС
Управление правами доступа (ролями)

Шлюз имеет собственную систему управления ролями. Можно задать необходимые роли для конкретного пользователя в каждой информационной системе. При авторизации пользователя, шлюз передает запросившей системе данные по его ролям в этой системе. Система на своей стороне принимает эти данные и обеспечивает доступ пользователя в соответствии с ними.
Роли пользователя в различных ИС
Поддержка иерархии компании (структура отделов)
Шлюз имеет инструментарий создания иерархии отделов по каждой информационной системе.
Пример структуры отделов
Кастомизация

При необходимости функции шлюза могут быть адаптированы (расширены или изменены) под конкретную бизнес-логику.