Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Czy mogę używać autoryjnego zamiast Google Authenticator w Laravel Fortify


Czy mogę używać autoryjnego zamiast Google Authenticator w Laravel Fortify


Laravel Fortify to pakiet uwierzytelniania zaplecza dla Laravel, który obsługuje uwierzytelnianie dwuskładnikowe (2FA) za pośrednictwem jednorazowych haseł (TOTP). Jest elastyczny i agnostyczny dla zatrudnionych przez użytkowników aplikacji klienckich TOTP, co oznacza, że ​​nie wiąże Cię konkretnie z Google Authenticator i może współpracować z dowolną aplikacją do uwierzytelniania opartego na TOTP, w tym Authy.

Co Laravel Fortify robi dla 2FA

Laravel Fortify zapewnia logikę zaplecza do generowania tajnych klawiszy 2FA, bezpiecznie przechowywania, generowania kodów odzyskiwania i sprawdzania tokenów TOTP podczas logowania. Wykorzystuje dwuskładnikowy tajny klucz użytkownika do weryfikacji jednorazowej hasła generowanego przez dowolną aplikację uwierzytelniającego, która obsługuje standardowy algorytm TOTP (RFC 6238). Fortify sam nie nakazuje ani nie ogranicza, która aplikacja mobilna lub komputerowa musi użyć użytkownika.

Korzystanie z AuthY zamiast Google Authenticator

Authy i Google Authenticator to aplikacje uwierzytelniające oparte na TOTP. Oba generują 6-cyfrowe kody co 30 sekund na podstawie tajnego klucza udostępnionego podczas konfiguracji (zwykle poprzez skanowanie kodu QR). Laravel Forterify działa bezproblemowo z dowolną aplikacją klienta, która obsługuje ten standard. Dlatego możesz absolutnie użyć Authy zamiast Google Authenticator z Laravel Fortify.

Kluczowe punkty o Authy i Google Authenticator w tym kontekście:

- Kompatybilność: Authy używa tego samego standardu TOTP co Google Authenticator, więc każda konfiguracja 2FA w Laravel Fortify będzie działać z dowolną aplikacją bez zmiany na zapleczu Laravel.

-Wrażenia użytkownika: Authy oferuje pewne zalety w stosunku do Google Authenticator, takie jak synchronizacja tokenów na różnych urządzeniach (obsługa wielu urządzeń), szyfrowane kopie zapasowe w chmurze i aplikacje komputerowe (historycznie, aktualnie skoncentrowane na urządzeniach mobilnych), które mogą stworzyć lepszą wrażenia użytkownika.

- Bezpieczeństwo: Authy ma opcje ochrony pinów i bezpieczeństwa biometrycznego w aplikacji oraz szyfrowanych kopii zapasowych, podczas gdy Google Authenticator nie ma zaszyfrowanych kopii zapasowych w chmurze i synchronizacji wielu urządzeń. Funkcje te mogą sprawić, że Authy jest bardziej przyjazny dla użytkownika i odporny na utratę urządzenia z perspektywy użytkownika.

- Konfiguracja w Laravel Fortify: Jedyną zmianą w implementacji Laravel Fortify byłoby podanie użytkownikowi kod QR lub tajnego klucza do skanowania w Authy zamiast Google Authenticator. Ponieważ obie aplikacje odczytują ten sam format, kod QR Fortify generuje prace poza pudełkiem z dowolną aplikacją.

Rozważania dotyczące implementacji

1. Wyświetlacz kodu QR Frontend: Włączając 2FA, Fortyfy zwykle generuje kod QR na podstawie tajnego klucza. Ten kod QR może być skanowany przez aplikacje Authy lub Google Authenticator. Twój frontend musi tylko renderować ten kod QR, a użytkownik może wybrać preferowaną aplikację. Nie wymaga zmian kodu zaplecza.

2. Krok potwierdzający: Jednym z problemów napotykanych z Laravel Fortify jest to, że włączenie 2FA bez potwierdzenia wprowadzonego kodu może zablokować użytkowników, jeśli nie ukończą poprawnie konfiguracji. Wdrożenie etapu potwierdzenia, w którym użytkownik wprowadza kod generowany przez Authy (lub Authenticator Google) po skanowaniu kodu QR, jest najlepszą praktyką. Dotyczy to niezależnie od zastosowanej aplikacji do uwierzytelniania.

3. Kody odzyskiwania: Fortify zapewnia kody odzyskiwania dla obejścia 2FA, jeśli użytkownik traci dostęp do aplikacji uwierzytelniającego. Kody te działają niezależnie od wyboru aplikacji (Authy lub Google Authenticator).

Podsumowanie różnic z perspektywy użytkownika

- Authy zalety: **
- Obsługa wielu urządzeń i automatyczna synchronizacja tokenów 2FA.
- Zaszyfrowane kopie zapasowe w chmurze, aby uniknąć utraty tokenów utraty urządzenia.
- Opcjonalne zabezpieczenia PIN i biometryczne dla aplikacji.
- Obsługa aplikacji komputerowych i przeglądarki (chociaż niektóre aplikacje komputerowe zostały przerwane na początku 2024 r.).
- Uwierzytelnianie oparte na push (choć nie standardowe TOTP, bardziej odpowiednie dla innych implementacji).

- Zalety uwierzytelniającego Google: **
- bardziej znane i wspierane przez wiele usług.
- Prostsza aplikacja, mniej złożona infrastruktura wsparcia (bez kont, brak kopii zapasowych).
- Całkowicie offline po wstępnej konfiguracji (brak kopii zapasowych w chmurze).

Z punktu widzenia integracji Laravel Fortyfy różnice te nie mają żadnych konsekwencji, ponieważ kody TOTP z dowolnej aplikacji są zatwierdzone w ten sam sposób przez Fortify.

Dodatkowe uwagi na temat wykorzystania fortyfy

Laravel Fortify nie zapewnia widoków frontendowych ani interfejsu użytkownika; świadczy usługi zaplecza do uwierzytelnienia. Wielu programistów używa Fortify z Laravel JetStream lub innymi zestawami interfejsu użytkownika. Niezależnie od interfejsu użytkownika, kluczem jest to, że Fortify generuje sekret 2FA i sprawdza kody, pozostawiając użytkownikowi wybór aplikacji uwierzytelniającego.

Jeśli potrzebne jest dostosowanie, aby lepiej poprawić odzyskiwanie UX lub obsługiwać konta (dodanie flagi „Two_Factor_Conmed”, dostosowywanie widoków itp.), Można ją zaimplementować w warstwie Fortify, ale jest niezależny od wyboru między Authy i Google Authenticator.

Wniosek

Tak, możesz użyć Authy zamiast Google Authenticator w Laravel Fortify bez konieczności zmiany wdrożenia Backend 2FA. Obie aplikacje używają tego samego standardu TOTP w pełni obsługiwanego przez Fortify. Wybór Authy może oferować dla użytkowników zwiększone funkcje użyteczności i twoich twoich użytkowników, szczególnie w scenariuszach utraty urządzenia lub dostępu do wielu urządzeń, ale z punktu widzenia programistów Laravel integracja pozostaje taka sama. Użytkownicy po prostu skanują kod QR dostarczany przez Fortify za pomocą preferowanej aplikacji, aby skonfigurować 2FA.

Ta elastyczność wynika z projektowania, umożliwiając Laravel Forterify na pracę ze standardowymi kodami TOTP generującą aplikację, w tym między innymi Google Authenticator, Authy, Microsoft Authenticator i inne.