Интеграция КриптоАРМ во внешнюю информационную систему
В статье "КриптоАРМ. Возможности по интеграции и автоматизации" мы рассмотрели основные возможности работы КриптоАРМ через API и SDK. В этом материале мы углубимся в использование КриптоАРМ API, предложив примеры и сценарии интеграции в информационные системы.
КриптоАРМ API. Возможности и преимущества
КриптоАРМ API позволяет выполнять такие операции, как: электронная подпись документов, шифрование и расшифрование данных, проверка электронных подписей, а также управление сертификатами. Кроме того, доступны возможности для автоматизации генерации запросов на сертификаты и диагностики рабочего места пользователя. Это делает КриптоАРМ API универсальным решением для обеспечения безопасности и организации юридически значимого документооборота, повышая эффективность рабочих процессов.
Основные преимущества использования API:
- Быстрая интеграция криптографии. Не требуется разрабатывать сложные криптографические модули, достаточно передать параметры, а результат операции будет готов через несколько кликов.
- Кроссплатформенная поддержка. API доступен как на настольных системах (Windows, macOS, Linux), так и на мобильных платформах (iOS, Android), что делает его универсальным инструментом для любого приложения.
- Безопасность данных. Все взаимодействия с API осуществляются по защищенным каналам связи с использованием TLS, что гарантирует сохранность передаваемых данных.
- Простота использования. Для взаимодействия с КриптоАРМ API используется протокол cryptoarm://, который легко интегрируется в существующие решения.
Примеры использования КриптоАРМ API
Рассмотрим, как API КриптоАРМ может быть применен в реальных сценариях.
1. Электронный документооборот: подпись документов
Представьте, что ваше веб-приложение позволяет пользователям обмениваться юридически значимыми документами. В этом случае можно использовать команду signAndEncrypt, чтобы быстро и безопасно подписывать документы, вызывая операцию из браузера пользователя.
Как это работает:
- Пользователь заходит на веб-портал.
- Выбирает нужные файлы и действие, например, «Подписать».
- Портал генерирует ссылку с протоколом
cryptoarm://
, которую пользователь кликает для начала операции. - Если КриптоАРМ не запущен, программа автоматически стартует и получает параметры от сервера в виде JSON.
- КриптоАРМ выполняет операцию (подписание и шифрование) и возвращает результат на сервер.
Пример ссылки для вызова КриптоАРМ:
cryptoarm://signAndEncrypt/https://yourdomain.com/api/sign?id=12345
{
"jsonrpc": "2.0",
"result": {
"operation": [
"SIGN"
],
"props": {
"license": "",
"files": [
{
"name": "file1.txt",
"url": "https://yourdomain.com/files/file1.txt",
"id": 1,
"urlDetached": ""
}
],
"extra": {
"token": "9c7101f7-9c47-4481-b4da-a6a497abde08",
"signType": 1,
"signStandart": 0,
"signEncoding": 0,
"signatureExtension": "sgn"
},
"uploader": "https://yourdomain.com/api/upload"
}
},
"id": "12345"
}
Этот запрос откроет мастер подписи и шифрования на основе переданных параметров. После завершения операции результат отправляется обратно на сервер. Пример JSON-ответа после успешной операции:
{
"jsonrpc":"2.0",
"method":"signAndEncrypt.outDirectResults",
"params":{
"id":"3a2fca10-fb2c-45eb-a61e-2e0da2a92bf0",
"status":"Completed",
"directResults":[
{
"id":1,
"signValid":true,
"signers":[
{
"isValid":true,
"signingTime":1730531671000,
"signerCertificate":{
"hash":"f9cfecf5e1e986d1aa227538469e2b4c34e51a4b",
"issuerFriendlyName":"test",
"issuerName":"C=RU\r\nCN=test",
"subjectFriendlyName":"test",
"subjectName":"C=RU\r\nCN=test",
"status":true,
"serial":"049042780942464741",
"notAfter":2040208687000,
"notBefore":1724675887000,
"rootCAMinComSvyaz":false
}
}
],
"out": "MIAGCSqGSIb3DQEHAqCAMIACAQ....."
"outSignStamp":null
}
]
}
}
Этот сценарий может использоваться для электронной подписи договоров и счетов, обеспечивая юридическую силу документов.
2. Шифрование файла
Для команды signAndEncrypt
доступна операция шифрования (может использоваться одновременно с подписью, тогда файл подпишется, а потом будет зашифрован). Вы можете передать для шифрования сертификаты получателей или оставить эти поля незаполненными, тогда клиент сам сможет указать нужных получателей.
{
"jsonrpc": "2.0",
"result": {
"operation": [
"ENCRYPT"
],
"props": {
"license": "",
"files": [
{
"name": "file1.txt",
"url": "https://yourdomain.com/public/files/file1.txt",
"id": 1,
"urlDetached": ""
}
],
"extra": {
"token": "9c7101f7-9c47-4481-b4da-a6a497abde08",
"encryptEncoding": 1,
"encryptAlgorithm": 1,
"encryptCertificates": [
"MIICFTCCAcKgAwIBAgIJQCFliUQmiIAQMA…….",
"MIICZDCCAdCgAwIBAgIIkwgSETAwKEIwCgYIK……"
]
},
"uploader": "https://yourdomain.com/upload"
}
},
"id": "18d6dc4d-27b5-4558-b6b2-e7a97d0c99d9"
}
Пример JSON-ответа после успешной операции шифрования:
{
"jsonrpc":"2.0",
"method":"signAndEncrypt.outDirectResults",
"params":{
"id":"18d6dc4d-27b5-4558-b6b2-e7a97d0c99d9",
"status":"Completed",
"directResults":[
{
"id":1,
"out": "MIAGCSqGSIb3DQEHA6CAMIA...."
"outSignStamp":null
}
]
}
}
3. Формирование письма с вложениями
Если ваша информационная система предполагает обмен файлами (например с контрагентами), вы можете использовать команды КриптоАРМ API sendMail
. ИС может передать все нужные параметры письма (получатели, тело письма, вложения, опции подписи и шифрования), а клиенту останется подтвердить отправку письма в один клик.
Пример параметров формирования письма из API:
{
"jsonrpc": "2.0",
"result": {
"operation": "SEND",
"props": {
"mailProps": {
"to": [
"test0@yandex.ru"
],
"cc": [
"test1@gmail.com",
"test2@icloud.com"
],
"bcc": [
"test@yandex.ru"
],
"subject": "Message subject",
"content": "text message content",
"htmlContent": "<div>HTML message content</div>",
"attachments": [
{
"name": "file1.txt",
"url": "https://yourdomain.com/public/files/file1.txt",
"id": 1,
"urlDetached": ""
},
{
"name": "file2.txt",
"url": "https://yourdomain.com/public/files/file2.txt",
"id": 2,
"urlDetached": ""
},
{
"name": "file4.pdf",
"url": "https://yourdomain.com/public/files/file4.pdf",
"id": 4,
"urlDetached": ""
}
],
"sign": true,
"encrypt": true,
"deliveryReport": false,
"readReport": false
}
}
},
"id": "fceff54e-c4a4-4282-80db-2a581fe7161b"
}
Заключение
Интеграция КриптоАРМ API в информационные системы — это простой и эффективный способ реализовать электронный документооборот, ускорить процессы и упростить работу с электронными подписями. Подробная документация по ссылке, а примеры запросов в нашем публичном репозитории.
Хотите узнать больше о возможностях интеграции КриптоАРМ в ваши информационные системы? Свяжитесь с нами по sales@cryptoarm.ru для бесплатной консультации.