Laravel Fortify je balíček overovania backend pre Laravel, ktorý podporuje dvojfaktorové autentifikáciu (2FA) prostredníctvom časovo založených jednorazových hesiel (TOTP). Je flexibilná a agnostická pre zamestnaných používateľov aplikácií klientov Totp, čo znamená, že vás konkrétne nezväzuje s autentifikátorom Google a môže pracovať s akoukoľvek aplikáciou na autentifikáciu Totp vrátane Authy.
Čo robí Laravel Fortify pre 2FA
Laravel Fortify poskytuje logiku backend na generovanie tajných klávesov 2FA, bezpečne ich ukladá, generuje kódy obnovy a overuje tokeny Totp počas prihlásenia. Používa dvojfaktorový tajný kľúč používateľa na overenie jednorazového hesla generovaného akoukoľvek aplikáciou Authenticator, ktorá podporuje štandardný algoritmus Totp (RFC 6238). Samotný Fortify nenaroduje ani neobmedzuje, ktorá mobilná alebo stolná aplikácia musí používať používateľ.
Používanie Authy namiesto autentikátora Google
Authy a Google Authenticator sú aplikácie Authenticator založené na Totp. Obidve generujú 6-ciferné kódy každých 30 sekúnd na základe tajného kľúča zdieľaného počas nastavenia (zvyčajne skenovaním QR kódu). Laravel Fortify bez problémov pracuje s akoukoľvek klientskou aplikáciou, ktorá podporuje tento štandard. Preto môžete absolútne použiť Authy namiesto autentifikátora Google s Laravel Fortify.
Kľúčové body týkajúce sa Authy a Authenticator Google v tomto kontexte:
- Kompatibilita: Authy používa rovnaký štandard Totp ako Autenticator Google, takže akékoľvek nastavenie 2FA v Laravel Fortify bude fungovať s jednou aplikáciou bez akejkoľvek zmeny vášho Laravel Backend.
-Používateľská skúsenosť: Authy ponúka niektoré výhody oproti autentifikátora spoločnosti Google, ako je synchronizácia tokenov naprieč zariadeniami (podpora viacerých zariadení), šifrované zálohy cloudu a aplikácie pre stolné počítače (historicky, v súčasnosti zamerané na mobilné zariadenia), ktoré môžu vytvoriť lepšiu skúsenosť používateľa.
- Zabezpečenie: Authy má možnosti ochrany kolíkov a biometrickej bezpečnosti v aplikácii a šifrované zálohy, zatiaľ čo Autenticator Google nemá šifrované zálohy cloudu a synchronizáciu viacerých zariadení. Tieto funkcie môžu urobiť Authy užívateľsky prívetivejšie a odolné proti strate zariadenia z pohľadu používateľa.
- Nastavenie v Laravel Fortify: Jedinou zmenou vo vašej implementácii Laravel Fortify by bolo poskytnúť používateľovi QR kód alebo tajný kľúč na skenovanie v auty namiesto autentifikátora Google. Pretože obe aplikácie čítajú rovnaký formát, QR kód Fortify vygeneruje, funguje mimo políčka s jednou aplikáciou.
Úvahy o implementácii
1. Frontend QR Code Display: Pri povolení 2FA obvykle vygeneruje QR kód založený na tajnom kľúči. Tento QR kód je možné naskenovať spoločnosťou Authy alebo Google Authenticator Apps. Váš frontend musí iba vykresliť tento QR kód a užívateľ si môže zvoliť svoju preferovanú aplikáciu. Nie sú potrebné žiadne zmeny kódu backend.
2. Potvrdenie Krok: Jedným z problémov, s ktorým sa niekedy stretne s Laravel Fortifom, je to, že povolenie 2FA bez potvrdenia, že zadaný kód môže uzamknúť používateľov, ak nastavenie nedokončí správne. Najlepším postupom je implementácia kroku potvrdenia, keď používateľ zadá kód vygenerovaný Authy (alebo Google Authenticator) po skenovaní kódu QR. Platí to bez ohľadu na použitú autentifikačnú aplikáciu.
3. Kódy obnovy: Fortify poskytuje kódy obnovy pre obtok 2FA, ak používateľ stratí prístup k svojej aplikácii Authenticator. Tieto kódy fungujú nezávisle od výberu aplikácie (Authy alebo Google Authenticator).
Zhrnutie rozdielov z perspektívy používateľa
- Authy výhody: **
- Podpora viacerých zariadení a automatická synchronizácia tokenov 2FA.
- Šifrované zálohy cloudu, aby sa predišlo strate tokenov pri strate zariadenia.
- Voliteľné PIN a biometrické zabezpečenie pre aplikáciu.
- Podpora aplikácií pre stolné počítače a prehliadač (aj keď niektoré aplikácie pre stolné počítače boli začiatkom roku 2024 prerušené).
- Autentifikácia založená na push (aj keď nie štandardná Totp, relevantnejšia pre ďalšie implementácie).
- Výhody autentifikátora Google: **
- Mnohé služby známe a podporované.
- Simple App, menej zložitá podkladová infraštruktúra (žiadne účty, žiadne zálohy).
- Úplne offline po počiatočnom nastavení (žiadne zálohy cloudu).
Z hľadiska integrácie Laravel Fortify tieto rozdiely nemajú žiadny dôsledok, pretože kódy Totp z ktorejkoľvek aplikácie sú overené rovnakým spôsobom pomocou Fortify.
Ďalšie poznámky k použitiu Fortify
Laravel Fortify neposkytuje výhľady na frontend ani používateľské rozhranie; Poskytuje backendové služby pre autentifikáciu. Mnoho vývojárov používa Fortify s Laravel Jetstream alebo inými súpravami UI. Bez ohľadu na používateľské rozhranie je kľúčom, že Fortify generuje tajomstvo 2FA a overuje kódy, pričom používateľovi ponecháva výber aplikácie Authenticator.
Ak je potrebné lepšie vylepšiť UX alebo lepšie zvládnuť obnovenie účtu (pridanie príznaku „Two_Factor_Confirmed“, Prispôsobenie zobrazení atď.), Môže sa implementovať vo vrstve Fortify, ale je nezávislé od výberu medzi Authy a Google Authenticator.
Záver
Áno, môžete použiť Authy namiesto Autenticatora Google v Laravel Fortify bez toho, aby ste pre vašu implementáciu 2FA potrebovali zmenu. Obe aplikácie používajú rovnaký štandard Totp, ktorý je plne podporovaný spoločnosťou Fitify. Výber spoločnosti Authy môže ponúkať vylepšenú použiteľnosť a funkcie zálohovania pre vašich používateľov, najmä v scenároch straty zariadenia alebo prístupu s viacerými zariadeniami, ale z hľadiska vývojára Laravela zostáva integrácia rovnaká. Používatelia jednoducho naskenujú QR kód poskytnutý spoločnosťou Fortify s ich preferovanou aplikáciou na nastavenie 2FA.
Táto flexibilita je podľa návrhu, ktorá umožňuje Laravel Fortify pracovať s akýmikoľvek aplikáciami, ktoré generujú štandardné kódy Totp, vrátane, ale nielen, Autenticator, Authy, Authy, Microsoft Authenticator a ďalších.