Функциональные характеристики
Раздел описывает назначение программного обеспечения, перечень выполняемых функций и применяемые технологии.
1. Назначение
Подтверждение владения абонентским номером для информационных систем заказчика: при регистрации, входе и подтверждении действий. Платформа не хранит учётные записи конечных пользователей заказчика и не заменяет его систему аутентификации.
Обслуживаются абонентские номера Российской Федерации в формате +7 (мобильные). Номер иного
формата отклоняется до начала подтверждения и не тарифицируется.
2. Способы подтверждения
2.1. Входящим вызовом
Пользователю выдаётся номер из собственного парка SIM-карт. Он звонит на него со своего телефона; вызов принимается и автоматически отклоняется, а определившийся номер сравнивается с заявленным. При совпадении номер считается подтверждённым.
Одноразовый код не формируется и не передаётся, поэтому его нельзя перехватить в канале доставки или получить у пользователя обманом. Вызов отклоняется до соединения, поэтому минуты связи не расходуются. Номер со скрытым идентификатором не признаётся совпадением ни при каких условиях.
2.2. Исходящим вызовом
Платформа совершает вызов на номер пользователя и сбрасывает его. Кодом служат последние цифры номера, с которого поступил вызов.
2.3. Одноразовым кодом в SMS
Платформа формирует код и отправляет его сообщением. Число попыток ввода ограничено. Текст сообщения содержит адрес сайта заказчика и его наименование, чтобы получатель видел, кто запросил код.
3. Управление парком абонентских устройств
- распределение нагрузки между SIM-картами, раздельно по способам подтверждения: ограничения операторов связи на вызовы и на сообщения независимы;
- суточные ограничения на карту — общие и по отдельному способу;
- исключение из распределения карт, переставших доставлять;
- разрешение и запрет отдельного способа подтверждения для каждой карты;
- учёт устройств и контроль их доступности.
4. Прикладной программный интерфейс
Запрос подтверждения, проверка введённого кода, получение состояния, получение действующих тарифов. Аутентификация по ключу и секрету, выдаваемым в личном кабинете.
Результат доставляется опросом состояния либо веб-перехватчиком на адрес заказчика; сообщения веб-перехватчика подписываются. Ошибки возвращаются в едином формате с машинно-читаемым кодом и идентификатором запроса.
Описание интерфейса: Интеграция с API.
5. Личный кабинет
Журнал подтверждений с фильтрацией и постраничным просмотром; действующие тарифы с признаком доступности способа; баланс, история списаний и пополнений, детализация за период; отчётные документы; управление ключами доступа; настройка адреса веб-перехватчика; выгрузка данных в табличный формат.
6. Учёт и тарификация
Списание выполняется в момент фактического возникновения расходов, и этот момент различается по способам. Подтверждение, не состоявшееся по причинам на стороне платформы, не тарифицируется. Каждое списание и пополнение отражается отдельной записью с основанием и ссылкой на подтверждение.
7. Защита информации
Абонентский номер хранится в маскированном виде и в виде необратимого отпечатка, пригодного для сопоставления, но не для восстановления номера. Номер в открытом виде не журналируется. Одноразовые коды не журналируются. Ключи доступа хранятся в виде необратимых отпечатков.
8. Применяемые технологии
| Звено | Технологии |
|---|---|
| Серверная часть | платформа .NET, язык C#, исполнение в контейнерах под управлением Linux |
| Хранение данных | PostgreSQL |
| Состояние и счётчики | Redis |
| Личный кабинет | одностраничное веб-приложение, TypeScript |
| Устройство-шлюз | платформа Android |
| Протокол взаимодействия с устройствами | WebSocket с отдельной схемой аутентификации |
Иностранные программные продукты и облачные сервисы для работы не требуются. Размещение — на инфраструктуре, расположенной на территории Российской Федерации.