Silent Network Authentication (SNA) позволяет вашему бизнесу беспрепятственно и безопасно верифицировать пользователей в фоновом режиме без какого-либо участия с их стороны. Это отличное решение для снижения трения при сохранении высокого уровня безопасности в ваших процессах верификации или аутентификации. Узнайте больше о том, как SNA работает в фоновом режиме, здесь.
В этой статье блога мы подробно рассмотрим, как обрабатывать детали реализации, управлять краевыми случаями и масштабировать решение по всему миру.
Предварительные требования для разработки с использованием SNA
Прежде чем вы сможете начать масштабирование, вам необходимо выполнить следующие действия:
- Заполните форму регистрации оператора связи, чтобы начать процесс утверждения, который занимает 2-4 недели. Вы можете начать тестирование немедленно.
- Создайте службу верификации (Verification Service) в консоли Twilio
- Запустите новую верификацию с помощью SNA
После выполнения этих трех шагов остальная часть этого документа поможет вам справиться с ситуациями, выходящими за рамки стандартного сценария.
Принудительное использование мобильного интернета для SNA внутри вашего мобильного приложения
Поскольку SNA опирается на аутентификацию в сотовой сети, вызов sna.url должен осуществляться через мобильный интернет, а не через WiFi. API выдаст ошибку 60531, если вы попытаетесь запросить sna.url по WiFi. Вы можете принудительно задать это в своем мобильном приложении.
Для iOS используйте библиотеку iOS для принудительного использования мобильных данных для запроса. Библиотека также предоставляет пользовательские ошибки, сетевые проверки и поддержку многопоточности. При необходимости вы также можете посмотреть код этой функции Objective C на GitHub (вот пример example вызова этого кода из Swift).
Для Android используйте библиотеку Android или воспользуйтесь следующим примером кода с использованием requestNetwork для принудительного использования мобильных данных для запроса:
Следуйте перенаправлениям
Когда вы вызываете sna.url, документация рекомендует следовать всем перенаправлениям. Причина этого заключается в том, что у каждого оператора немного отличается обработка перенаправлений, поэтому мы создали наш API так, чтобы скрыть эти различия, обеспечивая стабильное поведение через единый интерфейс.
Вы можете найти URL-адрес перенаправления в заголовке Location ответа на вызов sna.url.
В псевдокоде это будет выглядеть следующим образом:
Обратите внимание, что у некоторых операторов может быть несколько перенаправлений.
Используйте пограничные точки (edge locations) в определенных регионах
Регуляторы в регионе EMEA требуют, чтобы все данные оставались внутри региона. Поэтому Twilio использует отдельные URL-адреса API для пограничных точек. По мере расширения в новые регионы этот список регионов хранения данных может увеличиваться.
Узнайте больше о регионах Twilio в документации или свяжитесь с нами для реализации поддержки региона в Индонезии.
Обработка двух SIM-карт
Телефоны в некоторых странах, таких как Филиппины и Индонезия, часто имеют несколько слотов для SIM-карт. Существует две типичные причины, по которым пользователи используют эту возможность. Решение для обоих сценариев одинаково.
Сценарий 1: Пользователи меняют второстепенную SIM-карту для передачи данных
Пользователи выбирают SIM-карту одного мобильного оператора для голосовых вызовов. Этот номер телефона связан с личностью пользователя и является номером, который он дает друзьям и семье. Эта SIM-карта находится в слоте №1.
Для слота №2 пользователь выбирает тарифный план с самой низкой ценой. Пользователь может часто менять эту SIM-карту для передачи данных при появлении новых акций. Пользователь никогда не знает номер телефона, связанный с номером телефона в слоте №2.
Проблема в этом сценарии заключается в том, что Silent Network Auth использует сеть передачи данных для аутентификации активного номера телефона (возможно, из слота №2), в то время как пользователь предоставил номер телефона, связанный с его личностью, который может быть номером телефона с SIM-карты в слоте №1.
Сценарий 2: Пользователи меняют SIM-карту с основным номером телефона
Аналогично варианту 1, некоторые мобильные операторы предлагают акции, в рамках которых звонки на номера телефонов в их сети бесплатны, поэтому пользователь может поддерживать голосовые SIM-карты от нескольких операторов мобильной связи (MNO) и раздавать соответствующий номер телефона друзьям и семье в той же сети. Пользователь знает все номера телефонов, связанные со своими SIM-картами.
Проблема в этом сценарии заключается в том, что пользователь может зарегистрироваться с любым из своих номеров телефонов, и вполне возможно, что это не тот номер, который связан с активной сетью передачи данных.
Решение: для обоих сценариев наше решение заключается в том, чтобы получить провайдера услуг по предоставленному пользователем номеру телефона и сравнить его с провайдером услуг по IP-адресу SIM-карты для передачи данных. Если провайдеры услуг не совпадают, мы подтверждаем наличие двух SIM-карт и отправляем одну из следующих ошибок обратно в ваше приложение:
- Ошибка 60500 - Несоответствие номера телефона SNA
- Ошибка 60532 - Обнаружено возможное использование двух SIM-карт для SNA
Обработка отсутствия покрытия и переход на резервные каналы
Хотя в некоторых сценариях существуют обходные пути для обеспечения работы SNA, во всех случаях есть возможность переключения на другие каналы, предлагаемые Verify API, такие как WhatsApp или SMS.
Позвольте Verify управлять резервным копированием за вас
Функция автоматического резервного копирования SMS от Verify отправляет код по SMS, если SNA недоступна. Установите параметр канала в значение «auto» в коде, чтобы использовать резервный канал.
Обратитекам к документации, чтобы узнать больше о том, как включить автоматический выбор каналов. В настоящее время эта функция поддерживает резервное копирование только через SMS. Если вы хотите использовать WhatsApp в качестве резервного канала, вам все равно придется реализовать это в собственном коде.
Вот наиболее вероятные ситуации, в которых SNA может не работать:
1. Пользователь использует десктопное устройство
Поскольку настольные компьютеры не используют мобильный интернет, либо переключитесь на другой канал, либо следуйте инструкциям здесь, чтобы перенаправить пользователя с компьютера на мобильное устройство с помощью QR-кода или отправив пользователю ссылку по SMS.
2. Пользователь использует Wi-Fi в мобильном браузере
Попросите пользователя выключить Wi-Fi или переключитесь на другой канал. В этом случае вы, скорее всего, увидите ошибку 60531.
3. Сотовая сеть пользователя не поддерживается SNA
Переключитесь на другой канал.
Тестирование SNA у разных операторов и в разных странах
SNA зависит от реальных операторов и реального мобильного интернета, поэтому эмулятор или офисный Wi-Fi вам не помогут. Существует два способа тестирования в реальных сетях, и они отлично работают вместе.
Начните с тестового номера Verify SNA Live Test Number
Вам не нужно ждать одобрения оператора, чтобы попробовать SNA. Тестовый номер Verify SNA Live Test Number позволяет тестировать сервис с использованием вашего собственного мобильного номера, пока идет процесс регистрации оператора.
Используйте HeadSpin для тестирования в других регионах
Ваши пользователи не будут находиться у одного оператора или в одной стране с вашей командой разработчиков. Для тестирования там, где вы не находитесь физически, используйте облачный сервис реальных устройств, такой как HeadSpin, который предоставляет реальные устройства с локальными SIM-картами и номерами телефонов. Для получения дополнительной информации обратитесь к нашему руководству по тестированию Verify SNA HeadSpin.
Часто задаваемые вопросы по SNA
Каковы лучшие практики обработки ошибок?
Всегда проверяйте код ошибки в ответе API на каждом шаге. Ошибки SNA начинаются с 605xx и содержат описание рекомендуемых действий в ответе с кодом ошибки.
Где работает SNA?
Twilio Verify SNA работает во многих странах, включая США, Канаду, Великобританию, Германию, Францию, Испанию, Индонезию и многие другие. Свяжитесь с нами, чтобы узнать больше о нашем покрытии.
Сколько времени занимает SNA?
2–4 секунды.
Основной источник задержки для SNA — вызов sna.url на устройстве. Этот шаг обычно занимает около 2–3 секунд, но может занять до 4 секунд. Именно здесь Twilio отправляет запрос напрямую оператору для подтверждения активности сеанса передачи данных.
Вы можете получить ошибку 60519, если попытаетесь проверить статус верификации до завершения верификации оператором связи.
Дополнительные запросы API для получения sna.url и проверки верификации занимают менее 100 мс каждый.
Сколько данных передается при вызове sna.url?
40 байт.
Каков срок жизни (TTL) sna.url?
По умолчанию 15 секунд, но этот параметр можно настроить.
Что является триггером для выставления счета за SNA?
Verify SNA в настоящее время находится на этапе пилотного тестирования и не тарифицируется. Когда продукт перейдет в стадию бета-тестирования, плата будет списываться после вызова sna.url и подтверждения верификации либо получения кода ошибки 60500 (Несоответствие номера телефона SNA) или 60540 (Оператор связи SNA определил недействительный номер телефона). Другие ошибки тарифицироваться не будут.
Что такое TS.43?
TS.43 — это эволюция SNA с обновленной спецификацией, которая переносит доверие из сети мобильного оператора непосредственно на аппаратное обеспечение SIM-карты. SIM-карта генерирует криптографические доказательства для верификации пользователя без использования сотовых данных. Это снимает ограничения Wi-Fi, позволяя осуществлять верификацию с помощью проверяемых учетных данных (verifiable credentials) и бэкенд-шифрования.
Verify SNA пока не поддерживает TS.43. Тем не менее, ограничение Wi-Fi имеет простое обходное решение: принудительное использование мобильных данных в вашем приложении. Если вы заинтересованы в поддержке TS.43, пожалуйста, свяжитесь с нашим отделом продаж.
Работает ли SNA со спуфингом (подделкой) телефонных номеров?
Нет. Запрос завершится ошибкой у поставщика услуг при выполнении базовой аутентификации GSM.
Другие аспекты использования SNA
Silent Network Auth — отличное решение для бесшовной аутентификации в вашем приложении. Мы также рекомендуем добавить резервные варианты для других каналов, таких как WhatsApp и TOTP.
Для дальнейшего чтения мы рекомендуем:
- Что такое Silent Network Authentication?
- Технический обзор Silent Network Authentication
Если вы не нашли ответа на свой вопрос в этом документе, пожалуйста, свяжитесь с нами. Нам не терпится увидеть, что вы создадите!











