Laravel Fortify является бэкэнд-пакетом аутентификации для Laravel, который поддерживает двухфакторную аутентификацию (2FA) с помощью одноразовых паролей на основе времени (TOTP). Он гибкий и агностик для пользователей клиентского приложения TOTP, что означает, что он не связывает вас специально с Google Authenticator и может работать с любым приложением для аутентификации на основе TOTP, включая Authy.
Что делает Laravel Fortify для 2FA
Laravel Fortify предоставляет логику бэкэнд для создания секретных ключей 2FA, надежно хранить их, генерировать коды восстановления и проверять токены TOTP во время входа в систему. Он использует двухфакторный секретный ключ пользователя для проверки единовременного пароля, сгенерированного любым приложением Authenticator, которое поддерживает стандартный алгоритм TOTP (RFC 6238). Сам Fortify не требует и не ограничивает, какое мобильное или настольное приложение должно использовать пользователь.
Использование Auty вместо Google Authenticator
Authy и Google Authenticator являются приложениями Authenticator на основе TOTP. Оба генерируют 6-значные коды каждые 30 секунд в зависимости от секретного ключа, разделенного во время установки (обычно путем сканирования QR-кода). Laravel Fortify работает с любым клиентским приложением, которое поддерживает этот стандарт. Поэтому вы можете абсолютно использовать Auty вместо Google Authenticator с Laravel Fortify.
Ключевые моменты об Authy и Google Authenticator в этом контексте:
- Совместимость: Authy использует тот же стандарт TOTP, что и Google Authenticator, поэтому любая установка 2FA в Laravel Fortify будет работать с любого приложения без каких -либо изменений в ваш бэкэнд Laravel.
-Пользовательский опыт: Authy предлагает некоторые преимущества по сравнению с Authenticator Google, такими как синхронизация токенов между устройствами (поддержка с несколькими устройствами), зашифрованные облачные резервные копии и настольные приложения (исторически, в настоящее время мобильные), которые могут создать лучший пользовательский опыт.
- Security: Authy имеет параметры для защиты PIN-код и биометрической безопасности в приложении и зашифрованных резервных копий, в то время как Google Authenticator не имеет зашифрованных облачных резервных копий и синхронизации с несколькими устройствами. Эти функции могут сделать Authy более удобной и устойчивой к потере устройства с точки зрения пользователя.
- Настройка в Laravel Fortify: единственное изменение в вашей реализации Laravel Fortify - это предоставление QR -кода или секретного ключа пользователю для сканирования в Authy вместо Google Authenticator. Поскольку оба приложения читают один и тот же формат, QR -код Foreify Generates Works Out в поле с любым приложением.
Соображения реализации
1. Frontend QR -дисплей кода: при включении 2FA, обогачивает, как правило, генерирует QR -код на основе секретного ключа. Этот QR -код может быть отсканирован приложениями Auty или Google Authenticator. Вашему фронте просто необходимо отобразить этот QR -код, и пользователь может выбрать свое предпочтительное приложение. Никаких изменений кода бэкэнд не требуется.
2. Шаг подтверждения: одна проблема, которую иногда встречается с Laravel Fortify, заключается в том, что включение 2FA без подтверждения введенного кода может заблокировать пользователей, если они не выполняют должным образом. Реализация шага подтверждения, на котором пользователь вводит код, сгенерированный Authy (или Google Authenticator) после сканирования QR -кода, является наилучшей практикой. Это относится независимо от используемого приложения аутентификации.
3. Коды восстановления: Fortify предоставляет коды восстановления для обхода 2FA, если пользователь теряет доступ к своему приложению Authenticator. Эти коды работают независимо от выбора приложения (Authy или Google Authenticator).
Сводка отличий с точки зрения пользователей
- Преимущества Authy: **
- Поддержка с несколькими устройствами и автоматическая синхронизация токенов 2FA.
- Зашифрованные резервные копии облаков, чтобы не потерять токены при потере устройства.
- Необязательный вывод и биометрическая безопасность для приложения.
- Поддержка приложений для настольных и браузеров (хотя некоторые настольные приложения были прекращены с начала 2024 года).
- Аутентификация на основе Push (хотя и не стандартная TOTP, более актуальная для других реализаций).
- Google Authenticator Преимущества: **
- более широко известен и поддерживается многими услугами.
- Более простое приложение, менее сложная инфраструктура поддержки (без учетных записей, без резервных копий).
- полностью автономно после начальной настройки (без облачных резервных копий).
С точки зрения интеграции Laravel Fortify эти различия не имеют никакого значения, поскольку коды TOTP из любого приложения подтверждены одинаковым путем Fortify.
Дополнительные заметки об использовании Fortify
Laravel Fortify не предоставляет виды на фронт или пользовательский интерфейс; Он предоставляет сервисные услуги для аутентификации. Многие разработчики используют Fortify с Laravel JetStream или другими наборами пользовательского интерфейса. Независимо от пользовательского интерфейса, ключ заключается в том, что Fortify генерирует секрет 2FA и проверяет коды, оставляя пользователь выбор приложения Authenticator.
Если настройка необходима для улучшения восстановления UX или обработки учетной записи (добавление флага «two_factor_confirmed», настройка представлений и т. Д.), Он может быть реализован на слое Fortify, но не зависит от выбора между Authy и Authenticator Google.
Заключение
Да, вы можете использовать Authy вместо Google Authenticator в Laravel Fortify без изменений, необходимых для вашей реализации Backend 2FA. Оба приложения используют один и тот же стандарт TOTP, полностью поддерживаемый Fortify. Выбор Authy может предложить повышенные удобство использования и функции резервного копирования для ваших пользователей, особенно в сценариях потери устройства или многократного доступа, но с точки зрения разработчика Laravel, интеграция остается прежней. Пользователи просто сканируют QR -код, предоставленный Fortify с их предпочтительным приложением для настройки 2FA.
Эта гибкость по разработке, что позволяет Laravel Fortify для работы с любыми приложениями, генерирующими стандартные коды TOTP, включая, помимо прочего, Google Authenticator, Authy, Microsoft Authenticator и другие.