img3

© 2014 - 2024 esia.pro

Инструкция по интеграции модуля авторизации через ЕСИА (Wordpress)

1 Общее описание

Модуль авторизации для CMS WordPress реализует набор функций написанных на языке программирования PHP и позволяющих организовывать взаимодействие с сервисами Единой системы идентификации и аутентификации (ЕСИА) по протоколу OAuth 2.0. Подробную информацию о данном протоколе и принципах взаимодействия с ЕСИА можно получить в методических рекомендациях по использованию ЕСИА Важно учесть, что модуль авторизации поставляется в 2-х версиях базовой и расширенной. Основным отличием расширенной версии от базовой является возможность получения дополнительного набора сведений о пользователе (см. Приложение Б - Перечень запрашиваемых областей доступа). Условия поставки базовой или расширенной версии необходимо обговаривать заранее с Вашим персональным менеджером.

2 Перечень поставляемых файлов

В состав поставляемых файлов входят следующие:

  • icons – содержит файлы изображений;
  • lib – директория библиотеки авторизации через ЕСИА;
  • ib/OAuth2 – директория, в которой содержатся файлы библиотеки авторизации;
  • lib/Keys – директория, в которой должны размещаться ключ и сертификат ИС (генерируются на стороне клиента ЕСИА);
  • lib/Temp – директория, в которую модуль кладет временные файлы;
  • lib/Log – директория лог-файлов.
  • log – директория содержит логи модуля;
  • login-esia.php – функции, реализующие авторизационную логику модуля;
  • register.php – функции, реализующие логику регистрации пользователей;
  • rnds-oauth.css – стили интерфейсной части модуля;
  • rnds-oauth.js – сценарии клиентской части модуля;
  • rnds-oauth.php – функции, реализующие хуки для WordPress;
  • rnds-oauth-settings.php – разметка для отображения формы с параметрами модуля в панели управления;
  • uninstall.php – сценарий удаления связанных с модулем данных из базы WordPress.

3 Функции модуля

Основными функциями модуля авторизации являются: - получение авторизационного кода ЕСИА; - обмен авторизационного кода на маркер доступа; - получение данных пользователя из ЕСИА (в приложении Б перечислены скоупы, которые может получать модуль); - выход (логаут) на стороне ЕСИА. Дополнительными функциями модуля авторизации являются: - создание учётных записей пользователей WordPress; - авторизация пользователей в WordPress; - назначение пользователю WordPress определённой роли.

4 Интеграция модуля

Перед началом интеграции необходимо: - выполнить конфигурирование OpenSSL, подключив gost-engine с поддержкой алгоритмов ГОСТ Р 34.10-2012 и ГОСТ Р 34.11- 2012; - настроить для вашей системы HTTPS (это обязательное требование, поскольку данные между вашей системой и ЕСИА передаются в открытом виде); - выполнить экспорт ключевой пары (сформированной по ГОСТ2012) из криптоконтейнера (экспорт можно сделать с помощью нашей утилитой); - настроить систему на технологическом портале тестовой/промышленной ЕСИА. На технологическом портале в окне редактирования параметров системы указать URL возврата после авторизации и логаута, а также установить алгоритм подписания запросов GOST3410_2012_256.

img1

img2

Для интеграции модуля необходимо выполнить шаги описанные ниже.

Шаг 0. Установить необходимые зависимости, описанные в разделе 5.

Шаг 1. Для установки модуля необходимо в административной панели управления перейти в раздел Плагины.

img1

По нажатию на кнопку Добавить новый появиться форма в которой необходимо нажать кнопку Загрузить плагин и затем, на появившейся форме, кликнуть по кнопке Выберите файл и в появившемся диалогом окне выбрать tar.gz архив с модулем авторизации.

img2

Далее нажимаем кнопку Установить.

img3

После установки модуля в общем списке модулей появится модуль RNDS-OAuth

img4

Шаг 2. Далее необходимо кликнуть по ссылке Активировать

img5

Шаг 3. После активации модуля необходимо выполнить его конфигурирование. Для этого кликаем Settings (см. ниже на рисунке)

img6

В форме конфигурирования модуля в разделе General settings необходимо заполнить следующие поля:

img7

В форме конфигурирования модуля в разделе Основные настройки необходимо задать значения для следующих полей: - “Показывать уведомления” – данный флажок следует установить при необходимости отображать в пользовательском интерфейсе уведомления о ходе процесса авторизации; - “После авторизации перенаправить на” – URL клиентской системы, на который будет осуществляться переход после авторизации пользователя на стороне ЕСИА (при этом адрес перехода должен присутствовать в списке доверенных URL’ов системы в её настройках на технологическом портале тестовой/промышленной ЕСИА); - “После логаута перенаправлять на” – URL клиентской системы, на который будет осуществляться переход после логаута пользователя на стороне ЕСИА (при этом адрес перехода должен присутствовать в списке доверенных URL’ов системы в её настройках на технологическом портале тестовой/промышленной ЕСИА); - “Выполнять автоматический логаут пользователя” – задаёт временной период в течении которого будет активна пользовательская сессия на стороне клиентской системы.

img8

В форме конфигурирования модуля в разделе Регистрация пользователей можно указать роль пользователя, которая будет автоматически назначаться при регистрации.

img9

В форме конфигурирования модуля в разделе Login with ESIA необходимо заполнить следующие поля: - “Активна” – сделать авторизацию через ЕСИА активной/деактивировать; - “URL ЕСИА” – URL тестовой/промышленной ЕСИА; - “Скоупы” – указываемый перечень scope (областей доступа) должен соответствовать списку scope, указанному в заявке на подключение к тестовой/промышленной ЕСИА; - “Мнемоника” – уникальный идентификатор системы, который был указан в заявках на подключение к тестовой/промышленной ЕСИА; - “Секрет” – уникальная цифро-буквенная последовательность, необходимая для вычисления хэшей паролей; - “Отладка” – на этапе интеграции часто требуются логи модуля. Данный флажок в установленном состоянии позволяет модулю добавлять записи в системный лог Drupal; - “Разрешать непроверенные данные в УЗ” - разрешать авторизацию пользователям с непроверенными данными учётной записи ЕСИА.

img10

В форме конфигурирования модуля в разделе Back channel configuration необходимо заполнить следующие поля: - “Передавать запросы используя” – определяет метод, используемый веб-сервером для выполнения HTTP-запросов к сторонним поставщикам. Большинство серверов поддерживают cURL, но для некоторых серверов вместо этого может потребоваться Stream Context; - “Проверять peer/host SSL сертификаты” – определяет, следует ли проверять SSL-сертификаты во время HTTP-вызовов. Если ваш сервер имеет неправильную конфигурацию SSL или не поддерживает SSL, вы можете попробовать отключить этот параметр в качестве временного решения. ВАЖНО Для обеспечения необходимого уровня безопасности параметр “Проверять peer/host SSL сертификаты” должен быть включенным. Если при включении параметра возникает ошибка соединения - необходимо как можно скорее исправить конфигурацию SSL вашего сервера и оставить этот параметр.

img11

В форме конфигурирования модуля в разделе ТЕХНИЧЕСКОЕ ОБСЛУЖИВАНИЕ И УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ при необходимости можно использовать следующие опции: - “Восстановление настроек по-умолчанию” – позволяет восстановить настроечные значения по-умолчанию. ВАЖНО При этом все значения параметров, установленные на текущий момент будут потеряны; - “Удалить настройки при деинсталяции” – позволяет удалить все записи из базы данных, связанные с работой модуля. ВАЖНО После удаления авторизация через ЕСИА будет не доступна, хотя все ранее созданные учётные записи пользователей останутся. После активации и конфигурирования модуля на форме авторизации появится кнопка “Авторизация через ЕСИА”.

img12

Шаг 4. Далее необходимо добавить разделы, которые были указаны в полях “Login redirects to” и “Logout redirects to”. Эти разделы необходимы для выполнения редиректа с портала госуслуг, после авторизации и логаута соответственно, на сторону клиентской ИС. ВАЖНО Если ссылка на авторизацию размещается в одном из блоков, загружаемых во всех общедоступных разделах сайта, то размещать эту ссылку отдельно в разделе, указанном в “Login redirects to” и “Logout redirects to”, не нужно. Чтобы разместить ссылку «Авторизоваться через ЕСИА» в основном меню необходимо в панели администрирования перейти в раздел Внешний вид –> Меню.

img13

Выбрать меню для изменения - “Основное меню” и кликнуть по кнопке “Выбрать”.

img14

Далее, на форме добавления меню выбрать “Произвольные ссылки” и заполнить поля URL и Текст ссылки, как это показано ниже. В поле URL ввести ?connect=esia, а в поле “Текст ссылки” - “Авторизоваться через ЕСИА”. Далее кликнуть по “Добавить в меню”.

img15

В результате в структуре меню появится элемент “Авторизоваться через ЕСИА”.

img16

Теперь нужно кликнуть по “Сохранить меню”.

После этого в главном меню сайта появится авторизация через ЕСИА.

img17

При клике по ссылке «Авторизоваться через ЕСИА» осуществляется переход на портал госуслуг. После авторизации на портале ЕСИА выполняет редирект обратно в клиентскую ИС. В результате пользователь попадает на страницу указанную в параметрах модуля в «Logout redirects to». Чтобы просмотреть информацию о пользователе необходимо перейти в профиль пользователя wp-admin/profile.php

img18

Также, данные пользователя можно увидеть в панели администрирования.

img19

Перейдя в раздел “Пользователи” –> “Все пользователи” и выбрав из списка нужного пользователя.

img20

При клике по соответствующему элементу будет загружена страница с данными пользователя.

5 Зависимости

Модуль авторизации предъявляет следующие требования к среде исполнения требования к версии CMS WordPress

WordPress 5 или выше

языковые требования

PHP 5.5 или выше

В окружении модуля авторизации должна присутствовать утилита которую можно вызвать посредством системного вызова.

OpenSSL v.1.1.x

OpenSSL должна поддерживать алгоритмы ГОСТ2012. Для этого необходимо установить расширение

Gost-engine

Для работы модуля авторизации необходимо:

  • наличие активной компоненты openssl;

openssl

  • наличие активной компоненты json;

json

  • наличие активной компоненты curl;

curl

  • наличие активной компоненты posix;

posix


ПРИЛОЖЕНИЕ А
Перечень запрашиваемых областей доступа

Модуль авторизации в базовой и расширенной версии запрашивает доступ к разным наборам областей данных (scope) и как следствие получает разные наборы сведений о пользователе. Перечень областей данных (scope) для базовой версии модуля приведён в таблице А.1, а для расширенной версии в таблице А.2.

Таблица А.1 - Перечень запрашиваемых областей доступа в базовой версии библиотеки

Название scope Состав набора данных Запрашивается(+)/Не запрашивается(-)
1. fullname Просмотр фамилии, имени и отчества:
- фамилия;
- имя;
- отчество.
+
2. birthdate дата рождения, указанная в учетной записи +
3. gender пол, указанный в учетной записи +
4. snils СНИЛС, указанный в учетной записи +
5. inn ИНН, указанный в учетной записи +
6. id_doc Просмотр данных о документе, удостоверяющем личность:
- серия и номер документа, удостоверяющего личность;
- дата выдачи;
- кем выдан;
- код подразделения;
- гражданство.
+
7. birthplace место рождения. +

Таблица А.2 - Перечень запрашиваемых областей доступа в расширенной версии библиотеки

Название scope Состав набора данных Запрашивается(+)/Не запрашивается(-)
1. fullname Просмотр фамилии, имени и отчества:
- фамилия;
- имя;
- отчество.
+
2. birthdate дата рождения, указанная в учетной записи +
3. gender пол, указанный в учетной записи +
4. snils СНИЛС, указанный в учетной записи +
5. inn ИНН, указанный в учетной записи +
6. id_doc Просмотр данных о документе, удостоверяющем личность:
- серия и номер документа, удостоверяющего личность;
- дата выдачи;
- кем выдан;
- код подразделения;
- гражданство.
+
7. birthplace место рождения. +
8. medical_doc Просмотр данных полиса ОМС:
- номер полиса ОМС;
- срок действия.
-
9. military_doc Просмотр данных военного билета:
- серия и номер военного билета;
- дата выдачи;
- орган, выдавший документ.
-
10. foreign_passport_doc Просмотр данных заграничного паспорта:
- фамилия, имя, отчество буквами латинского алфавита;
- серия и номер заграничного паспорта;
- дата выдачи;
- срок действия;
- орган, выдавший документ;
- гражданство.
-
11. drivers_licence_doc Просмотр данных водительского удостоверения:
- серия и номер водительского удостоверения;
- дата выдачи;
- срок действия.
-
12. birth_cert_doc Просмотр данных свидетельства о рождении:
- серия и номер свидетельства;
- дата выдачи;
- место государственной регистрации.
-
13. residence_doc Просмотр данных вида на жительство:
- серия и номер вида на жительство;
- дата выдачи.
-
14. temporary_residence_doc Просмотр данных разрешения на временное проживание:
- серия и номер разрешения на временное проживание;
- дата выдачи.
-
15. vehicles Просмотр данных транспортных средств:
- государственный регистрационный знак;
- серия и номер свидетельства о регистрации.
-
16. email адрес электронной почты, указанный в учетной записи +
17. mobile номер мобильного телефона +
18. contacts Просмотр данных о контактах и адресах:
- номер домашнего телефона;
- номер мобильного телефона;
- адрес электронной почты;
- адрес регистрации;
- адрес места проживания.
+
19. usr_org список организаций пользователя. -
20. usr_avt Просмотр изображения (аватара) пользователя:
- получения изображения (аватара);
- создание и обновление изображения (аватара);
- получение исходного изображения (аватара)
-
21. self_employed Просмотр данных о самозанятых
- признак самозанятого;
- категория (вид деятельности).
-
22. kid_fullname Просмотр фамилии, имени и отчества:
- фамилия;
- имя;
- отчество.
-
23. kid_birthdate дата рождения ребенка -
24.. kid_gender Пол ребенка -
25. kid_snils СНИЛС ребенка -
26. kid_inn ИНН ребенка -
27. kid_birth_cert_doc Просмотр данных свидетельства о рождении:
- серия свидетельства;
- номер свидетельства;
- дата выдачи свидетельства;
- кем выдано свидетельство.
-
28. kid_medical_doc Просмотр данных полиса ОМС:
- номер полиса ОМС;
- действителен до ОМС.
-
1. org_shortname Сокращенное наименованиеорганизации -
2. org_fullname Полное наименованиеорганизации -
3. org_type Тип организации -
4. org_ogrn ОГРН организации -
5. org_inn ИНН организации -
6. org_leg ОПФ организации -
7. org_kpp КПП организации -
8. org_agencyterrange Территориальнаяпринадлежность ОГВ -
9. org_agencytype Тип ОГВ -
10. org_oktmo ОКТМО организации -
11. org_ctts Контакты организации: номер телефона, номер факса, адрес электронной почты -
12. org_addrs Адреса организации (почтовый адрес, юридический адрес): индекс, идентификатор страны, адрес в виде строки (не включая дом, строение, корпус, номер квартиры), строение, корпус, дом, квартира, код ФИАС, регион,город, внутригородской район, район, поселение, доп. территория, улица на доп. территории, улица -
13. org_vhls Транспортные средства организации: название, государственный регистрационный знак, серия и номер свидетельства орегистрации -
14. org_grps Группы, владельцемкоторых является организация -
15. org_emps Данные о сотрудникахорганизации -
16. org_brhs Данные о филиалах организации (название, КПП, ОПФ, контакты,адреса) -
17. org_brhs_ctts Контакты филиаловорганизации -
18. org_brhs_addrs Адреса филиаловорганизации -
19. org_rcs Центры регистрацииорганизации -
20. org_stms Системы, владельцемкоторых является организация -
21. org_invts Приглашения, направленныеорганизацией -
22. categories Данные присвоенных организации видовдеятельности -
  • Инструкция по интеграции модуля авторизации через ЕСИА (Wordpress)
  • 1 Общее описание
  • 2 Перечень поставляемых файлов
  • 3 Функции модуля
  • 4 Интеграция модуля
  • 5 Зависимости
  • ПРИЛОЖЕНИЕ А Перечень запрашиваемых областей доступа