Добавление сервиса учетных записей ЕСИА
Контрольный список
К этому моменту у вас должно быть следующее:
- КЭП для ИС;
- КриптоПро JCP с подключенной КЭП;
- мнемоника системы и определенный scope;
- ИС, настроенная в технологической консоли ЕСИА.
Установка модулей криптографии
Установите модули криптографии, как указано здесь.
Добавление ЕСИА как сервиса учетных записей
Чтобы кнопка входа через госуслуги появилась на странице входа в приложение, нужно в список пользователей приложения добавить сервис учетных записей ЕСИА.
Это можно сделать в панели управления:
-
Откройте панель управления.
-
Нажмите Пользователи и затем нажмите на список пользователей вашего приложения.
-
В меню списка пользователей нажмите Сервисы внешних учетных записей:
-
Нажмите + Добавить сервис ⟶ ЕСИА:
-
Заполните характеристики ЕСИ А:
примечаниеПоддерживается API только первой версии, без указания версии в URL. Например:
-
Идентификатор информационной системы (
ИдКлиента
) — это мнемоника системы; -
Имя хранилища КЭП в КриптоПро JCP (
ПсевдонимЗаписиЗакрытогоКлюча
) — это алиас КЭП.
- Идентифицировать по (
ИдентифицироватьПо
) — это возможные методы идентификации пользователя по данным из ЕСИА. Указанные значения не должны быть шире того scope, на который дано разрешение от ЕСИА. По значению данного поля как раз таки будет подобран scope при входе пользователя.
-
-
Нажмите Добавить.
Также это можно сделать из встроенного языка, заполнив данные экземпляра НастройкиСервисаУчетныхЗаписейЕсиа
.
метод ДобавитьЕСИАВСписокПользователей(СП: СписокПользователей): СписокПользователей
пер НовыеНастройки = новый Множество<НастройкиСервисаУчетныхЗаписей>(СП.НастройкиСервисаУчетныхЗаписей)
// Создадим новый сервис ЕСИА и его настройки
пер СервисЕсиа = новый СервисУчетныхЗаписей(ВидСервисаУчетныхЗаписей.Есиа)
пер НастройкиСервисаЕсиа = новый НастройкиСервисаУчетныхЗаписейЕсиа(СервисЕсиа, "Esia")
// Настроим адреса для тестовго контура ЕСИА (без указания версии API)
НастройкиСервисаЕсиа.АдресАвторизации = "https://server.example.com/aas/oauth2/ac"
НастройкиСервисаЕсиа.АдресТокена = "https://server.example.com/aas/oauth2/te"
НастройкиСервисаЕсиа.АдресПользовательскойИнформации = "https://server.example.com/rs/prns/"
// Добавим в дополнительные настройки client_id информационной системы.
// client_id для каждого приложения для разных ЮЛ свой
НастройкиСервисаЕсиа.ИдКлиента = GetInformationSystemClientId()
// Укажем тип хранилища в КриптоПро JCP
НастройкиСервисаЕсиа.ВидХранилищаКлючей = "HDImageStore"
// Хранилище без пароля
НастройкиСервисаЕсиа.Па рольХранилищаКлючей = ""
// Укажем псевдоним (алиас) записи с сертификатом и закрытым ключом для ИС в КриптоПро JCP
НастройкиСервисаЕсиа.ПсевдонимЗаписиЗакрытогоКлюча = "<Псевдоним контейнера ключа КЭП из КриптоПро JCP>"
// Если приватный ключ под паролем (а можно не задавать пароль при создании), то добавим также и его
пер Пароль = GetPasswordForPrivateKey()
если не Пароль.Пусто()
НастройкиС ервисаЕсиа.ПарольЗакрытогоКлюча = Пароль
;
// Пользователя можно идентифицировать по СНИЛС или почте
НастройкиСервисаЕсиа.ИдентифицироватьПо = ["snils", "email"]
// Добавим сертификат для декодирования и проверки ответов из ЕСИА,
// который можно взять по ссылке http://esia.gosuslugi.ru/public/esia.zip
// Поле не обязательно к установке
если GetEsiaResponseCertificate() != Неопределено
НастройкиСервисаЕсиа.СертификатДляОтветовЕсиа = GetEsiaResponseCertificate()
;
// Добавим к остальным сервисам
НовыеНастройки.Добавить(НастройкиСервисаЕсиа)
// Вернем новый список пользователей
пер НовыйСП = СП.CНастройкамиСервисовУчетныхЗаписей(НовыеНастройки)
СпискиПользователей.Изменить(НовыйСП)
возврат НовыйСП
;
Пользовательская учетная запись ЕСИА
Если в настройках сервиса учетных записей ЕС ИА установлено свойство СоздаватьПользователяПриВходе
, то администратору можно не создавать пользователя и не указывать учетную запись ЕСИА — создание пользователя и учетной записи произойдет само. При этом именем пользователя будет являться почта пользователя в ЕСИА, а учетная запись ЕСИА автоматически будет заполнена полями, соответствующими методам идентификации из настроек учетной записи ЕСИА.
На этом этапе нужно добавить пользователю данные для учетной записи ЕСИА. Имейте в виду, что во время первого входа пользователя через ЕСИА произойдет привязка учетной записи ЕСИА к пользователю на сервере по полям, указанным в учетной записи.
Пользователь должен иметь подтвержденный аккаунт в ЕСИА, контакты также должны быть подтверждены.
В данные, которые необходимо внести в аккаунт ЕСИА, могут входить: