承接 smskin/esia-socialite-provider 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

smskin/esia-socialite-provider

最新稳定版本:1.0.0

Composer 安装命令:

composer require smskin/esia-socialite-provider

包简介

ESIA Provider for Laravel Socialite

README 文档

README

Документация ЕСИА: https://digital.gov.ru/ru/documents/6186/

Получение доступа к контуру ЕСИА

Для получения доступа к контуру ЕСИА нужно:

  • Получить КЭП на руководителя организации
  • Получить экспортируемую КЭП на ответственного сотрудника организации (именно она будет загружена на сервер и будет использоваться для подписания запросов)
  • Подготовить окружение на основном портале ГосУслуг
    • Зарегистрировать организацию
    • Добавить в организацию доверенного сотрудника и предоставить ему права на работу с технологическим порталом
    • Зарегистрировать информационную систему (https://partners.gosuslugi.ru/systems/add)
    • Добавить в конфигурацию информационной системы КЭП ответственного сотрудника
  • Подготовить окружение тестового портала ГосУслуг (https://esia-portal1.test.gosuslugi.ru)
    • Зарегистрировать профили руководителя и ответственного сотрудника
    • Зарегистрировать организацию в профиле руководителя
    • Добавить в организацию доверенного сотрудника и предоставить ему права на работу с технологическим порталом
    • Зарегистрировать информационную систему (https://esia-portal1.test.gosuslugi.ru/console/tech)
    • Добавить в конфигурацию информационной системы КЭП ответственного сотрудника
  • Подготовить заявление на присоединение в соответствии с документом https://digital.gov.ru/ru/documents/4244/ и отправить заявление на электронную почту
  • Дождаться ответа с разрешением на присоединение (2-4 недели)
  • Выгрузить ЭЦП ответственного сотрудника для дальнейшего использования его на сервере (https://smskin.github.io/export-gost-certificate/index.html)

Подготовка сервера

Основная проблема работы с ГОСТ сертфикатами в том, что OpenSSL их не понимает по умолчанию. Для того чтобы OpenSSL начал поддерживать сертификаты ГОСТ, его нужно пересобрать с libengine-gost-openssl1.1.

В файле docker/Dockerfile я реализовал пересборку OpenSSL внутри стандартного php образа.

Конфигурация

В config/services.php необходимо добавить следующий блок:

'esia' => [  
    'client_id' => env('ESIA_CLIENT_ID'),  
    'client_secret' => '',  
    'portal_url' => env('ESIA_PORTAL_URL', 'https://esia-portal1.test.gosuslugi.ru'),  
    'redirect' => env('ESIA_REDIRECT_URL'),  
    'public_key_path' => env('ESIA_PUBLIC_KEY_PATH'),
    'public_key' => env('ESIA_PUBLIC_KEY'), 
    'private_key_path' => env('ESIA_PRIVATE_KEY_PATH'),
    'private_key' => env('ESIA_PRIVATE_KEY'),
    'private_key_password' => env('ESIA_PRIVATE_KEY_PASSWORD')
 ]
  • client_id - идентификатор приложения (термин ЕСИА "Мнемоника")
  • client_secret - оставляем пустым. Его наличие требует SocialiteProvider, но он не используется поскольку ЕСИА требует подписание запросов ЭЦП
  • portal_url - URL портала ЕСИА
  • redirect - редирект URL для возврата
  • public_key - публичный ключ КЭП
  • public_key_path - путь до публичного ключа КЭП (используется, когда не объявлен public_key)
  • private_key - закрытый ключ КЭП
  • private_key_path - путь до закрытого ключа КЭП (используется, когда не объявлен private_key)
  • private_key_password - пароль контейнера закрытого ключа КЭП

统计信息

  • 总下载量: 2
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-11-21