Настройка Push-уведомлений
Примечание
Необходимость регистрации прикладной системы нужно определить на этапе внедрения аутентификации через мобильное приложение. Если зарегистрировать прикладную систему после начала эксплуатации КриптоПро DSS c аутентификацией через мобильное приложение, то это приведёт к некорректной работе ранее зарегистрированных пользователей и потребует повторной регистрации мобильных приложений (либо ручного изменения сведений о ранее зарегистрированных мобильных устройствах пользователей в базе данных).
Общие сведения о Прикладных системах
Последовательность шагов:
- Регистрация Прикладной системы
- Настройка OAuth-клиента для Сервиса Взаимодействия с Мобильным приложением (MDAG)
- Настройка шаблонов Push-уведомлений
Каждая Прикладная система, использующая подтверждение операций с помощью Мобильного приложения на базе myDSS SDK/DSS Client, должна быть зарегистрирована как "Система myDSS" в КриптоПро DSS.
Прикладная система определяет:
- параметры отправки Push-уведомлений,
- набор событий, о которых будут рассылаться Push-уведомления
- параметры взаимодействия с Мобильным приложением
Управление Прикладными системами выполняется командами *-MyDssSystem
:
- Add-MyDssSystem
- Get-MyDssSystem
- Remove-MyDssSystem
- Set-MyDssSystem
Регистрация новой Прикладной системы выполняется командой Add-MyDssSystem
.
При регистрации системы необходимо указать:
- (опционально) Параметры для отправки Push-уведомлений (
GoogleServiceKey
,ApnClientCertPath
,ApnClientCertPassword
) - Адрес Сервиса Взаимодействия с Мобильным приложением (MDAG) (
MyDssAddress
) - Отображаемое имя системы (
Name
)
Примечание
Если при регистрации прикладной системы (Add-MyDssSystem
) не указывать параметры отправки Push-уведомлений, то
модуль для отправки Push-уведомлений не будет зарегистрирован.
Параметр MyDssAddress
задаёт адрес сервиса MDAG, который передаётся в мобильное приложение в сценарии регистрации через QR-код.
Параметр Name
задаёт отображаемое имя системы в Веб-интерфейсе Центра Идентификации. Если в КриптоПро DSS зарегистрировано более одной
системы, то при создании QR-кода для регистрации мобильного устройства пользователю/оператору необходимо будет выбрать систему из предложенного списка.
При регистрации прикладной системы регистрируются:
- (опционально) модуль и плагины для отправки Push-уведомлений
- OAuth-клиент для регистрируемой системы.
Идентификатор и секрет зарегистрированного OAuth-клиента необходимо задать в настройках Сервиса Взаимодействия с Мобильным приложением (MDAG). Команда для регистрации:
Set-MdagProperties -ClientId new_client_id -ClientSecret new_client_secret
Идентификатор регистрируемого OAuth-клиента имеет следующий формат: mydss.cryptopro.[system_display_name]
Примечание
Все созданные объекты: Прикладная система, OAuth-клиент, модуль оповещения Push, объединяются идентификатором Прикладной системы. Созданный при регистрации Прикладной системы OAuth-клиент должен быть задан в настройках Сервиса Взаимодействия с Мобильным приложением.
Пример:
# Имя экземпляра Центра Идентификации
$STSAppName = "STS"
# Задание URL MDAG
$mdagUrl = "https://<hostname>/mdag"
# Задание отображаемого имени системы
$systemDisplayName = "system_display_name"
# Задание данных для аутентификации PUSH-серверов
$googleKey = "AAAAVX ... WEoO"
$apnPwd = "p@ssw0rd"
$apnPath = "APN pfx path"
$hmsid = "Идентификатор клиента Huawei"
$hmssecret = "Секрет клиента Huawei"
# Регистрация системы
# При регистрации также будут зарегистрированы модули оповещения и OAuth-клиент
$system = Add-MyDssSystem -DisplayName $STSAppName -Name $systemDisplayName -MyDssAddress $mdagUrl -PushType IdentityService -GoogleServiceKey $googleKey -ApnClientCertPath $apnPath -ApnClientCertPassword $apnPwd -HmsClientId $hmsid -HmsClientSecret $hmssecret
Список зарегистрированных систем можно посмотреть командой Get-MyDssSystem
.
Параметры зарегистрированной системы можно посмотреть командами:
- (Get-MyDssSystem -SystemId id_guid).Parameters | fl или
- (Get-MyDssSystem).Parameters | fl
Зарегистрированный OAuth-клиента можно найти в выводе Get-DssClient
.
Пример:
# Идентификатор системы
$systemID = id_guid
# Ищем клиента по идентификатору системы
$client = Get-DssClient | where { $_.ExtendedProperties -ne $null -and $_.ExtendedProperties["MyDssSystemId"] -eq $systemID }
$client
Значение секрета можно посмотреть в выводе команды:
Get-DssClientSecret -ClientId $client.ClientId
Модуль оповещения Push
При выполнении команды Add-MyDssSystem
регистрируется модуль оповещения типа Push
.
Список всех зарегистрированных модулей можно просмотреть при помощи следующей команды:
# Вывести список всех модулей оповещения
Get-DssInternalNotifier
# Вывести список модулей типа `Push`
Get-DssInternalNotifier | where { $_.Type -eq "Push" }
Вывести модуль оповещения, связанный с указанной Прикладной системой, можно командой:
$systemID = id_guid
Get-DssInternalNotifier | where { $_.Settings.ContainsKey("MyDssSystemId") -and ($_.Settings["MyDssSystemId"] -eq $systemID) }
Параметры отправки Push-уведомлений задаются в транспортном плагине модуля оповещения.
$systemID = id_guid
$notifier = Get-DssInternalNotifier | where { $_.Settings.ContainsKey("MyDssSystemId") -and ($_.Settings["MyDssSystemId"] -eq $systemID) }
$notifier.TransportPlugin
Параметры транспортного плагина:
Данные для отправки Push-уведомлений Android FCM:
GoogleServiceKey
WarmUpFCM
- параметр должен быть равен false
Данные для отправки Push-уведомлений iOS APN:
ApnClientCertPath
- полный путь до файла с сертификатом аутентификации (PFX)ApnClientCertPassword
- пароль на файл серитфикатаIsDev
- режим отправки Push-уведомлений (Sandbox/Production). Возможные значения true/false
Данные для отправки Push-уведомлений Huawei HMS:
ClientSecret
ClientId
Примечание
Если параметры соответствующего типа Push-уведомлений не заданы, то Push уведомления данного типа отправляться не будут.
# Поиск модуля оповещения Push
$systemID = id_guid
$notifier = Get-DssInternalNotifier | where { $_.Settings.ContainsKey("MyDssSystemId") -and ($_.Settings["MyDssSystemId"] -eq $systemID) }
$plugin = $notifier.TransportPlugin
# Вывод настроек плагина
$plugin.Settings | fl
Установка параметров плагина выполняется при помощи следующей команды:
# Поиск плагина
$systemID = id_guid
$notifier = Get-DssInternalNotifier | where { $_.Settings.ContainsKey("MyDssSystemId") -and ($_.Settings["MyDssSystemId"] -eq $systemID) }
$plugin = $notifier.TransportPlugin
# Установка параметров плагина (пример FCM)
$GoogleServiceKey = ""
Set-DssStsPlugin -PluginID $plugin.ID -Settings @{"GoogleServiceKey"= $GoogleServiceKey; "WarmUpFCM"="false" }
Регистрация модуля Push вручную
Если прикладная система регистрировалась без указания параметров Push, то модуль Push не будет зарегистрирован. При необходимости его можно зарегистрировать вручную.
Параметры регистрации транспортного плагина:
- AssemblyName : DSS.PushService.NotificationEx
- TypeName : CryptoPro.DSS.PushService.NotificationEx.PushPlugin
- Type : Push (принимает значения APN, FCM или HMS)
Параметры транспортного плагина (Settings) для отправки Push-уведомлений средствами Центра Идентификации:
Параметр | Описание |
---|---|
GoogleServiceKey | (Android) ключ Firebase |
WarmUpFCM | (Android) параметр должен быть равен false |
ApnClientCertPath | (iOS) полный путь до файла с сертификатом аутентификации (PFX) |
ApnClientCertPassword | (iOS) пароль на файл с сертификатом аутентификации (PFX) |
IsDev | (iOS) режим отправки Push-уведомлений (Sandbox/Production). Возможные значения true/false |
ClientSecret | (Huawei) Секрет клиента HMS |
ClientId | (Huawei) Идентификатор клиента HMS |
Примечание
При отправке Push-уведомлений через Центр Идентификации DSS можно задать параметры отправки только для необходимых платформ. Например только для Android, или только для Android и iOS.
Параметры транспортного плагина (Settings) для отправки Push-уведомлений через сервис Push-Proxy:
Параметр | Описание |
---|---|
UsePushProxy | включение/отключение отправки Push-уведомлений через сервис PUSH Proxy |
PushProxyLogin | PushProxyPassword` - учётные данные для подключения к экземпляру сервиса PUSH Proxy, которые были заданы на этапе настройки модуля PUSH Proxy |
PushProxyAddress | URL-адрес PUSH Proxy |
Примечание
Если в настройках плагина установлен флаг UsePushProxy
= true, то установленные параметры отправки Push средствами Центра Идентификации
игнорируются.
Параметры регистрации плагина форматирования:
- Type : Formatter
- AssemblyName : DSS.PushService.NotificationEx
- TypeName : CryptoPro.DSS.PushService.NotificationEx.PushFormatterPlugin
Параметры плагина форматирования (Settings) - не требуются.
Параметры модуля оповещения Push
Type : Push
Сервис Push-Proxy
По умолчанию отправку Push-уведомлений осуществляет модуль оповещения, настроенный на Центре Идентификации DSS. В некоторых случаях этот вариант отправки Push-уведомлений может оказаться невозможен. Например, если сервер, на котором развернут Центр Идентификации, не имеет выхода в сеть Интернет.
В этом случае отправка Push-уведомлений может быть выполнена через сервис DSS PUSH Proxy, развернутый, к примеру, в DMZ.
Сервис DSS PUSH Proxy относится к дополнительному ПО и должен быть развернут и установлен отдельно.
Установка и настройка DSS PUSH Proxy
Настройка шаблонов Push-уведомлений
Ниже приведен пример настройки шаблонов Push-уведомлений для мобильного приложения myDSS 2.0 компании SafeTech.
Примечание
Скрипт требует задания переменной systemID
, в которой передаётся идентификатор зарегистрированной прикладной системы
$systemID = $system.ID
## 1.1. Подтвердите создание учётной записи:
## AssignMyDssSdkDevice = 234,
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 234 -MyDssSystemId $systemID -Text "Подтвердите данные учётной записи" -Payload '{ "app-event-type":"users.state.changed", "title_loc_key": "notification.user.info.changed", "loc_key": "notification.user.accept", "title": "Изменились данные подписи", "body": "Подтвердите данные учётной записи", "userID": "{0:UserID}"}'
## 1.3. Устройство заблоĸировано на сервере:
## myDssDeviceLocked = 320
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 320 -MyDssSystemId $systemID -Text "Профиль устройства заблокирован на сервере" -Payload '{ "app-event-type":"users.state.changed", "title_loc_key": "notification.user.state.changed", "loc_key": "notification.user.blocked", "title": "Изменился статус профиля", "body": "Профиль устройства заблокирован на сервере", "userID": "{0:UserID}"}'
## 1.4. Устройство разблоĸировано на сервере:
## myDssDeviceUnlocked = 321,
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 321 -MyDssSystemId $systemID -Text "Профиль устройства разблокирован на сервере" -Payload '{ "app-event-type":"users.state.changed", "title_loc_key": "notification.user.state.changed", "loc_key": "notification.user.unblocked", "title": "Изменился статус профиля", "body": "Профиль устройства разблокирован на сервере", "userID": "{0:UserID}"}'
## 2.1. Сертифиĸат выпущен:
## CertificateInstalled = 58
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 58 -MyDssSystemId $systemID -Text "Изменился статус сертификата" -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.issued", "title": "Изменился статус сертификата", "body": " Сертификат выпущен и готов к работе", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "certificateRequestID": "{0:RequestID}"}'
## 270 CertificateRequestOperationExecuted
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 270 -MyDssSystemId $systemID -Text "Изменился статус сертификата" -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.issued", "title": "Изменился статус сертификата", "body": " Сертификат выпущен и готов к работе", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "certificateRequestID": "{0:RequestID}"}'
## 20 CertificateCreated
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 20 -MyDssSystemId $systemID -Text "Изменился статус сертификата" -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.issued", "title": "Изменился статус сертификата", "body": " Сертификат выпущен и готов к работе", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "certificateRequestID": "{0:RequestID}"}'
# 2.2. Истёĸ сроĸ действия сертифиĸата:
## 2.3. Действие сертифиĸата приостановлено:
## CertificateHold = 49,
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 49 -MyDssSystemId $systemID -Text "Действие сертификата приостановлено" -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.hold", "title": "Изменился статус сертификата", "body": "Действие сертификата приостановлено", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "certificateRequestID": "{0:RequestID}"}'
## 284 HoldCertificateOperationExecuted
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 284 -MyDssSystemId $systemID -Text "Действие сертификата приостановлено" -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.hold", "title": "Изменился статус сертификата", "body": "Действие сертификата приостановлено", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "certificateRequestID": "{0:RequestID}"}'
## 2.4. Действие сертифиĸата возобновлено:
## CertificateUnhold = 50,
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 50 -MyDssSystemId $systemID -Text "Действие сертификата возобновлено" -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.unhold", "title": "Изменился статус сертификата", "body": "Действие сертификата возобновлено", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "certificateRequestID": "{0:RequestID}"}'
## 286 UnHoldCertificateOperationExecuted
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 286 -MyDssSystemId $systemID -Text "Действие сертификата возобновлено" -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.unhold", "title": "Изменился статус сертификата", "body": "Действие сертификата возобновлено", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "certificateRequestID": "{0:RequestID}"}'
## 3.1. Доступны операции для подтверждения
## SecondaryAuthLogin = 92,
## SecondaryAuthSign = 93,
## SecondaryAuthSignDocs = 94,
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 93 -MyDssSystemId $systemID -Text "Доступна новая операция для подтверждения" -Payload '{"app-event-type":"operations.new", "loc_key": "notification.operation.available", "body": "Доступна новая операция для подтверждения", "userID": "{0:UserID}", "transactionID": "{0:TransactionId}"}'
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 94 -MyDssSystemId $systemID -Text "Доступна новая операция для подтверждения" -Payload '{"app-event-type":"operations.new", "loc_key": "notification.operation.available", "body": "Доступна новая операция для подтверждения", "userID": "{0:UserID}", "transactionID": "{0:TransactionId}"}'
Add-DssPushFormatterTemplate -DisplayName $STSAppName -EventID 92 -MyDssSystemId $systemID -Text "Доступна новая операция для подтверждения" -Payload '{"app-event-type":"operations.new", "loc_key": "notification.operation.available", "body": "Доступна новая операция для подтверждения", "userID": "{0:UserID}", "transactionID": "{0:TransactionId}"}'
Ниже приведен пример настройки шаблонов Push-уведомлений для мобильного приложения DSS Client.
Примечание
Скрипт требует задания переменной systemID
, в которой передаётся идентификатор зарегистрированной
прикладной системы.
$systemID = $system.ID
Add-DssPushFormatterTemplate -EventID 20 -MyDssSystemId $systemId -Text 'Изменился статус сертификата' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.issued", "title": "Изменился статус сертификата", "body": " Сертификат выпущен и готов к работе", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "certificateRequestID": "{0:RequestID}", "login":"{0:Login}", "action":"cert_created"}'
Add-DssPushFormatterTemplate -EventID 46 -MyDssSystemId $systemId -Text 'Сертификат удалён' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.default", "title": "Сертификат удалён", "body": "Для учетной {0:Login} был удален сертификат", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "login":"{0:Login}", "action":"cert_deleted"}'
Add-DssPushFormatterTemplate -EventID 48 -MyDssSystemId $systemId -Text 'Сертификат отозван' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.revoked", "title": "Изменился статус сертификата", "body": "Для учетной {0:Login} был отозван сертификат", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "login":"{0:Login}", "action":"cert_revoked"}'
Add-DssPushFormatterTemplate -EventID 49 -MyDssSystemId $systemId -Text 'Действие сертификата приостановлено' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.hold", "title": "Изменился статус сертификата", "body": "Для учетной {0:Login} действие сействие сертификата приостановлено", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "login":"{0:Login}", "action":"cert_suspended"}'
Add-DssPushFormatterTemplate -EventID 50 -MyDssSystemId $systemId -Text 'Действие сертификата возобновлено' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.unhold", "title": "Изменился статус сертификата", "body": "Для учетной {0:Login} действие сействие сертификата возобновлено", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "login":"{0:Login}", "action":"cert_resumed"}'
Add-DssPushFormatterTemplate -EventID 53 -MyDssSystemId $systemId -Text 'Назначен сертификат по умолчанию' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.default", "title": "Установлен сертификат по умолчанию", "body": "Для учетной {0:Login} установлен сертификат по умолчанию", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "login":"{0:Login}", "action":"cert_change_default"}'
Add-DssPushFormatterTemplate -EventID 58 -MyDssSystemId $systemId -Text 'Сертификат установлен' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.issued", "title": "Изменился статус сертификата", "body": " Сертификат выпущен и готов к работе", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "login":"{0:Login}", "action":"cert_sent"}'
## Доступны операции для подтверждения
## SecondaryAuthLogin = 92,
## SecondaryAuthSign = 93,
## SecondaryAuthSignDocs = 94,
Add-DssPushFormatterTemplate -EventID 92 -MyDssSystemId $systemId -Text 'Доступна новая операция для подтверждения' -Payload '{"app-event-type":"operations.new", "loc_key": "notification.operation.available", "title":"Доступна новая операция для подтверждения", "body": "Новая операция ожидает подтверждения в приложении", "userID": "{0:UserID}", "transactionID": "{0:TransactionId}", "login":"{0:Login}", "action":"operation_created"}'
Add-DssPushFormatterTemplate -EventID 93 -MyDssSystemId $systemId -Text 'Доступна новая операция для подтверждения' -Payload '{"app-event-type":"operations.new", "loc_key": "notification.operation.available", "title": "{0:CertFriendlyName}", "body": "Доступна новая операция для подтверждения", "userID": "{0:UserID}", "transactionID": "{0:TransactionId}"}'
Add-DssPushFormatterTemplate -EventID 94 -MyDssSystemId $systemId -Text 'Доступна новая операция для подтверждения' -Payload '{"app-event-type":"operations.new", "loc_key": "notification.operation.available", "title": "Доступна новая операция для подтверждения", "body": "Новый пакет документов на подпись ожидает подтверждения в приложении", "userID": "{0:UserID}", "transactionID": "{0:TransactionId}", "login":"{0:Login}", "action":"sign_operation_created"}'
Add-DssPushFormatterTemplate -EventID 270 -MyDssSystemId $systemId -Text 'Изменился статус сертификата' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.issued", "title": "Изменился статус сертификата", "body": " Сертификат выпущен и готов к работе", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "certificateRequestID": "{0:RequestID}", "login":"{0:Login}", "action":"cert_created"}'
Add-DssPushFormatterTemplate -EventID 276 -MyDssSystemId $systemId -Text 'Назначен сертификат по умолчанию' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.default", "title": "Установлен сертификат по умолчанию", "body": "Для учетной {0:Login} установлен сертификат по умолчанию", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "login":"{0:Login}", "action":"cert_change_default"}'
Add-DssPushFormatterTemplate -EventID 280 -MyDssSystemId $systemId -Text 'Сертификат удалён' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.default", "title": "Сертификат удалён", "body": "Для учетной {0:Login} был удален сертификат", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "login":"{0:Login}", "action":"cert_deleted"}'
Add-DssPushFormatterTemplate -EventID 282 -MyDssSystemId $systemId -Text 'Сертификат отозван' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.revoked", "title": "Изменился статус сертификата", "body": "Для учетной {0:Login} был отозван сертификат", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "login":"{0:Login}", "action":"cert_revoked"}'
Add-DssPushFormatterTemplate -EventID 284 -MyDssSystemId $systemId -Text 'Действие сертификата приостановлено' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.hold", "title": "Изменился статус сертификата", "body": "Для учетной {0:Login} действие сействие сертификата приостановлено", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "login":"{0:Login}", "action":"cert_suspended"}'
Add-DssPushFormatterTemplate -EventID 286 -MyDssSystemId $systemId -Text 'Действие сертификата возобновлено' -Payload '{ "app-event-type":"certificates.state.changed", "title_loc_key": "notification.certificate.state.changed", "loc_key": "notification.certificate.unhold", "title": "Изменился статус сертификата", "body": "Для учетной {0:Login} действие сертификата возобновлено", "userID": "{0:UserID}", "certificateID": "{0:CertificateID}", "login":"{0:Login}", "action":"cert_resumed"}'
Add-DssPushFormatterTemplate -EventID 234 -MyDssSystemId $systemId -Text 'Подтвердите данные учётной записи' -Payload '{ "app-event-type":"users.state.changed", "title_loc_key": "notification.user.info.changed", "loc_key": "notification.user.accept", "title": "Изменились данные пользователя", "body": "Оператор привязал устройство к учетной записи {0:Login}", "userID": "{0:UserID}", "kid":"{0:MyDssKid}", "login":"{0:Login}", "action":"binded"}'
Add-DssPushFormatterTemplate -EventID 320 -MyDssSystemId $systemId -Text 'Профиль устройства заблокирован на сервере' -Payload '{ "app-event-type":"users.state.changed", "title_loc_key": "notification.user.state.changed", "loc_key": "notification.user.blocked", "title": "Изменились данные пользователя", "body": "Связь устройства с учётной записью {0:Login} была заблокирована", "userID": "{0:UserID}", "kid":"{0:MyDssKid}", "login":"{0:Login}", "action":"blocked"}'
Add-DssPushFormatterTemplate -EventID 321 -MyDssSystemId $systemId -Text 'Профиль устройства разблокирован на сервере' -Payload '{ "app-event-type":"users.state.changed", "title_loc_key": "notification.user.state.changed", "loc_key": "notification.user.unblocked", "title": "Изменились данные пользователя", "body": "Связь устройства с учётной записью {0:Login} была разблокирована", "userID": "{0:UserID}", "kid":"{0:MyDssKid}", "login":"{0:Login}", "action":"unblocked"}'
Add-DssPushFormatterTemplate -EventID 322 -MyDssSystemId $systemId -Text 'Устройство отвязано от учётной записи' -Payload '{ "app-event-type":"users.state.changed", "title_loc_key": "notification.user.state.changed", "loc_key": "notification.user.deleted", "title": "Изменились данные пользователя", "body": "Связь устройства с учётной записью {0:Login} была разорвана", "userID": "{0:UserID}", "kid":"{0:MyDssKid}", "login":"{0:Login}", "action":"unbinded"}'