Авторизация пользователей через OAUTH2 в ЕСИА
Буду писать основные моменты, когда получится все опишу подробно.
Описание всего этого дела лежит тут. Правда в нем уже куча ошибок. Обещают поправить в будущем.
Содержание
Генерация ключа
создаем файл config.cfg
# Параметры для генерации открытого ключа. [ req ] # Секция основных опций default_bits=2048 # Число бит #default_keyfile=miac.pem # Имя ключа, используемого для сертификата distinguished_name=req_distinguished_name # DN организации, выдавшей сертификат prompt=no # Брать параметры из конфига неинтерактивный режим [ req_distinguished_name ] # DN организации CN=RU # Страна ST=Vologodskaya # Область L=Vologda # Город O=MIAC # Название организации OU=MIAC # Название отделения CN=volmed.org.ru # Имя для сертификата (персоны, получающей сертификат) emailAddress=miac35@mail.ru # Мыло организации
Создаем файл генерации esia.sh. Сделал ключи без пароля.
openssl req -x509 -sha256 -newkey rsa:2048 -nodes -days 3650 \ -keyout miac_priv.pem \ -out miac_root.pem \ -config config.cfg
Запускаем его и получаем 2 файла сертификата.
$ sh esia.sh
Регистрация ИС
- Получаем ЭЦП на руководителя для входа на сайт ГУ
- Настраиваем комп для входа с этой ЭЦП. Учтите на данный момент при входе через FF, версия его дб , иначе не установится плагин для работы с ГУ.
- Входим на сайт ГУ.
- Регистрируем организацию.
- Регистрируем ИС. При этом загружаем сгенерированный файл сертификата miac_root.pem.
Создание заявки для подключения к тестовой версии ЕСИА
Делаем заявку для подключения к ЕСИА. Описание есть тут.
Как все работает
- Сначала делаем запрос на https://esia-portal1.test.gosuslugi.ru/aas/oauth2/ac на авторизацию . Более подробно можно посмотреть в документации. Единственно, scope дб openid. Это ссылка с GET параметрами.
Структура запроса- client_id=LPUV01355 - Выданный при регистрации ИС на сайте ГУ. Можно посмотреть тут
- client_secret=MIIG1wYJKoZI.........
- redirect_uri=https%3A%2F%2Fzapis.volmed.org.ru%2Fesia.php
- scope=openid
- response_type=code
- state=5f0fd916-2499-4719-8236-d895ac458979
- access_type=offline
- timestamp=2017.07.01+10%3A59%3A50+%2B0300
Использую Class