Начиная с версии 1.3 WNAM поддерживает возможность идентификации пользователей через учетную запись на портале Госуслуг (с использованием единой системы идентификации и аутентификации - ЕСИА). Для такого способа идентификации используется протокол OAuth 2.0.

Для использования данного способа необходимо:

ЕСИА (Госуслуги) в настоящий момент поддерживает работу только с квалифицированными ГОСТ-сертификатами, выданными аккредитованными удостоверяющими центрами на сотрудника вашей организации. Прекращена поддержка RSA-сертификатов и самоподписаных ГОСТ-сертификатов.

За более подробными разъяснениями по присвоению статуса оператора персональных данных, получению учетной записи на портале Госуслуг и доступа к ЕСИА можно обратиться в службу технической поддержки компании-разработчика WNAM по адресу support@netams.com или в соответствующие уполномоченные органы.

Для работы с ГОСТ-сертификатами в WNAM 1.6 необходимо приобрести у любого аккредитованного государством удостоверяющего центра (далее - УЦ) квалифицированный (т.е. подписанный по цепочке доверия государственным УЦ) сертификат на имя ответственного сотрудника вашей организации. Сертификат можно использовать для целей авторизации через портал Госуслуг. Также для такого способа авторизации подойдет и сертификат, которым организация подписывает отправку документов в государственные органы. Персональный самоподписанный сертификат, даже если его выдал УЦ по ГОСТ использовать невозможно. При приобретении сертификата важно, чтобы его приватный ключ был экспортируемым (неизвлекаемый ключ на токене не подойдет). Ключ потребуется экспортировать (формат VipNet CSP или КриптоПро CSP), а затем конвертировать в текстовый OpenSSL-формат (за подробной инструкцией можно обратиться по адресу support@netams.com ).

Для настройки данного метода идентификации необходимо выполнить следующие действия:

1. Сертификат и ключ поместить на сервере в файлы /home/wnam/esia_cert.pem и /home/wnam/esia_cert.key соответственно. Далее в интерфейсе WNAM в "Конфигурация" → "Дополнительные настройки" необходимо указать полные пути до этих файлов в параметрах esia_certificate и esia_key:

2. Перезапустить сервис WNAM, в файле логов wnam.log будет отображена строка со значением "ESIA_GOST", например:

12:58:15.316 INFO [EsiaService.java:121] - ESIA_GOST: ECGOST3410-2012 CN="...", EMAILADDRESS=..., OID.1.2.643.100.4=..., OID.1.2.643.100.1=..., O=..., C=RU
12:58:15.361 INFO [EsiaService.java:140] - ESIA_GOST: ECGOST3410-2012 Private Key

Для работы доступа через портал Госуслуг на сервере WNAM обязательно должно быть установлено точное время. Необходимо настроить сервис NTP.

3. На технологическом портале ЕСИА необходимо создать вашу информационную систему и загрузить сертификат. Для этого требуется зайти на портал https://esia.gosuslugi.ru/console/tech с учетной записью сотрудника, привязанной к вашей организации (желательно с учетной записью руководителя организации):

4. Создать информационную систему, перейдя во вкладку "Информационные системы" в системе ЕСИА, и введя её полное и краткое название:

Поле "Мнемоника" является кратким именем создаваемой системы, иначе - идентификатором.

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

Сохранить форму и загрузить созданный сертификат (.crt файл, который является открытой частью сертификата):

5. Выполнить заполнение бумажной формы заявки на подключение к тестовому и продуктивному доступу к ЕСИА (тестовый доступ является необязательным). После заполнения заявки необходимо её подписать (электронно или бумажно) и отправьте в Минкомсвязь согласно "Регламенту информационного взаимодействия Участников с Оператором ЕСИА и Оператором эксплуатации инфраструктуры электронного правительства" (регламенту). Заявка будет отправлена на рассмотрение. Как только заявка будет одобрена, следующим шагом необходимо настроить WNAM и выполнить проверки работоспособности доступа.

Настройка WNAM заключается в указании параметров подключения к ЕСИА во вкладке "ЕСИА" раздела "Конфигурация" → "Гостевая авторизация" → "Внешние OAuth системы":

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

Поскольку WNAM использует cookie для работы с абонентами, крайне важно, чтобы ссылка перенаправления содержала то же имя, что и оригинальная ссылка, на которую производится перенаправление пользователя для авторизации в WNAM. Например, если сервер доступа Mikrotik производит перенаправление абонента на адрес http://wnam.company.ru/cp/mikrotik, то указанная ссылка в поле "Адрес возврата" обязана иметь вид http://wnam.company.ru/cp/social/esia.

Поле "Область доступа" определяет перечень атрибутов, возвращаемых системой авторизации при успешном выполнении пользователем входа в ЕСИА. В настоящий момент для тестового использования ЕСИА это "fullname birthdate gender email mobile id_doc snils inn", для продуктивного использования ЕСИА это "fullname openid". Область определяется в соответствии с текущей версией "Методических рекомендаций по использованию Единой системы идентификации и аутентификации" (методические рекомендации). Перечень параметров в области доступа  должен совпадать с тем, что указано в запросе на регистрацию системы (продуктивной или тестовой).

WNAM позволяет работать с тестовой системой ЕСИА, доступной по адресу https://esia-portal1.test.gosuslugi.ru/, и с продуктивной системой ЕСИА, доступной по адресу https://esia.gosuslugi.ru/. Ссылки доступа к обоим системам "зашиты" в код WNAM и выбираются автоматически в зависимости от заданного использования системы. В первом случае для тестов можно применять тестовую учетную запись (набор реквизитов следует получить при подключении к тестовой ЕСИА), во втором случае - вашу собственную учетную запись на портале "Госуслуги".

6. В настройки nginx необходимо добавить следующую конфигурацию в параметр location { ...}:

proxy_buffer_size 16k;
proxy_buffers 4 16k;
proxy_busy_buffers_size 16k;
client_body_buffer_size 16K;
client_max_body_size 8m;

На этом этапе настройка способа идентификации через портал Госуслуг завершена.

Для проверки работы системы авторизации через ЕСИА необходимо временно включить в меню "Конфигурация" → "Общие настройки" параметр "Тестовые интерфейсы СМС и шаблонов страниц", и открыть в любом веб-браузере ссылку http://адрес_сервера_wnam/wnam/auth_test. 


Выбрать ссылку "Auth in ESIA" и пройти процедуру авторизации. В случае успеха будет выдано сообщение, например:

EsiaUser{firstName='Андрей', lastName='Контент-менеджер', middleName='Алексеевич', birthDate=Mon Feb 07 03:00:00 MSK 1994, gender='M', trusted=true, verifying=false, snils='000-000-600 02', inn='000123123002', status='REGISTERED'}

В лог-файле wnam.log при этом появятся записи: 

23:40:13.855 DEBUG [com.netams.wnam.web.AuthController:259] - Request esia code ... 
23:40:13.855 DEBUG [com.netams.wnam.web.AuthController:260] - State 7324de34-618e-4ed9-b5cc-f5ea35838ae9
23:40:14.021 DEBUG [c.n.w.s.socnet.esia.EsiaService:136] - Esia token EsiaToken{idToken='null', state='c4a355eb-70e3-4dcd-95a5-b9fcd581bba1', accessToken='...', payload=null, error='null', errorDescription='null'}
23:40:14.022 DEBUG [c.n.w.s.socnet.esia.EsiaService:147] - {"alg":"RS256","sbt":"access","typ":"JWT","ver":1}
23:40:14.022 DEBUG [c.n.w.s.socnet.esia.EsiaService:148] - {"exp":1483911613,"scope":"http:\/\/esia.gosuslugi.ru\/usr_inf?oid=1000299654","iss":"http:\/\/esia.gosuslugi.ru\/","nbf":1483908013,"urn:esia:sid":"...","urn:esia:sbj_id":1000299654,"client_id":"WNAMTEST1","iat":1483908013}
23:40:14.130 DEBUG [c.n.w.s.socnet.esia.EsiaService:211] - Response: EsiaUser{firstName='Андрей', lastName='Контент-менеджер', middleName='Алексеевич', birthDate=Mon Feb 07 03:00:00 MSK 1994, gender='M', trusted=true, verifying=false, snils='000-000-600 02', inn='000123123002', status='REGISTERED'}

Если авторизация проходит успешно, необходимо включить возможность авторизации в вашу назначенную в разделе "Авторизация" страницу входа в интернет, например изменив штатный шаблон страницы sms.html, добавив в ней кнопку:

<A href="#" type="button" onclick='esia();'><button class="btn btn-primary">Вход через Госуслуги</button></a>

и скрипт:

<script type="text/javascript">
   function esia() {
      document.location.href="$(soc_esia)";
return false;
}
</script>

Далее следует повторить попытку идентификации с мобильного устройства, подключенного к Wi-Fi сети через ваш сервер доступа.

    

Если авторизация пройдет успешно, то в списке пользователей в административном интерфейсе WNAM появится запись о пользователе: