Πώς να προσθέσετε έλεγχο ταυτότητας δύο παραγόντων (2FA) στην εφαρμογή σας
Για να προσθέσετε έλεγχο ταυτότητας δύο παραγόντων (2FA) στην εφαρμογή σας, επιτρέψτε στους χρήστες να συνδέσουν μια εφαρμογή ταυτοποίησης σαρώνοντας έναν κωδικό QR, ζητήστε τον εξαψήφιο κωδικό που δείχνει μετά τον κωδικό πρόσβασης, και δημιουργήστε πλήρη συνεδρία στον διακομιστή μόνο αφού ελεγχθεί αυτός ο κωδικός. Δώστε σε κάθε χρήστη κωδικούς ανάκτησης μίας χρήσης όταν το ενεργοποιεί, περιορίστε πόσες δοκιμές μπορεί να κάνει κάποιος, και απαιτήστε τον κωδικό πρόσβασης μαζί με έναν τρέχοντα κωδικό πριν απενεργοποιηθεί το 2FA. Αν χρησιμοποιείτε φιλοξενούμενο πάροχο ταυτοποίησης, ενεργοποιήστε την ενσωματωμένη επιλογή πολλαπλών παραγόντων αντί να χτίσετε τη δική σας.
Αυτός ο οδηγός περιγράφει τις επιλογές, τη ροή βήμα προς βήμα, προτροπές για τον δημιουργό AI και τα λάθη που κάνουν το 2FA να φαίνεται ενεργό ενώ δεν κάνει τίποτα. Αν η ιδέα είναι νέα, ξεκινήστε με το τι είναι ο έλεγχος ταυτότητας δύο παραγόντων.
Πριν ξεκινήσετε: χρειάζεστε λειτουργική σύνδεση
Το 2FA μπαίνει πάνω από μια υπάρχουσα είσοδο. Χρειάζεστε ένα από αυτά πρώτα:
- Τη δική σας σύνδεση, με χρήστες και κωδικούς πρόσβασης κατακερματισμένους στη βάση δεδομένων της εφαρμογής σας.
- Φιλοξενούμενο πάροχο ταυτοποίησης που διαχειρίζεται τους χρήστες για εσάς.
Αν δεν έχετε ακόμη κανένα από τα δύο, ξεκινήστε με πώς να προσθέσετε σύνδεση στην εφαρμογή σας. Ο υπόλοιπος οδηγός υποθέτει ότι ένα βήμα με κωδικό πρόσβασης ήδη λειτουργεί.
Επιλέξτε τον δεύτερο παράγοντά σας
| Μέθοδος | Προσπάθεια χρήστη | Ασφάλεια | Κόστος λειτουργίας | Καλή προεπιλογή; |
|---|---|---|---|---|
| Εφαρμογή ταυτοποίησης (TOTP) | Σάρωση QR μία φορά, πληκτρολόγηση κωδικού στη σύνδεση | Καλή· μπορεί να εξαπατηθεί με phishing αν ένας ψεύτικος ιστότοπος ζητήσει τον κωδικό | Δωρεάν | Ναι, για τις περισσότερες εφαρμογές |
| Κλειδί πρόσβασης ή κλειδί ασφαλείας | Πάτημα ή χρήση δακτυλικού αποτυπώματος | Η ισχυρότερη· αντιστέκεται στο phishing | Δωρεάν | Ναι, αν οι χρήστες σας είναι άνετοι με αυτό |
| Κωδικός email | Έλεγχος εισερχομένων στη σύνδεση | Τόσο ισχυρός όσο ο λογαριασμός email | Κόστος αποστολής email | Μόνο ως εφεδρικός |
| Κωδικός SMS | Αναμονή για μήνυμα | Η πιο αδύναμη· SIM swapping και phishing | Χρέωση ανά μήνυμα | Μόνο αν οι χρήστες δεν μπορούν να χρησιμοποιήσουν εφαρμογή |
TOTP σημαίνει time-based one-time password (κωδικός μίας χρήσης βάσει χρόνου), το πρότυπο (RFC 6238) που χρησιμοποιούν οι εφαρμογές ταυτοποίησης. Ο διακομιστής σας και το τηλέφωνο του χρήστη μοιράζονται ένα μυστικό· καθένας δημιουργεί τον ίδιο σύντομο κωδικό από αυτό το μυστικό και την τρέχουσα ώρα, που συνήθως αλλάζει κάθε 30 δευτερόλεπτα. Δεν χρειάζεται σύνδεση δικτύου ούτε πάροχος SMS.
Τα κλειδιά πρόσβασης (passkeys) αντικαθιστούν ή συμπληρώνουν τους κωδικούς πρόσβασης με ένα κρυπτογραφικό κλειδί που είναι αποθηκευμένο στη συσκευή του χρήστη. Είναι ισχυρότερα, αλλά θέλουν περισσότερη δουλειά για να χτιστούν μόνοι σας, οπότε πολλές εφαρμογές ξεκινούν με TOTP και προσθέτουν κλειδιά πρόσβασης αργότερα, ή τα παίρνουν από πάροχο ταυτοποίησης.
Να το χτίσετε ή να το ενεργοποιήσετε;
| Προσέγγιση | Υπέρ | Κατά |
|---|---|---|
| Πολλαπλοί παράγοντες φιλοξενούμενου παρόχου | Λιγότερος κώδικας· ο πάροχος συντηρεί τις λεπτομέρειες ασφαλείας | Μηνιαίο κόστος σε κλίμακα· εξαρτάστε από τις επιλογές του παρόχου |
| Δικό σας TOTP με βιβλιοθήκη | Πλήρης έλεγχος· χωρίς χρέωση ανά χρήστη | Εσείς κατέχετε τις ακραίες περιπτώσεις: κλειδώματα, ανάκτηση, αποθήκευση μυστικών |
Ελέγξτε την τρέχουσα τεκμηρίωση του παρόχου σας για το ποιους παράγοντες υποστηρίζει και σε ποια πακέτα. Με όποιον τρόπο κι αν πάτε, μην γράψετε ποτέ μόνοι σας τη μαθηματική δημιουργία κωδικών· χρησιμοποιήστε μια ευρέως χρησιμοποιούμενη βιβλιοθήκη.
Αποφασίστε την πολιτική πρώτα
Απαντήστε σε αυτά πριν γράψετε προτροπή, γιατί αλλάζουν τον σχεδιασμό:
- Ποιος πρέπει να το χρησιμοποιεί; Προαιρετικό για όλους, υποχρεωτικό για διαχειριστές και προσωπικό, ή υποχρεωτικό για όλους. Είναι συνηθισμένο να είναι υποχρεωτικό για όποιον έχει δύναμη διαχειριστή. Δείτε έλεγχος πρόσβασης βάσει ρόλων.
- Πόσο συχνά ξαναπληκτρολογούν κωδικό οι χρήστες; Σε κάθε σύνδεση, ή μία φορά ανά συσκευή για 30 ημέρες («θυμήσου αυτή τη συσκευή»).
- Ποιες ενέργειες χρειάζονται νέα επαλήθευση; Η αλλαγή email, τα στοιχεία πληρωμής ή η απενεργοποίηση του 2FA είναι καλοί υποψήφιοι. Αυτό λέγεται step-up authentication.
- Ποια είναι η διαδικασία για χαμένο τηλέφωνο; Κωδικοί ανάκτησης, συν μια χειροκίνητη εφεδρική διαδικασία που είστε διατεθειμένοι να εκτελέσετε.
Βήμα προς βήμα: TOTP 2FA στη δική σας σύνδεση
1. Αποθηκεύστε τα σωστά πεδία
Κάθε χρήστης χρειάζεται: αν είναι ενεργοποιημένο το 2FA, το μυστικό TOTP (κρυπτογραφημένο στην αποθήκευση, όχι σε απλό κείμενο), την ώρα ενεργοποίησης, και μια λίστα κωδικών ανάκτησης αποθηκευμένη κατακερματισμένη, όπως οι κωδικοί πρόσβασης. Προσθέστε και χώρο για καταμέτρηση αποτυχημένων προσπαθειών.
2. Εγγραφή
- Ο χρήστης ανοίγει τις Ρυθμίσεις και πατά Ενεργοποίηση ελέγχου ταυτότητας δύο παραγόντων.
- Ο διακομιστής δημιουργεί νέο μυστικό και το επιστρέφει ως κωδικό QR, συν την κείμενη μορφή για όσους δεν μπορούν να σαρώσουν.
- Ο χρήστης το σαρώνει σε μια εφαρμογή ταυτοποίησης και πληκτρολογεί τον τρέχοντα κωδικό.
- Ο διακομιστής ελέγχει τον κωδικό. Μόνο αν είναι σωστός αποθηκεύει το μυστικό και σημειώνει το 2FA ως ενεργοποιημένο.
- Η εφαρμογή δείχνει 8–10 κωδικούς ανάκτησης μία φορά και ζητά από τον χρήστη να τους αποθηκεύσει.
Το βήμα 4 έχει σημασία: αν ενεργοποιηθεί το 2FA πριν επιβεβαιωθεί ένας κωδικός, όποιος έκανε λάθος στη σάρωση κλειδώνεται στην επόμενη σύνδεση.
3. Σύνδεση με δεύτερο βήμα
- Ο χρήστης υποβάλλει email και κωδικό πρόσβασης. Ο διακομιστής τα ελέγχει.
- Αν το 2FA είναι ενεργό, ο διακομιστής δεν δημιουργεί πλήρη συνεδρία. Δημιουργεί αντί γι' αυτό μια σύντομης διάρκειας κατάσταση «εκκρεμεί δεύτερος παράγοντας».
- Η εφαρμογή δείχνει την οθόνη κωδικού. Ο διακομιστής ελέγχει τον κωδικό, με μικρό περιθώριο για απόκλιση ρολογιού.
- Μόνο τότε εκδίδει την πραγματική συνεδρία.
Κάθε προστατευμένη διαδρομή και τελικό σημείο API πρέπει να απορρίπτει την κατάσταση εκκρεμότητας. Μια οθόνη 2FA που κρύβει μόνο σελίδες στον περιηγητή μπορεί να παρακαμφθεί καλώντας απευθείας το API.
4. Όρια και ειδοποιήσεις
Ένας εξαψήφιος κωδικός έχει ένα εκατομμύριο συνδυασμούς, που μπορούν να μαντευτούν αν δεν υπάρχουν όρια. Περιορίστε τις προσπάθειες, κλειδώστε το δεύτερο βήμα για ένα διάστημα μετά από επαναλαμβανόμενες αποτυχίες, και στείλτε email στον χρήστη όταν συμβαίνει αυτό. Δείτε περιορισμός ρυθμού και αποστολή email από την εφαρμογή σας.
5. Ανάκτηση και απενεργοποίηση
- Ένας κωδικός ανάκτησης δουλεύει μία φορά, μετά διαγράφεται.
- Η απενεργοποίηση του 2FA απαιτεί τον κωδικό πρόσβασης και έναν τρέχοντα κωδικό ή κωδικό ανάκτησης.
- Η δημιουργία νέων κωδικών ανάκτησης ακυρώνει το παλιό σετ.
- Στέλνετε email στον χρήστη κάθε φορά που ενεργοποιείται ή απενεργοποιείται το 2FA.
Προτροπές για τον δημιουργό AI
Ξεκινήστε με τη βασική ροή:
Πρόσθεσε προαιρετικό έλεγχο ταυτότητας δύο παραγόντων με εφαρμογές ταυτοποίησης (TOTP) στην υπάρχουσα σύνδεση με email και κωδικό πρόσβασης. Χρησιμοποίησε μια ευρέως γνωστή βιβλιοθήκη TOTP, μην γράψεις εσύ τον αλγόριθμο. Στις Ρυθμίσεις, δείξε κωδικό QR και το μυστικό ως κείμενο, και ενεργοποίησε το 2FA μόνο αφού ο χρήστης εισαγάγει έγκυρο κωδικό. Αποθήκευσε το μυστικό κρυπτογραφημένο και μην το ξαναδείξεις μετά τη ρύθμιση. Δείξε 10 κωδικούς ανάκτησης μίας χρήσης μία φορά και αποθήκευσέ τους κατακερματισμένους.
Μετά, η επιβολή, όπου συχνά υστερεί ο κώδικας που παράγεται:
Επιβολή του 2FA στον διακομιστή. Μετά από σωστό κωδικό πρόσβασης, οι χρήστες με ενεργό 2FA παίρνουν σύντομη κατάσταση «εκκρεμεί δεύτερος παράγοντας», όχι πλήρη συνεδρία. Κάθε προστατευμένη σελίδα και διαδρομή API πρέπει να απορρίπτει αυτή την κατάσταση. Περιόρισε τις προσπάθειες κωδικού σε 5, και μετά κλείδωσε το δεύτερο βήμα για 15 λεπτά και στείλε email στον χρήστη.
Έπειτα η πολιτική:
Απαίτησε 2FA για λογαριασμούς διαχειριστών: ένας διαχειριστής χωρίς 2FA στέλνεται στη ρύθμιση και δεν έχει πρόσβαση στον πίνακα μέχρι να την ολοκληρώσει. Απαίτησε τον κωδικό πρόσβασης και έναν τρέχοντα κωδικό για να απενεργοποιηθεί το 2FA ή να αλλάξει το email του λογαριασμού. Στείλε email στον χρήστη όταν ενεργοποιείται ή απενεργοποιείται το 2FA.
Τέλος, ζητήστε από τον πράκτορα να εξηγήσει τι χτίστηκε:
Απαρίθμησε κάθε διαδρομή που ελέγχει για ολοκληρωμένο δεύτερο παράγοντα, πού αποθηκεύονται το μυστικό TOTP και οι κωδικοί ανάκτησης, και πώς προστατεύονται.
Συνηθισμένα λάθη
- Συνεδρία που εκδίδεται μετά τον κωδικό πρόσβασης. Το σοβαρότερο σφάλμα. Αν υπάρχει πλήρης συνεδρία πριν ελεγχθεί ο κωδικός, το 2FA είναι διακοσμητικό. Δοκιμάστε καλώντας ένα προστατευμένο API μετά μόνο το βήμα του κωδικού πρόσβασης.
- Κανένα όριο προσπαθειών. Απεριόριστες μαντεψιές κάνουν τον κωδικό ευάλωτο σε επίθεση brute-force.
- Μυστικά ή κωδικοί ανάκτησης σε απλό κείμενο. Μια διαρροή βάσης τότε παραδίδει τον δεύτερο παράγοντα όλων.
- Ενεργοποίηση πριν την επιβεβαίωση. Οι χρήστες που έκαναν λάθος σάρωση κλειδώνονται στην επόμενη σύνδεση.
- Χωρίς διαδικασία ανάκτησης. Κάθε χαμένο τηλέφωνο γίνεται αίτημα υποστήριξης ή χαμένος πελάτης.
- Εύκολη απενεργοποίηση. Αν μια κλεμμένη συνεδρία μπορεί να απενεργοποιήσει το 2FA χωρίς κωδικό, η προστασία χάνεται.
- Κωδικοί στα αρχεία καταγραφής. Βεβαιωθείτε ότι κωδικοί και μυστικά δεν εμφανίζονται ποτέ σε αρχεία διακομιστή ή μηνύματα σφάλματος.
- Έλεγχος μόνο στη σελίδα σύνδεσης. Η επαναφορά κωδικού, η σύνδεση με «μαγικό σύνδεσμο» και οποιαδήποτε κοινωνική σύνδεση πρέπει να σέβονται επίσης το 2FA, αλλιώς γίνονται τρόπος παράκαμψης.
Λίστα ελέγχου δοκιμών
- Η εγγραφή ολοκληρώνεται μόνο μετά από έγκυρο κωδικό
- Σύνδεση με σωστό κωδικό πρόσβασης αλλά χωρίς δεύτερο κωδικό δεν δίνει πρόσβαση σε καμία προστατευμένη σελίδα ή API
- Ένας λάθος κωδικός απορρίπτεται· επαναλαμβανόμενοι λάθος κωδικοί ενεργοποιούν το κλείδωμα και email
- Ένας κωδικός από μερικά λεπτά πριν απορρίπτεται
- Κάθε κωδικός ανάκτησης δουλεύει ακριβώς μία φορά
- Η απενεργοποίηση του 2FA απαιτεί κωδικό πρόσβασης και τρέχοντα κωδικό
- Η επαναφορά κωδικού δεν παρακάμπτει το 2FA
- Διαχειριστές χωρίς 2FA δεν φτάνουν σε σελίδες διαχείρισης (αν είναι υποχρεωτικό)
- Τα μυστικά και οι κωδικοί ανάκτησης είναι κρυπτογραφημένα ή κατακερματισμένα στη βάση
- Κανένας κωδικός ή μυστικό δεν εμφανίζεται στα αρχεία καταγραφής
Εκτελέστε και την πλήρη λίστα ασφαλείας για εφαρμογές που χτίστηκαν με AI πριν την κυκλοφορία.
2FA στο Mythex
Το Mythex δεν περιλαμβάνει ενσωματωμένο σύστημα σύνδεσης για τους τελικούς χρήστες της εφαρμογής σας, οπότε το 2FA είναι μέρος όποιας προσέγγισης ταυτοποίησης κι αν επιλέξετε: τη δική σας σύνδεση email και κωδικού πρόσβασης με τη βάση δεδομένων του έργου, ή έναν φιλοξενούμενο πάροχο με υποστήριξη πολλαπλών παραγόντων. Περιγράφετε τι θέλετε στο chat με προτροπές σαν τις παραπάνω, και τα κλειδιά του παρόχου μπαίνουν στα μυστικά του έργου (μέσω του /secrets, των ρυθμίσεων του έργου ή της κάρτας μυστικών που εμφανίζει ο πράκτορας) και όχι στο πλαίσιο του μηνύματος. Η συνταγή της τεκμηρίωσης Προσθήκη σύνδεσης στην εφαρμογή σας έχει αρχική προτροπή, και το Ασφάλεια για εφαρμογές που φτιάχνετε καλύπτει τις συνήθειες γύρω από κλειδιά και δικαιώματα. Αφού τελειώσει ο πράκτορας, δοκιμάστε κάθε στοιχείο της λίστας στο Preview πριν δημοσιεύσετε.
Ερωτήσεις
Ποιος είναι ο πιο εύκολος τρόπος να προσθέσω έλεγχο ταυτότητας δύο παραγόντων σε μια εφαρμογή;
Αν χρησιμοποιείτε φιλοξενούμενο πάροχο ταυτοποίησης, ενεργοποιήστε την ενσωματωμένη επιλογή πολλαπλών παραγόντων· συνήθως είναι ο λιγότερος κώδικας. Αν έχετε δική σας σύνδεση, προσθέστε κωδικούς από εφαρμογή ταυτοποίησης (TOTP) με μια ευρέως γνωστή βιβλιοθήκη, συν κωδικούς ανάκτησης και έλεγχο στον διακομιστή.
Πρέπει να χρησιμοποιήσω κωδικούς SMS για το 2FA;
Τα SMS είναι καλύτερα από το να μην υπάρχει δεύτερος παράγοντας, αλλά είναι η πιο αδύναμη συνηθισμένη επιλογή, γιατί τα μηνύματα μπορούν να ανακατευθυνθούν με SIM swapping και οι κωδικοί να εξαπατηθούν με phishing. Προσφέρετε εφαρμογή ταυτοποίησης ως προεπιλογή, και κλειδιά πρόσβασης (passkeys) αν οι χρήστες σας είναι έτοιμοι γι' αυτά.
Χρειάζομαι βάση δεδομένων για να προσθέσω 2FA;
Αν έχετε δική σας σύνδεση, ναι. Το μυστικό 2FA κάθε χρήστη, το αν είναι ενεργοποιημένο, και οι κατακερματισμένοι κωδικοί ανάκτησης πρέπει να αποθηκεύονται κάπου όπου ο διακομιστής σας μπορεί να τα ελέγξει. Ένας φιλοξενούμενος πάροχος ταυτοποίησης το αποθηκεύει για εσάς.
Τι γίνεται αν ο χρήστης χάσει το τηλέφωνό του;
Συνδέεται με έναν από τους κωδικούς ανάκτησης μίας χρήσης που του εμφανίσατε όταν ενεργοποίησε το 2FA, και μετά ρυθμίζει ξανά το 2FA σε νέα συσκευή. Χωρίς κωδικούς ανάκτησης χρειάζεται χειροκίνητη επαλήθευση ταυτότητας, οπότε αποφασίστε τη διαδικασία πριν την κυκλοφορία.