Отображаемые сведения об операциях
Сведения о подтверждаемой операции передаются (отображаются) пользователю в зависимости от выбранного метода вторичной аутентификации. Сведения об операции могут отображаться в SMS-сообщении с одноразовым паролем, в мобильном приложении myDSS 1.0, мобильном приложении со встроенным DSS SDK, интерфейсе Прикладной системы или Веб-интерфейсе DSS.
Отображаемые сведения настраиваются через шаблоны сообщений, связанные с каждым типом операции и способом доставки сообщения пользователю.
Просмотреть список шаблонов можно с помощью команд:
# Полный список шаблонов
Get-DssFormatterTemplate
# Список шаблонов для выбранного метода аутентификации
Get-DssFormatterTemplate -Destination MyDssAuth -Recipient User
# Список шаблонов для выбранного типа операции и метода аутентификаци
Get-DssFormatterTemplate -Destination MyDssAuth -Recipient User -EventTypes SecondaryAuthSign
В параметре -Destination
передаётся идентификатор канала доставки, для которого требуется просмотреть шаблон.
Идентификатор | Описание |
---|---|
SMS | Шаблон сообщения для подтверждения операций через одноразовый пароль в SMS |
Шаблон сообщения для подтверждения операций через одноразовый пароль в Email | |
MobileAuth | Шаблон сообщения для подтверждения операций в мобильном приложении myDSS 1.0 |
MyDssAuth | Шаблон сообщения для подтверждения операций в мобильном приложении со встроенным DSS SDK |
Challenge | Шаблон сообщения, отображаемый в интерфейсе Прикладной системы или Веб-интерфейсе DSS |
В параметре -EventTypes
передаётся тип события, для которого требуется просмотреть шаблон. Ниже представлено соответствие кодов операций типам событий:
Операция | Код операции | Имя событие | Код события | Описание |
---|---|---|---|---|
Issue | 1 | SecondaryAuthLogin | 92 | Вход пользователя (выпуск маркера безопасности) |
SignDocument | 2 | SecondaryAuthSign | 93 | Подпись документа |
DecryptDocument | 8 | SecondaryAuthDecrypt | 95 | Расшифрование документа |
CreateRequest | 16 | SecondaryAuthCreateRequest | 96 | Создание запроса на сертификат |
ChangePin | 32 | SecondaryAuthChangePin | 97 | Смена ПИН-кода |
RenewCertificate | 64 | SecondaryAuthRenewCert | 98 | Обновление сертификата |
RevokeCertificate | 128 | SecondaryAuthRevokeCert | 99 | Отзыв сертификата |
HoldCertificate | 256 | SecondaryAuthHoldCert | 100 | Приостановление сертификата |
UnholdCertificate | 512 | SecondaryAuthUnholdCert | 101 | Возобноление сертификата |
DeleteCertificate | 1024 | SecondaryAuthDeleteCert | 102 | Удаление сертификата |
DeleteCertificate | 1024 | SecondaryAuthDeleteCerts | 103 | Удаление всех сертификатов |
PrivateKeyAccess | 2048 | SecondaryAuthPrivateKeyAccess | 104 | Доступ к закрытому ключу |
Примечание
Имя события и код события соответсвуют кодам соответствующих событий в Сервисе Аудита.
Часть каналов доставки соответствует выбранному методу вторичной аутентификации. Отдельно можно рассматривать
канал доставки Challenge
, который представляет собой сообщения, отображаемые в интерфейсе Прикладной системы или Веб-интерфейсе DSS.
Сообщение сформированное по данному шаблону возвращается прикладной системе в ответе
RequestSecurityTokenResponse конечной точки
/v2.0/confirmation в поле
TextChallenge->Label.
Примечание
Шаблон сообщения типа Challenge
является общим для всех методов аутентификации выбранного типа операции.
То есть можно настроить разные сообщения для подтверждения подписи документа для SMS и мобильного приложения,
но сообщение отображаемое в Веб-интерфейсе DSS (или прикладной системы) будет общее.
Пример:
{
"Challenge": {
"Title": {
"Value": "Подтвердите операцию на устройстве с помощью приложения."
},
"TextChallenge": [
{
"Label": "Подпись документа. test2.txt. Тип подписи: CMS. Сертификат: test from ma 1. Идентификатор запроса rqa1qbyy",
"ExpiresIn": 600,
"CreatedAt": 1644399008,
"ExpiresInSpecified": true,
"IsHidden": false,
"AuthnMethod": "http://dss.cryptopro.ru/identity/authenticationmethod/mydss",
"RefID": "8b077e7d-ccb2-4c75-bdf7-6bb285b3aaec",
"Title": "Подтвердите операцию на устройстве с помощью приложения."
}
],
"ContextData": {
"RefID": "8b077e7d-ccb2-4c75-bdf7-6bb285b3aaec"
}
},
"IsFinal": false,
"IsError": false
}
Шаблон сообщения представляет собой текст с подстановочными параметрами. Исключение составляет шаблоны сведений об операциях, подтверждаемых в мобильном приложении со встроенным DSS SDK. Подробное описание формата и настройки шаблона общих сведений об операции для DSS SDK приведено в разделе Шаблоны отображаемых данных
Пример шаблона сообщения для подтверждения подписи документа одноразовым паролем в SMS:
Подпись документа. {0:DocumentInfo}. Тип подписи: {0:SignatureType}. Сертификат: {0:CertFriendlyName}. Введите одноразовый пароль для подтверждения операции: {0:OTP}
Подстановочные поля имеют вид:
- краткая форма:
{0:ParamName}
- полная форма:
{0:ParamName:Type:InFormat:OutFormat}
где
- ParamName - имя параметра
- Type - тип параметра
- InFormat - формат входного значения
- OutFormat - формат исходящего значения
В зависимости от типа Type поля InFormat, OutFormat могут быть не заполнены.
Возможные значения Type:
Значение | Описание |
---|---|
Default | Подстановочный параметр со значением по умолчанию Значение по умолчанию задаётся в пареметре OutFormat в кодировке Base64. |
SubString | Извлечение подстроки из подстановочного параметра Параметры подстроки передаются в пареметре OutFormat в виде [startIndex],[lenght] в кодировке Base64 |
Double | Подстановочный параметр для чисел с плавающей запятой Формат входящего значения передаётся в параметре InFormat в кодировке Base64. Формат исходящего значения передаётся в параметре OutFormat в кодировке Base64 |
Date | Подстановочный параметр для времени Формат входящего значения передаётся в параметре InFormat в кодировке Base64. Формат исходящего значения передаётся в параметре OutFormat в кодировке Base64 |
StrFormat | Подстановочный параметр для строк Строка форматирования передаётся в пареметре OutFormat в виде "sometext1 {0} sometext2" в кодировке Base64. {0} - подстаночное поле для переданного значения. |
Примечание
Значения для всех перечисленных в шаблоне подстановочных параметров обязаны быть заполнены из параметров операции. Исключение составляют параметры типа Default. Если значение для подстановочного поля типа Default не передано, то значение будет взято из OutFormat. Если значение подстановочного параметра не найдено, то запрос на подтверждение операции завершится с ошибкой.
Каждому типу операции соответствует набор параметров формируемых DSS и переданных пользователем при создании операции. Ниже перечислены параметры, которые формирует DSS для каждого типа операции.
Так же Прикладная система может передать дополнительные (произвольные) сведения об операции.
Issue - Вход пользователя (выпуск маркера безопасности)
Имя параметра | Описание |
---|---|
SessionId | Отображаемый идентификатор операции |
TransactionId | Технический идентификатор операции (guid) |
Login | Логин пользователя |
Date | Время создания операции |
SignDocument - подпись документов
Имя параметра | Описание |
---|---|
SessionId | Отображаемый идентификатор операции |
TransactionId | Технический идентификатор операции (guid) |
Login | Логин пользователя |
Date | Время создания операции |
CertCommonName | CommonName (CN) сертификата подписи |
CertSubjectName | Имя субъекта сертификата |
CertIssuerName | Имя издателя сертификата |
CertSerialNumber | Серийный номер сертификата |
CertFriendlyName | Дружественное имя сертификата |
CertificateID | Идентификатор сертификата |
DocumentInfo | Произвольные сведения |
SignatureType | Формат подписи |
ProcessingTemplate | Идентификатор шаблона подписи |
IsClientCertificate | Флаг, показывающий что подпись выполняется на ключе хранимом в мобильном приложении пользователя. |
Так же доступны все параметры подписи.
Параметр DocumentInfo
задаётся при создании операции на Сервисе Подписи. Параметр может содержать любые сведения
о документе (-ах), операции и т.п.
DecryptDocument - Расшифрование документа
Имя параметра | Описание |
---|---|
SessionId | Отображаемый идентификатор операции |
TransactionId | Технический идентификатор операции (guid) |
Login | Логин пользователя |
Date | Время создания операции |
CertCommonName | CommonName (CN) сертификата подписи |
CertSubjectName | Имя субъекта сертификата |
CertIssuerName | Имя издателя сертификата |
CertSerialNumber | Серийный номер сертификата |
CertFriendlyName | Дружественное имя сертификата |
CertificateID | Идентификатор сертификата |
DocumentInfo | Произвольные сведения |
EncryptionType | Формат расшифрования |
IsClientCertificate | Флаг, показывающий что расшифрование выполняется на ключе хранимом в мобильном приложении пользователя. |
CreateRequest - Создание запроса на сертификат
Имя параметра | Описание |
---|---|
SessionId | Отображаемый идентификатор операции |
TransactionId | Технический идентификатор операции (guid) |
Login | Логин пользователя |
Date | Время создания операции |
CertTemplateName | Имя шаблона сертификата |
CAName | Имя модуля УЦ |
CertTemplateOid | OID шаблона сертификата |
TemplateOid | OID шаблона сертификата |
CertSubjectName | Имя субъекта сертификата |
CAId | Идентификатор модуля УЦ |
RequestType | Тип запроса. Возможные значения: First, Renew |
RevokeCertificate - Отзыв сертификата
Имя параметра | Описание |
---|---|
SessionId | Отображаемый идентификатор операции |
TransactionId | Технический идентификатор операции (guid) |
Login | Логин пользователя |
Date | Время создания операции |
CertificateID | Идентификатор сертификата |
RevocationReason | Причина отзыва |
CertFriendlyName | Дружественное имя сертификата |
DeleteCertificate - Удаление сертификата
Имя параметра | Описание |
---|---|
SessionId | Отображаемый идентификатор операции |
TransactionId | Технический идентификатор операции (guid) |
Login | Логин пользователя |
Date | Время создания операции |
CertCommonName | CommonName (CN) сертификата подписи |
CertSubjectName | Имя субъекта сертификата |
CertIssuerName | Имя издателя сертификата |
CertSerialNumber | Серийный номер сертификата |
CertFriendlyName | Дружественное имя сертификата |
CertificateID | Идентификатор сертификата |
ChangePin - Смена ПИН-кода
Имя параметра | Описание |
---|---|
SessionId | Отображаемый идентификатор операции |
TransactionId | Технический идентификатор операции (guid) |
Login | Логин пользователя |
Date | Время создания операции |
CertCommonName | CommonName (CN) сертификата подписи |
CertSubjectName | Имя субъекта сертификата |
CertIssuerName | Имя издателя сертификата |
CertSerialNumber | Серийный номер сертификата |
CertFriendlyName | Дружественное имя сертификата |
CertificateID | Идентификатор сертификата |
HoldCertificate - Приостановление сертификата
Имя параметра | Описание |
---|---|
SessionId | Отображаемый идентификатор операции |
TransactionId | Технический идентификатор операции (guid) |
Login | Логин пользователя |
Date | Время создания операции |
CertificateID | Идентификатор сертификата |
UnholdCertificate - Возобноление сертификата
Имя параметра | Описание |
---|---|
SessionId | Отображаемый идентификатор операции |
TransactionId | Технический идентификатор операции (guid) |
Login | Логин пользователя |
Date | Время создания операции |
CertificateID | Идентификатор сертификата |
PrivateKeyAccess - Доступ к закрытому ключу
Имя параметра | Описание |
---|---|
SessionId | Отображаемый идентификатор операции |
TransactionId | Технический идентификатор операции (guid) |
Login | Логин пользователя |
Date | Время создания операции |
CertCommonName | CommonName (CN) сертификата подписи |
CertSubjectName | Имя субъекта сертификата |
CertIssuerName | Имя издателя сертификата |
CertSerialNumber | Серийный номер сертификата |
CertFriendlyName | Дружественное имя сертификата |
CertificateID | Идентификатор сертификата |
Форматированные отображаемые данные
Сервис Подписи «КриптоПро DSS» позволяет формировать отображаемое представление обрабатываемого документа, которое может быть показано пользователю в процессе подтверждения операции.
Для этого на Сервисе Подписи предусмотрен механизм плагинов, преобразующих документы в XML особого вида. Схема XML-документа приведена ниже:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://www.cryptopro.ru/schemas/2014/08/dtbs"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:dtbs="http://www.cryptopro.ru/schemas/2014/08/dtbs">
<xs:element name="dtbs" type="dtbs:dtbsType" />
<xs:complexType name="dtbsType">
<xs:sequence>
<xs:element ref="dtbs:row" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="unattendedSign" type="xs:boolean">
<xs:annotation>
<xs:documentation>
Если 'true', то документ подписывается без отображения и
подтверждения пользователем. В этом случае элементы row
должны отсутствовать.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:element name="row" type="dtbs:rowType" />
<xs:complexType name="rowType">
<xs:sequence>
<xs:element name="name" type="xs:string">
<xs:annotation>
<xs:documentation>
Название ключевого поля выжимки документа
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" type="xs:string">
<xs:annotation>
<xs:documentation>
Значение ключевого поля выжимки документа
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
Отображение подписываемых данных происходит, когда на Сервисе Подписи включен режим подтверждения операций. Во время создания транзакции клиентское приложение передаёт на сервер содержимое документа и его тип. Если по типу документа удалось подобрать соответствующий плагин для формирования отображаемого представления, то сервис подписи сохранит их вместе со сведениями об операции.
Центр Идентификации при подтверждении операции, используя отображаемые данные, формирует текст, отображаемый пользователю в ходе процедуру аутентификационного испытания. Например, при формировании SMS сообщения с одноразовым паролем или отображении на Веб-интерфейсе пользователя к XML-документу применяется XSL-преобразование, преобразующее его в текст вида:
Name1 : Value1, Name2 : Value2, … , NameN : ValueN.
Пример отображаемых данных:
<?xml version="1.0" encoding="utf-8"?>
<dtbs xmlns="http://www.cryptopro.ru/schemas/2014/08/dtbs">
<row>
<name>Наименование документа</name>
<value>Платёжное поручение</value>
</row>
<row>
<name>Банк получателя</name>
<value>АКБ "Рога и копыта"</value>
</row>
<row>
<name>Счёт получателя</name>
<value>40781032100000000000</value>
</row>
<row>
<name>Сумма платежа</name>
<value>100 RUB</value>
</row>
</dtbs>