Подписание документов ЭЦП
Last updated
Was this helpful?
Last updated
Was this helpful?
Услуги по подписанию документов резидентами РК (sign) и нерезидентами РК (non_resident_sign) являются несовместимыми в рамках одного сервиса. В случае если в проекте Партнера предусмотрено подписание документов как резидентами, так и нерезидентами необходимо создать 2 сервиса (один для подписания документов резидентами РК, второй для подписания документов нерезидентами РК). Информацию о создании сервиса см.
В Aitu Passport реализовано несколько вариантов работы с облачной ЭЦП:
Подписание любых файлов и получение результата в формате PKCS7.
Подписание PDF файлов (встраивание подписи прямо в PDF файл).
Подписание XML файлов, получение результата в формате XMLDSIG (встраивание подписи и сертификата пользователя прямо в XML файл).
Объем одного файла, передаваемого на подпись, не должен превышать 40 MB
В большинстве случаев, если необходимо просто подписать документ и провалидировать подпись нужно использовать вариант с PKCS7.
Вы можете подписывать любой массив байт: любые документы, hash документов, произвольные наборы байт и т.д., в том числе pdf и xml файлы. Массив байт должен быть передан в кодировке base64.
Результирующая подпись будет в формате PKCS7. Контейнер PKCS7 содержит в себе всю цепочку сертификатов от пользовательского до КУЦ, TSP метку, OCSP метку, подпись документа.
Вы сможете подписывать pdf документы и получать результат в специально предназначенном для этого формате, просматривать подпись в PDF-ридерах (подпись будет вставлена непосредственно в исходный файл).
Данный вариант можно использовать только для подписания xml файлов. В случае, если необходимо подписывать xml файлы и валидировать результаты, например, в НУЦ РК - используйте XMLDSIG вариант.
Вы можете подписывать xml документы и получать результат в специально предназначенном для этого формате (результат будет в формате xmldsig). Результат подписи и сертификат пользователя вставляются непосредственно в исходный файл.
Aitu Passport позволяет осуществлять подписание документов ЭЦП для физических лиц (ЭЦП ФЛ) и ЭЦП для юридических лиц (ЭЦП ЮЛ). Так же доступно множественное подписание документов ЭЦП различными лицами.
Прежде чем инициировать процесс подписания документов ЭЦП ЮЛ информационная система партнера должна передать в Aitu Passport следующие данные:
Правом и обязанностью Партнера является своевременная передача в Aitu Passport актуального списка сотрудников, имеющих право подписи документов от имени юридического лица. В случае, если список сотрудников, имеющих право подписи, меняется (добавление/удаление сотрудника) информационная система Партнера должна передать новый список всех сотрудников, имеющих право подписи в Aitu Passport.
Для ФЛ :
Для ЮЛ :
В методе загрузки документа, приложение Партнера может передать ссылку на страницу с текстом документа, который должен подписать Пользователь в параметре link. Если ссылка передана (параметр link), то в процессе подписания, на платформе Aitu Passport, Пользователь сможет ознакомиться с текстом документа.
Важные моменты при формировании параметров для ссылки-запроса авторизации в процессе подписания документов ЭЦП:
В случае, если по условиям договора на оказание услуг Aitu Passport, номер мобильного телефона Пользователя:
В параметре scope
обязательно указывается параметр услуги подписания документа: sign или non_resident_sign или ul_sign . Параметр услуги подписания документа должен передаваться следующим образом: sign.1,2,3,
где 1, 2 и 3 это signableId, полученные от метода загрузки документа (описание методов загрузки см., п.1 настоящего раздела)
Для успешного прохождения этапа биометрической идентификации скорость подключения устройства Пользователя к сети интернет должна быть не менее 100кб/сек
В зависимости от того, какой вариант подписания документа был выбран, для того чтобы получить подписанный документ, приложение Партнера должно вызвать один из следующих методов:
signableId - идентификатор документа, присвоенный системой Aitu Passport;
signature - контейнер PKCS7 с данными подписи,
registrationCertificate - регистрационное свидетельство в виде строки base64.
signableId - идентификатор документа, присвоенный системой Aitu Passport;
name - имя документа, переданного сервисом Партнера в систему Aitu Passport;
signedPdf - подписанный документ, в формате pdf;
signableId - идентификатор документа, присвоенный системой Aitu Passport;
name - имя документа, переданного сервисом Партнера в систему Aitu Passport;
signedXml - подписанный документ, в формате xml
Процесс подписания ЭЦП документа несколькими лицами в формате PKCS7 выглядит следующим образом:
bytes - оригинальный документ (документ без подписей)
name - имя документа. Данное имя будет отображаться пользователю в процессе подписания
link - ссылка на документ (текст документа)
signature - документ подписанный ЭЦП первым (предыдущим) лицом
В случае если необходимо подписать документ третьим и последующими лицами ИС партнера запускает процесс описанный в п.п. 4 - 6 настоящего раздела
Процесс подписания ЭЦП документа несколькими лицами в формате PDF выглядит следующим образом:
bytes - документ, подписанный ЭЦП первым (предыдущим) лицом.
name - имя документа. Данное имя будет отображаться пользователю в процессе подписания
link - ссылка на документ (текст документа)
Дальнейшие действия идентичны описанным в п.п 2-4 настоящего раздела
Нижний колонтитул документа pdf, подписанного несколькими лицами, выглядит следующим образом:
Если документ подписан ЭЦП физического лица, то рядом с QR-кодом отображаются:
для резидентов: ИИН и дата подписания;
для нерезидентов: номер документа, страна выдавшая документ и дата подписания.
Если документ подписан ЭЦП юридического лица, то рядом с QR-кодом отображаются:
для резидентов: ИИН физического лица, подписавшего документ от имени организации, БИН и наименование организации, дата подписания;
для нерезидентов: номер документа и страна выдавшая документ физическому лицу, подписавшего документ от имени организации, БИН и наименование организации, дата подписания.
Внимание:
Период хранения не подписанных документов, переданных на подписание (signableId) 24 часа с момента генерации signableId;
Параметр otp_confirmation
действителен в течение 60 минут с момента генерации;
Код авторизации (code) действителен в течение 5 минут с момента генерации;
Токен авторизации (access_token ) действителен в течение 30 дней с момента генерации;
Токен пользователя на устройстве действителен 1 год с момента генерации.
Проверка валидности ЭЦП осуществляться разными методами Aitu Passport. Метод проверки валидности ЭЦП зависит от того, какой вариант подписания документа был выбран (PKCS7 или PDF)
Проверку ЭЦП, полученной от AituPassport, в формате PKCS7 можно выполнить следующими способами:
через API Aitu Passport вызвав метод:
самостоятельно. Вы можете обратиться к представителям сервиса Aitu Passport за примерами кода на языке Java/Kotlin,
Проверку ЭЦП, полученной от Aitu Passport, в формате PDF можно выполнить следующими способами:
через API Aitu Passport вызвав метод:
Список сотрудников юридического лица, имеющих право подписи документов от имени данного юридического лица. Данные передаются в методе
При переходе Пользователя в приложении Партнера к этапу подписания документов ЭЦП, приложение Партнера, до того как начнется процесс подписания, должно загрузить в Aitu Passport документ или документы которые должен подписать Пользователь. Предварительная загрузка применяется для того, чтобы приложение Партнера могло получить signableId. signableId - это уникальный идентификатор документа, присвоенный Aitu Passport, используется в ссылке-запросе авторизации (см. п.2 настоящего раздела) и в методах получения данных о подписании документа (-ов). В зависимости от выбранного варианта подписания (информацию о вариантах подписания см., в разделе "") используется один из следующих методов загрузки документов.
Если выбран вариант PKCS7, то для загрузки документа используется метод
Если выбран вариант PDF, то для загрузки документа используется метод
Если выбран вариант XMLDSIG, то для загрузки документа используется метод
Если выбран вариант PKCS7, то для загрузки документа используется метод
Если выбран вариант PDF, то для загрузки документа используется метод
Если выбран вариант XMLDSIG, то для загрузки документа используется метод
Процесс загрузки документов обозначен стрелками 3 и 4 на
После того, как Пользователь в приложении Партнера нажмет на кнопку или ссылку подписи документа (стрелка 5 на ), Приложение партнера формирует ссылку-запрос авторизации (с методом генерации ссылки-запроса авторизации oauth2/auth можно ознакомиться , процесс авторизации детально описан в статье "Авторизация" -> глава "").
Партнер верифицирует самостоятельно, то приложение Партнера должно в ссылке-запросе авторизации () передать параметр otp_confirmation
. Чтобы получить значение для параметра otp_confirmation
, приложение Партнера должно вызвать метод . Значение для параметра otp_confirmation
передается в параметре secret
ответа метода . Внимание! secret
, а соответственно и значение в параметре otp_confirmation
является одноразовым, его необходимо получать для каждого запроса авторизации заново!
верифицирует Aitu Passport, то параметр otp_confirmation
в ссылке-запросе на авторизацию () не передается, метод вызывать не нужно.
Процесс получения значения для параметра otp_confirmation
обозначен стрелками 6 и 7 на
3. После того, как приложением Партнера была сгенерирована ссылка-запрос на авторизацию (стрелка 8 на ), происходит редирект Пользователя на принимающую страницу Aitu Passport, где Пользователь проходит процессы авторизации, идентификации в Aitu Passport. Путь пользователя в Aitu Passport определяется параметрами, переданными в ссылке-запросе авторизации. Стрелки 9 - 16 на
4. Aitu Passport предлагает Пользователю подписать документ, Пользователь подписывает документ ЭЦП (стрелки 17 - 22 на )
5. Aitu Passport генерирует код авторизации и передает его приложению Партнера. Описание данного процесса см. в статье "Авторизация" -> глава ". Стрелки 23 и 24 на
6. Приложение Партнера (серверная часть приложения) обменивает полученный код авторизации на токены (access_token, id_token). Описание данного процесса см. в статье "Авторизация" -> глава ". Стрелки 25 и 26 на
Если выбран PKCS7, то вызывается метод (в сервисе Партнера который используется для подписи документов резидентами) или метод (в сервисе Партнера для подписи документов не резидентами). В ответе метода передаются следующие данные:
Если выбран PDF, то вызывается метод (в сервисе Партнера для подписи документов резидентами) или метод (в сервисе Партнера для подписи документов не резидентами). В ответе метода передаются следующие данные:
registrationCertificate - регистрационное свидетельство в виде строки base64. Для метода не передается;
documentCopy - оригинал документа, который был отправлен на подпись в формате pdf, с интегрированным QR-кодом для проверки ЭЦП (для метода не передается). QR-код размешается в нижнем колонтитуле на каждой странице документа.
Если выбран XMLDSIG, то вызывается метод (в сервисе Партнера для подписи документов резидентами) или метод (в сервисе Партнера для подписи документов не резидентами). В ответе метода передаются следующие данные:
ИС Партнера загружает не подписанный документ используя метод и получает signableId (старт процесса первого подписания)
После получения signableId от метода , ИС Партнера инициирует процесс подписания документа, Пользователь подписывает документ (процесс описан в разделе
После первого подписания документа, ИС Партнера вызывает метод для получения данных подписанного документа и сохраняет эти данные.
В случае если документ должен быть подписан вторым лицом, то ИС партнера должно загрузить уже подписанный ранее документ в Aitu Passport, чтобы получить signableId, для старта процесса подписания. Для получения signableId для второго и последующего подписания документа должен использоваться метод . В запросе данного метода передаются следующие параметры:
После получения signableId от метода , ИС Партнера инициирует процесс подписания документа, Пользователь подписывает документ (процесс описан в разделе
После подписания документа, ИС Партнера вызывает метод для получения данных подписанного документа и сохраняет эти данные.
ИС Партнера загружает не подписанный документ используя метод и получает signableId (старт процесса первого подписания)
После получения signableId от метода , ИС Партнера инициирует процесс подписания документа, Пользователь подписывает документ (процесс описан в разделе
После подписания документа, ИС Партнера вызывает метод для получения данных подписанного документа и сохраняет эти данные.
В случае если документ должен быть подписан вторым и последующим лицом, то ИС партнера должно загрузить уже подписанный ранее документ в Aitu Passport, чтобы получить signableId. Для получения signableId для второго и последующего подписания документа должен вызываться тот же метод - со следующими параметрами:
- для сервиса через который подписывают документы резиденты,
- для сервиса через который подписывают документы не резиденты,
при помощи метода сервиса проверки ЭЦП, развернутого на стороне Партнера - см. статью .
через ШЭП -
- для сервиса через который подписывают документы резиденты,
- для сервиса через который подписывают документы не резиденты,
при помощи метода сервиса проверки ЭЦП, развернутого на стороне Партнера - см. статью .
через ШЭП -
через API Aitu Passport вызвав метод
через ШЭП -