Задача [EDI3]: Браузерные компоненты для регистрации и авторизации по ЭЦП

Формулировка проблемы:

Задача проходит в рамках реализации прототипа системы EDI на базе платформы ARTA Synergy.

Необходимо реализовать стандартные платформенные JavaScript-компоненты для авторизации и регистрации пользователей при помощи ЭЦП. Разработанные компоненты затем могут использоваться в вышеуказанных целях также и во внешних системах.

Возможные варианты использования компонентов:

  1. Использование на стандартной странице авторизации ARTA Synergy

  2. Использование в модифицированных клиентских страницах авторизации

  3. Регистрация пользователей системы внешними приложениями

Решение:

Необходимо реализовать клиентские JavaScript-компоненты для регистрации и авторизации по ЭЦП, удобные для встраивания в web-страницы.

Нужно реализовать три компонента:

  1. EDSCommon - компонент, оборачивающий вызовы пользовательского агента Synergy (см EDI2).

  2. EDSAuth - компонент, осуществляющий авторизацию пользователя по его ЭЦП

  3. EDSReg - компонент, осуществляющий регистрацию пользователя по его ЭЦП

EDSCommon

Компонент EDSCommon - служебный компонент, который будет использоваться в компонентах EDSReg и EDSAuth. Его задача - предоставить JavaScript-интерфейс для следующих функций, предоставляемых агентом Synergy:

  • Получение пользовательского сертификата и информации о нём

  • Подписание данных пользовательским ключём

Для того, чтобы использовать компонент EDSCommon, необходимо подключить его к веб-странице, добавив в её код инструкцию следующего вида:

<script language="Javascript" src="[http[s]://host:port/Synergy]/edsCommon.js"/>
Получение сертификата и информации о нём

Название функции: keyInfo

  • Входные данные:

    • callback - функция, которая будет выполнена при успешном получении данных

В результате выполнения функции сертификат пользователя и информация о нём будут переданы в callback в формате, описанном в задаче EDI2 (запрос с типом INFO).

Подписание данных

Название функции: sign

  • Входные данные:

    • alg - алгоритм подписи (см. EDI2 запрос типа SIGN), строка

    • data - данные для подписи (cм. EDI2 запрос типа SIGN), строка

    • callback - функция, которая будет выполнена при успешном подписании данных

В результате выполнения функции сертификат, которым была осуществлена подпись, его серийный номер, данные, которые были переданы для подписания, и подписанные данные будут переданы в callback в виде JSON-объекта, описанного в задаче EDI2 (см. запрос типа SIGN).

EDSAuth

Компонент EDSAuth предназначен для использования на страницах авторизации пользователя. Его задача - получить строку, пригодную для подстановки в параметр pswd стандартного сервлета авторизации ARTA Synergy (loginservlet) вместо пароля. Если передать эту строку и правильный логин пользователя в сервлет loginservlet, то он авторизует этого пользователя в ARTA Synergy (см. EDI4).

Для того, чтобы использовать компонент EDSAuth, необходимо подключить его к веб-странице, добавив в её код инструкцию следующего вида:

<script language="Javascript" src="[http[s]://host:port/Synergy]/edsAuth.js"/>

Компонент предоставляет всего одну функцию, которая, собственно, и осуществляет авторизацию:

Название функции: auth

  • Входные данные:

    • login - логин пользователя в ARTA Synergy, строка

    • callback - функция, которая будет выполнена при успешной авторизации

Описание процесса авторизации:

Рисунок 55. Процесс авторизации в компоненте EDSAuth

Процесс авторизации в компоненте EDSAuth

В результате работы функции callback запускается с передачей ему параметров login и pswd.

EDSReg

Компонент EDSReg предназначен для использования на страницах регистрации пользователя. Его задача - зарегистрировать пользователя по логину и получить идентификатор этого пользователя в ARTA Synergy.

Примечание:

Таким образом, при использовании компонентов EDSReg и EDSAuth разработчику, реализующему страницы регистрации и авторизации, придётся придумать общую для них обоих схему получения логина пользователя из информации его сертификата.

Это может быть, например, отпечаток сертификата, или какая-то комбинация его полей, обеспечивающая уникальность полученного логина

Для того, чтобы использовать компонент EDSReg, необходимо подключить его к веб-странице, добавив в её код инструкцию следующего вида:

<script language="Javascript" src="[http[s]://host:port/Synergy]/edsReg.js"/>

Компонент предоставляет всего одну функцию, которая, собственно, и осуществляет регистрацию:

Название функции: register

  • Входные данные:

    • login - логин пользователя в ARTA Synergy, строка

    • firstName - имя пользователя в ARTA Synergy, строка

    • lastName - фамилия пользователя в ARTA Synergy, строка

    • callback - функция, которая будет выполнена при успешной регистрации

Описание процесса регистрации:

Рисунок 56. Процесс регистрации в компоненте EDSReg

Процесс регистрации в компоненте EDSReg

В результате работы функции callback запускается с передачей ему идентификатора пользователя Synergy.