Электронная подпись документов в GLPI с Autentique

Как модуль Digital Signature от NexTool интегрирует GLPI с платформой Autentique: отправка PDF из заявки, несколько подписантов, статус через вебхук и подводные камни продакшена (URL вебхука, дублирующиеся вебхуки, организация документа и режим sandbox), которые мы узнали в ходе сопровождения.

В этой статьеРазделов: 9

Документы, которые нужно подписать, до сих пор ходят по электронной почте и WhatsApp — без прослеживаемости, без понятного статуса и в полном отрыве от заявок, из которых они появились. Модуль Digital Signature от NexTool вместе с Autentique переносит этот процесс внутрь GLPI.

Проблема

Договоры на оказание услуг, акты приёмки, разрешения на доступ, протоколы и соглашения о расторжении рождаются из процесса, который уже зарегистрирован в заявке. Но подписание происходит вне её: кто-то экспортирует PDF, отправляет по почте, напоминает клиенту в WhatsApp и через несколько дней пытается вспомнить, куда сохранил подписанную версию. Стандартный GLPI хранит файл (вкладка «Документы», таблица glpi_documents) и связывает его с заявкой, но не имеет никакого понятия о подписи: не знает, кто должен подписать, подписал ли уже, и не хранит доказательный след. Когда кто-то спрашивает «этот договор подписан?», ответ по-прежнему — искать в почте и надеяться, что нужное вложение ещё там.

Стандартный GLPI и Digital Signature с Autentique

Стоит разделить то, что GLPI делает сам, и то, что добавляет интеграция. Ядро GLPI отлично прикрепляет файлы и ведёт их версии, но электронная подпись никогда не входила в его задачи:

ПотребностьСтандартный GLPIС Digital Signature (Autentique)
Прикрепить документ к заявкеДа, на вкладке «Документы»Да, и отправить на подпись в том же процессе
Узнать, подписан ли документТакого понятия нетСтатус по каждому подписанту на вкладке заявки
Обновление статусаВручную (искать в почте)Автоматически, через вебхук
Доказательный следОтсутствуетIP, дата/время и способ по каждому подписанту (хранятся в Autentique)
Юридическая силаЗависит от внешнего процессаУсиленная электронная подпись (бразильский закон 14.063/2020)
Несколько подписантов и порядокНе применимоПоследовательно или одновременно, с разными ролями
Тестовая средаN/AРежим sandbox, без оплаты

Как это работает

Модуль Digital Signature интегрирует GLPI с платформой электронной подписи Autentique (одним из четырёх провайдеров модуля, наряду с DocuSeal, DocuSign и TOTVS Assinatura Eletrônica) и собирает всё на вкладке Digital Signature внутри заявки. На основе уже прикреплённого документа вы формируете конверт для подписи, не переключаясь между системами:

  • Отправка прямо из заявки — уже прикреплённый PDF уходит на подпись без копирования файлов между системами. Также можно отправить шаблон компании, заполненный данными заявки, наряд-заказ (с модулем Order Service) или PDF, загруженный на месте.
  • Несколько подписантов с ролями — добавьте столько, сколько нужно, с разными действиями: Подписать, Утвердить, Засвидетельствовать, Признать или Подтвердить получение.
  • Порядок подписания — определите, подписывают ли подписанты последовательно или одновременно, в соответствии с процессом организации.
  • Отслеживание в реальном времени — статус каждого подписанта обновляется через вебхук, без обращения к панели Autentique.
  • Скачивание подписанного документа — после последней подписи итоговый PDF доступен прямо в заявке.
  • Дополнительная аутентификация — требование документа, удостоверяющего личность, и проверка по SMS, в зависимости от критичности документа и тарифа учётной записи.
  • Режим sandbox — тестовая среда для проверки процесса без начисления оплаты на платформе.

Как модуль взаимодействует с Autentique

API Autentique построен на GraphQL. При отправке документа модуль формирует mutation, аналогичную этой, прикрепляя PDF из заявки и список подписантов с действием каждого:

# A API da Autentique é GraphQL. Ao enviar um documento do chamado,
# o módulo monta uma mutation como esta (o PDF vai anexado ao request):
mutation CriarDocumento($doc: DocumentInput!, $signers: [SignerInput!]!, $arquivo: Upload!) {
  createDocument(sandbox: false, document: $doc, signers: $signers, file: $arquivo) {
    id
    name
    signatures {
      public_id
      email
      action { name }
      link { short_link }
    }
  }
}

# Variáveis, montadas a partir da aba Assinatura Digital do chamado:
# {
#   "doc":     { "name": "Contrato de prestação de serviços - Chamado #1042" },
#   "signers": [
#     { "email": "[email protected]", "action": "SIGN"    },
#     { "email": "[email protected]",  "action": "APPROVE" }
#   ]
# }

Поле action напрямую соответствует ролям, которые вы выбираете на вкладке: SIGN (Подписать), APPROVE (Утвердить), SIGN_AS_A_WITNESS (Засвидетельствовать), RECOGNIZE (Признать) и ACKNOWLEDGE_RECEIPT (Подтвердить получение). Возвращаемый для каждой подписи public_id — это идентификатор, который связывает подписанта с заявкой в последующих событиях.

Вебхук и что мы узнали в ходе сопровождения

Отправка — только половина работы. Элемент, на котором держится прослеживаемость, — это вебхук: при каждом событии (подписал, утвердил, отклонил, просмотрел) Autentique отправляет POST в GLPI, и вкладка заявки обновляется сама. Эксплуатируя это у клиентов, мы уже потратили время на диагностику трёх нюансов:

  • Самая частая ошибка не в GLPI, а в Autentique. Тот, кто забыл зарегистрировать URL вебхука в панели платформы, видит, что документ отправляется и подписывается как обычно, но статус так и не возвращается — и в поддержку приходит заявка «почему GLPI не показывает, что документ подписан?».
  • Вебхуки повторяются. Если Autentique не получает быстрый ответ 200, она повторно отправляет то же событие. Без идемпотентности одно и то же «подписал» попадает в историю дважды. Поэтому обработка идентифицирует событие по public_id подписи, а не по порядку поступления.
  • Организация документа. При записи подписанного PDF обратно в заявку, которая находится в дочерней организации, GLPI требует, чтобы документ принадлежал той же организации, что и заявка; иначе связь Document_Item молча не создаётся, и файл «подписан, но пропал». При записи итогового документа модуль наследует организацию заявки.

И перед выходом в продакшен мы всегда проверяем, что sandbox выключен. Если оставить его включённым, платформа принимает процесс, не создавая подписи с реальной юридической силой, — худший вид ложноположительного результата в юридическом процессе, потому что всё кажется рабочим, пока кому-то не понадобится действительный документ.

Как включить

  1. Установите или обновите NexTool в вашем GLPI 11.
  2. Откройте NexTool > Модули.
  3. Включите модуль Digital Signature и на вкладке Интеграции — раздел Autentique.
  4. Укажите токен API Autentique и секрет вебхука.
  5. Зарегистрируйте URL вебхука в панели Autentique.
  6. Прогоните один документ в режиме sandbox от начала до конца, прежде чем запускать в продакшене.

Кому подходит — и когда не использовать

Модуль подходит ИТ-отделам и операционным командам, которые управляют договорами на оказание услуг, условиями использования систем, разрешениями на доступ и любыми документами, требующими подписи с доказательной силой, — особенно тем, кто уже использует Autentique и хочет устранить разрыв между подписью и заявкой, из которой она возникла.

Когда не использовать:

  • Если вам нужна только подпись на экране при очном обслуживании, без внешней платформы и без оплаты за документ, лучше подойдёт подпись на экране в модуле Order Service.
  • Если документ требует квалифицированной подписи с сертификатом ICP-Brasil (A1/A3) — некоторые регулируемые акты этого требуют, — усиленной подписи может быть недостаточно; заранее проверьте юридическое требование. С платным тарифом Autentique модуль также может требовать, чтобы подписанты подписывали сертификатом ICP-Brasil (квалифицированная подпись).
  • Если в компании стандартизирована другая платформа, проверьте, входит ли она в число тех, что модуль также поддерживает (DocuSeal, DocuSign и TOTVS Assinatura Eletrônica); за их пределами модуль неприменим.
  • Если документ не возникает ни из какой записи GLPI (заявка, договор, актив, поставщик и другие), интеграция не даёт прослеживаемости, которая является её главной ценностью.

Совместимость

  • GLPI: 11.0+
  • Тариф: Лицензируемый
  • Плагин: NexTool 6.16.0 или выше

Следующий шаг

Autentique — один из провайдеров модуля Digital Signature, входящего в NexTool — экосистему модулей для расширения GLPI без доработок кода. Свяжитесь с командой, чтобы получить демонстрацию для вашего сценария.


Проверено командой NexTool Solutions.

Часто задаваемые вопросы

Да. Модуль Digital Signature от NexTool интегрирует GLPI с платформой Autentique (а также с DocuSeal, DocuSign и TOTVS Assinatura Eletrônica), позволяя отправить уже прикреплённый к заявке PDF на электронную подпись и отслеживать статус по каждому подписанту прямо в заявке, не выходя из GLPI.

Да, как усиленная электронная подпись с доказательным следом (IP, дата/время, способ), признаваемая бразильским законодательством (MP 2.200-2/2001 и закон 14.063/2020). Внимание: это отличается от квалифицированной подписи с сертификатом ICP-Brasil. Для документов, которые по закону требуют квалифицированной подписи, проверьте требование, прежде чем использовать усиленную подпись.

Через вебхук. При каждом событии (подписал, утвердил, отклонил) Autentique отправляет POST в GLPI; модуль проверяет секрет вебхука и обновляет статус в заявке в реальном времени, без необходимости открывать панель платформы. Регистрация URL вебхука в Autentique — обязательная часть активации.

Autentique повторно отправляет событие, если не получает быстрый ответ 200, поэтому одно и то же «подписал» может прийти больше одного раза. Обработка идемпотентна: событие идентифицируется по public_id подписи, а не по порядку поступления, что исключает дублирующиеся записи в истории заявки.

Да, но есть подводный камень GLPI: подписанный документ должен принадлежать той же организации, что и заявка, иначе связь Document_Item молча не создаётся, и файл исчезает из представления заявки. Модуль наследует организацию заявки при записи итогового PDF именно для того, чтобы избежать такого поведения в средах с несколькими организациями.

Да. Модуль поддерживает режим sandbox Autentique, который позволяет проверить процесс от начала до конца без создания платной подписи. Перед выходом в продакшен выключите sandbox: если оставить его включённым, платформа будет принимать процесс, не создавая подписи с реальной юридической силой.

Нужна помощь?