Перейти к основному содержимому

Поддерживаемые мессенджеры

Пользователь подтверждает вход в мессенджере или почте, которыми уже пользуется, — устанавливать ничего не нужно. Приложение получает обычные токены OpenID Connect, какой бы канал ни использовался.

В терминах Veriqa мессенджер — это канал: место, где пользователь подтверждает вход, и источник, который ручается за то, кто именно подтвердил. Слово шире нарочно: Veriqa неважно, что стоит за каналом, — важно, за что канал ручается.

Поэтому каналом может быть не только мессенджер, а любое устройство, которое умеет показать QR-код и выдать claims, отвечающие трём критериям: за них ручается само устройство, а не вводит пользователь; они привязаны к постоянному идентификатору; они приходят в Veriqa по пути, подлинность которого можно проверить. Примеры каналов, которые не являются мессенджерами: принтер через свой драйвер даёт пользователя, отправившего печать, и место, где принтер стоит; Wi-Fi-дисплей — место установки и собственный аппаратный ID. Такие каналы-места используются в сценарии Место и личность.

Базовые claims есть у каждого канала: channel_type channel_user_id name

В карточке канала — что он добавляет сверх базовых.

— номер телефона: приходит, только если приложение его запросило, и каждый канал возвращает его по-своему. Подробнее о номере телефона

Встроенные каналы

Доступно

Поставляются вместе с Veriqa. В Docker-образе и в сервисе для ОС уже есть все — нужные вы просто включаете в конфигурации. Если Veriqa встроена в .NET-приложение, каждый канал — отдельный пакет: устанавливаете только нужные. Восемь каналов — Telegram, WhatsApp, MAX, Instagram Direct, Messenger, WeChat, Viber и почта.

HTTP-канал

Доступно

Канал, которого нет в поставке Veriqa, подключается внешним сервисом на любом языке: Veriqa общается с ним по HTTP, ключи платформы остаются у вашего сервиса, а компилировать ничего не нужно — сервис подключается конфигурацией. Основные сценарии: корпоративный мессенджер или собственный бот, региональная платформа и бот, который у вас уже работает, — его можно встроить в поток Veriqa без публикации нового.

Как написать адаптер

Псевдоканалы: Google, Apple и Huawei

Пример

Вход у провайдера идентификации, обёрнутый в форму канала. Экран показывает QR-код, пользователь входит в свой аккаунт Google, Apple или Huawei на своём телефоне и подтверждает вход на странице там же, а вход завершается на экране. Где это полезно: вход через Google на устройствах без клавиатуры, например на телевизоре; на операционных системах вне экосистемы Google и в нативных приложениях; подтверждение действий; и везде, где вводить пароль от Google или Apple рискованно, — например, на общем или чужом компьютере. Без мессенджеров пользователь тоже сможет войти — с аккаунтом, который уже есть на его телефоне.

Прочие каналы

Адаптеры вне ядра, каждый подключается одним из двух способов: как .NET-сборка, скомпилированная в хост со встроенной Veriqa, или как HTTP-сервис, подключаемый конфигурацией без компиляции.

WhatsApp через Baileys на Node

Claims сверх базовых
Подтверждение в канале
Да — опрос с двумя вариантами
Подключение
HTTP-сервис

Привязывает номер как связанное устройство, как WhatsApp Web, — без бизнес-аккаунта Meta и без провайдера. Для отладки и небольших команд: клиент неофициальный, и WhatsApp может заблокировать номер.

Slack

Claims сверх базовых Нет — только базовые
Секретное сообщение
Есть — вводится вручную
Подключение
.NET-сборка

Ссылки платформы не умеют заполнять сообщение, поэтому код с экрана пользователь вводит сам.

Discord

Claims сверх базовых
  • preferred_username
  • picture
  • locale
Секретное сообщение
Есть — вводится вручную
Подключение
.NET-сборка

Ссылки платформы не умеют заполнять сообщение, поэтому код с экрана пользователь вводит сам.

WhatsApp через Twilio на Node

Claims сверх базовых
Подтверждение в канале
Да — две кнопки быстрого ответа
Подключение
HTTP-сервис

Референсный адаптер: он же сообщает Veriqa, когда WhatsApp не доставляет запрос вне 24-часового окна обслуживания.

Zalo

Claims сверх базовых Нет — только базовые
Секретное сообщение
Есть — вводится вручную
Подключение
.NET-сборка

Ссылки платформы не умеют заполнять сообщение, поэтому код с экрана пользователь вводит сам.

KakaoTalk

Claims сверх базовых
  • locale
Подтверждение в канале
Да — две кнопки быстрого ответа
Секретное сообщение
Есть — вводится вручную
Подключение
.NET-сборка

Ссылки платформы не умеют заполнять сообщение, поэтому код с экрана пользователь вводит сам.

Термины

В карточках каналов указано, нужно ли секретное сообщение, есть ли подтверждение в канале и как приходит номер телефона. Вот что это значит.

Секретное сообщение

Сообщение с кодом входа, которое пользователь сам отправляет в канал после перехода по ссылке или сканирования QR-кода. Veriqa заполняет его, мессенджер показывает готовым, пользователю остаётся нажать «Отправить». Нужно не каждому каналу.

Telegram, MAX
Не нужно — мессенджер сам открывает бота и передаёт ему код.
WhatsApp
Нужно для большей безопасности — готовое сообщение уходит одним касанием.
Почта
То же с заполненным письмом — письмо в одно касание.

Подтверждение в канале

Бот спрашивает прямо в чате, пропустить ли вход — в какое приложение и с какого устройства, — с кнопками «Подтвердить» и «Отклонить». Можно включить автоматический режим, тогда вход проходит без дополнительного запроса.

MAX, Telegram
Вопрос приходит сразу, как только пользователь открыл ссылку.
WhatsApp
Вопрос приходит в ответ на секретное сообщение.
Почта
В канале вопроса нет — по желанию он задаётся на странице в браузере.

Номер телефона

Veriqa берёт номер только из канала — его передаёт мессенджер, пользователь ничего не вводит. Номер приходит, когда приложение запрашивает scope phone, и каждый канал возвращает его по-своему; phone_number_verified показывает, подтверждает ли канал, что номер принадлежит пользователю.

WhatsApp
Проще всего: номер приходит с каждым сообщением, ничего не спрашивается.
Telegram, MAX
Бот спрашивает после подтверждения входа: пользователь делится своим контактом одной кнопкой. В MAX — только в режиме webhook.
Остальные
Кнопка или профиль без подтверждения владельца, только ваша собственная интеграция с платформой или номера нет вовсе.

Секретное сообщение — примеры

WhatsApp: секретное сообщение заполнено Veriqa и готово к отправке
WhatsApp
Email: письмо для входа заполнено Veriqa и готово к отправке
Почта

Подтверждение в канале — примеры

Telegram: бот просит подтвердить вход, кнопки «Подтвердить» и «Отклонить»
Telegram
WhatsApp: пользователь отправил секретное сообщение, бот просит подтвердить вход
WhatsApp