როგორ დავამატოთ ორფაქტორიანი ავთენტიფიკაცია თქვენს აპში
აპში ორფაქტორიანი ავთენტიფიკაციის (2FA) დასამატებლად მომხმარებელს საშუალება მიეცით, რომ ავთენტიფიკატორის აპი QR კოდის სკანირებით მიაბას, შესვლისას პაროლის შემდეგ ჰკითხეთ ექვსნიშნა კოდი, რომელსაც ის აჩვენებს, და სერვერზე სრული სესია მხოლოდ მაშინ შექმენით, როცა ეს კოდი სწორია. ჩართვისას თითოეულ მომხმარებელს მიეცით ერთჯერადი აღდგენის კოდები, შეზღუდეთ არასწორი ცდების რაოდენობა და 2FA-ს გამორთვისთვის მოითხოვეთ პაროლი და მიმდინარე კოდი. თუ ჰოსტირებულ ავთენტიფიკაციის პროვაიდერს იყენებთ, ჩართეთ მისი ჩაშენებული მრავალფაქტორიანი ვარიანტი და თავად არ ააშენოთ.
ეს გზამკვლევი განიხილავს არჩევანს, ზუსტ პროცესს, პრომპტებს AI ბილდერისთვის და შეცდომებს, რომლებიც 2FA-ს არსებულად აჩენს, მაგრამ არაფერს არ იცავს. თუ ეს კონცეფცია ახალია, დაიწყეთ რა არის ორფაქტორიანი ავთენტიფიკაცია.
დაწყებამდე: გჭირდებათ მუშა შესვლა
2FA ზის არსებულ შესვლაზე. საჭიროა ერთ-ერთი ეს:
- თქვენი შესვლა, მომხმარებლებითა და ჰეშირებული პაროლებით თქვენი აპის მონაცემთა ბაზაში.
- ჰოსტირებული ავთენტიფიკაციის პროვაიდერი, რომელიც მომხმარებლებს თქვენთვის მართავს.
თუ ჯერ არც ერთი გაქვთ, დაიწყეთ როგორ დავამატოთ შესვლა აპში-ით. დანარჩენი გზამკვლევი ვარაუდობს, რომ პაროლის ნაბიჯი უკვე მუშაობს.
აირჩიეთ მეორე ფაქტორი
| მეთოდი | მომხმარებლის ძალისხმევა | უსაფრთხოება | გაშვების ღირებულება | კარგი ნაგულისხმევია? |
|---|---|---|---|---|
| ავთენტიფიკატორის აპი (TOTP) | QR კოდის ერთხელ სკანირება, შესვლისას კოდის აკრეფა | კარგი; შეიძლება ფიშინგით მოიპოვონ, თუ ყალბი საიტი კოდს ითხოვს | უფასო | დიახ, უმეტესი აპისთვის |
| Passkey ან უსაფრთხოების გასაღები | შეხება ან თითის ანაბეჭდით ავთენტიფიკაცია | ყველაზე ძლიერი; ეწინააღმდეგება ფიშინგს | უფასო | დიახ, თუ მომხმარებლები მზად არიან |
| ელფოსტის კოდი | შესვლისას შემოსული წერილის შემოწმება | მხოლოდ იმდენად ძლიერი, რამდენადაც ელფოსტის ანგარიში | ელფოსტის გაგზავნის ხარჯი | მხოლოდ სარეზერვოდ |
| SMS კოდი | ტექსტის მოლოდინი | ყველაზე სუსტი; SIM-ის გადატანა და ფიშინგი | თითო შეტყობინების საფასური | მხოლოდ მაშინ, თუ მომხმარებლებს აპის გამოყენება არ შეუძლიათ |
TOTP ნიშნავს დროზე დაფუძნებულ ერთჯერად პაროლს (time-based one-time password) — სტანდარტს (RFC 6238), რომელსაც ავთენტიფიკატორის აპები იყენებენ. თქვენი სერვერი და მომხმარებლის ტელეფონი საიდუმლოს იზიარებენ; თითოეული მათგანი ამ საიდუმლოსა და მიმდინარე დროიდან ერთსა და იმავე მოკლე კოდს აგენერირებს, რომელიც, როგორც წესი, ყოველ 30 წამში იცვლება. ქსელური კავშირი ან SMS პროვაიდერი არ არის საჭირო.
Passkey-ები პაროლს ცვლის ან ავსებს კრიპტოგრაფიული გასაღებით, რომელიც მომხმარებლის მოწყობილობაზე ინახება. ისინი უფრო ძლიერია, მაგრამ თავად აშენება მეტ შრომას მოითხოვს, ამიტომ ბევრი აპი TOTP-ით იწყებს და passkey-ებს მოგვიანებით უმატებს, ან პროვაიდერისგან იღებს.
საკუთარი აშენება თუ ჩართვა?
| მიდგომა | დადებითი მხარე | უარყოფითი მხარე |
|---|---|---|
| ჰოსტირებული პროვაიდერის MFA | ნაკლები კოდი; უსაფრთხოების დეტალებს პროვაიდერი ინარჩუნებს | მასშტაბით ყოველთვიური ხარჯი; დამოკიდებულება პროვაიდერის ვარიანტებზე |
| საკუთარი TOTP ბიბლიოთეკით | სრული კონტროლი; მომხმარებლზე გადასახადი არ არის | თქვენ ხართ პასუხისმგებელი კიდურა შემთხვევებზე: ბლოკირებები, აღდგენა, საიდუმლოების შენახვა |
პროვაიდერის ამჟამინდელი დოკუმენტაცია შეამოწმეთ, რომელ ფაქტორებს უჭერს მხარს და რომელ გეგმებზე. ორივე შემთხვევაში კოდის გენერაციის მათემატიკა თავად არასდროს დაწეროთ; გამოიყენეთ ფართოდ ცნობილი ბიბლიოთეკა.
ჯერ გადაწყვიტეთ პოლიტიკა
იმ კითხვებს უპასუხეთ, სანამ პრომპტს დაწერთ, რადგან ისინი დიზაინს ცვლის:
- ვის სჭირდება? არასავალდებულო ყველასთვის, სავალდებულო ადმინისტრატორებისა და თანამშრომლებისთვის, თუ ყველასთვის სავალდებულო. ადმინისტრატორის უფლებების მქონე ყველასთვის მოთხოვნა გავრცელებულია. იხილეთ როლებზე დაფუძნებული წვდომის კონტროლი.
- რამდენად ხშირად შეიყვანენ მომხმარებლები კოდს? ყოველ შესვლაზე, ან ერთხელ მოწყობილობაზე 30 დღით („ამ მოწყობილობის დამახსოვრება“).
- რომელი მოქმედებები მოითხოვს ახალ შემოწმებას? ელფოსტის შეცვლა, გადახდის მონაცემები ან 2FA-ს გამორთვა კარგი კანდიდატებია. ამას step-up ავთენტიფიკაცია ჰქვია.
- რა არის დაკარგული ტელეფონის პროცესი? აღდგენის კოდები და ხელით სარეზერვო გზა, რომლის გაშვებასაც მზად ხართ.
ნაბიჯ-ნაბიჯ: TOTP 2FA საკუთარ შესვლაზე
1. შეინახეთ სწორი ველები
თითოეულ მომხმარებელს სჭირდება: ჩართულია თუ არა 2FA, TOTP საიდუმლო (დაშიფრული შენახვაში, არა უბრალო ტექსტი), ჩართვის დრო და აღდგენის კოდების სია ჰეშირებული სახით, პაროლების მსგავსად. დაამატეთ ადგილი წარუმატებელი ცდების დასათვლელად.
2. რეგისტრაცია
- მომხმარებელი პარამეტრებში დააჭერს 2FA-ს ჩართვას.
- სერვერი ქმნის ახალ საიდუმლოს და აბრუნებს მას QR კოდად, პლუს ტექსტურ ვერსიას მათთვის, ვისაც სკანირება არ შეუძლია.
- მომხმარებელი სკანირებს ავთენტიფიკატორის აპში და აკრეფს მიმდინარე კოდს.
- სერვერი ამოწმებს კოდს. მხოლოდ თუ სწორია, ინახავს საიდუმლოს და მონიშნავს 2FA-ს ჩართულად.
- აპი აჩვენებს 8–10 აღდგენის კოდს ერთხელ და სთხოვს მომხმარებელს შეინახოს ისინი.
მე-4 ნაბიჯი მნიშვნელოვანია: 2FA-ს ჩართვა კოდის დადასტურებამდე ყველას, ვისი სკანირებაც ჩაიჭრა, შემდეგ შესვლისას ბლოკავს.
3. შესვლა მეორე ნაბიჯით
- მომხმარებელი აგზავნის ელფოსტასა და პაროლს. სერვერი ამოწმებს მათ.
- თუ 2FA ჩართულია, სერვერი არ ქმნის სრულ სესიას. მის ნაცვლად ქმნის მოკლევადიან „მეორე ფაქტორი მოლოდინშია“ მდგომარეობას.
- აპი აჩვენებს კოდის ეკრანს. სერვერი ამოწმებს კოდს და საათის დრიფტისთვის მცირე დიაპაზონს უშვებს.
- მხოლოდ ახლა სერვერი გასცემს რეალურ სესიას.
ყოველმა დაცულმა მარშრუტმა და API endpoint-მა უნდა უარყოს მოლოდინში მყოფი მდგომარეობა. 2FA ეკრანი, რომელიც მხოლოდ ბრაუზერში მალავს გვერდებს, API-ს პირდაპირი გამოძახებით გვერდის ავლით შეიძლება.
4. ლიმიტები და შეტყობინებები
ექვსნიშნა კოდს მილიონი კომბინაცია აქვს, რაც ლიმიტების გარეშე გამოცნობადია. შეზღუდეთ ცდები, განბლოკეთ მეორე ნაბიჯი გარკვეული დროით განმეორებითი წარუმატებლობის შემდეგ და მომხმარებელს გამოუგზავნეთ ელფოსტა. იხილეთ მოთხოვნების სიხშირის შეზღუდვა და ელფოსტის გაგზავნა აპიდან.
5. აღდგენა და გამორთვა
- აღდგენის კოდი ერთხელ მუშაობს, შემდეგ იშლება.
- 2FA-ს გამორთვა მოითხოვს პაროლს და მიმდინარე კოდს ან აღდგენის კოდს.
- აღდგენის კოდების თავიდან გენერირება ძველ ნაკრებს აუქმებს.
- მომხმარებელს ელფოსტით შეატყობინეთ, როცა 2FA ჩაირთვება ან გამოირთვება.
პრომპტები AI ბილდერისთვის
დაიწყეთ ძირითადი პროცესით:
დაამატე არასავალდებულო ორფაქტორიანი ავთენტიფიკაცია ავთენტიფიკატორის აპებით (TOTP) ჩვენს არსებულ ელფოსტა-და-პაროლის შესვლაზე. გამოიყენე კარგად ცნობილი TOTP ბიბლიოთეკა, ალგორითმი თავად არ დაწერო. პარამეტრებში აჩვენე QR კოდი და ტექსტური საიდუმლო, და 2FA ჩართე მხოლოდ მას შემდეგ, რაც მომხმარებელი სწორ კოდს შეიყვანს. საიდუმლო დაშიფრულად შეინახე და დაყენების შემდეგ აღარ აჩვენო. აჩვენე 10 ერთჯერადი აღდგენის კოდი ერთხელ და შეინახე ისინი ჰეშირებულად.
შემდეგ აღსრულება, სადაც გენერირებული კოდი ყველაზე ხშირად ჩამორჩება:
აღასრულე 2FA სერვერზე. სწორი პაროლის შემდეგ 2FA-ს მქონე მომხმარებლებს მიეცემათ მოკლევადიანი მოლოდინის მდგომარეობა და არა სრული სესია. ყოველმა დაცულმა გვერდმა და API მარშრუტმა უნდა უარყოს მოლოდინის მდგომარეობა. კოდის ცდები შეზღუდე 5-ით, შემდეგ მეორე ნაბიჯი დაბლოკე 15 წუთით და მომხმარებელს გამოუგზავნე ელფოსტა.
შემდეგ პოლიტიკა:
მოითხოვე 2FA ადმინისტრატორის ანგარიშებისთვის: ადმინისტრატორი 2FA-ს გარეშე გადადის დაყენებაზე და ვერ შედის დაფაზე, სანამ ის არ დასრულდება. 2FA-ს გამორთვისთვის ან ანგარიშის ელფოსტის შესაცვლელად მოითხოვე პაროლი და მიმდინარე კოდი. მომხმარებელს ელფოსტით შეატყობინე, როცა 2FA ჩაირთვება ან გამოირთვება.
ბოლოს სთხოვეთ აგენტს აგიხსნას, რაც ააშენა:
ჩამოთვალე ყოველი მარშრუტი, რომელიც ამოწმებს დასრულებულ მეორე ფაქტორს, სად ინახება TOTP საიდუმლო და აღდგენის კოდები და როგორ არიან დაცული.
გავრცელებული შეცდომები
- სესია პაროლის შემდეგ. ყველაზე სერიოზული შეცდომა. თუ სრული სესია კოდის შემოწმებამდე არსებობს, 2FA მხოლოდ დეკორაციაა. ტესტირება: მხოლოდ პაროლის ნაბიჯის შემდეგ გამოიძახეთ დაცული API.
- ცდების ლიმიტის არქონა. შეუზღუდავი ცდები კოდს ბრუტფორსით გატეხვადს ხდის.
- საიდუმლოები ან აღდგენის კოდები უბრალო ტექსტით. მონაცემთა ბაზის გაჟონვა ყველას მეორე ფაქტორს გადასცემს.
- ჩართვა გადამოწმებამდე. მომხმარებლები, რომლებმაც არასწორად დაასკანირეს, შემდეგ შესვლისას იჭერენ ბლოკს.
- აღდგენის გზის არქონა. ყოველი დაკარგული ტელეფონი მხარდაჭერის მოთხოვნად ან დაკარგულ მომხმარებლად იქცევა.
- მარტივი გამორთვა. თუ მოპარული სესია კოდის გარეშე გამორთავს 2FA-ს, დაცვა აღარ არსებობს.
- კოდები ლოგებში. დარწმუნდით, რომ კოდები და საიდუმლოები არასდროს ჩანს სერვერის ლოგებში ან შეცდომის შეტყობინებებში.
- შემოწმება მხოლოდ შესვლის გვერდზე. პაროლის აღდგენამ, „მაგიური ბმულით“ შესვლამ და ნებისმიერმა სოციალურმა შესვლამ ასევე უნდა პატივი სცეს 2FA-ს, თორემ ისინი გვერდის ავლის გზად იქცევა.
ტესტირების ჩამონათვალი
- რეგისტრაცია მხოლოდ სწორი კოდის შემდეგ სრულდება
- შესვლა სწორი პაროლით, მაგრამ კოდის გარეშე, არცერთ დაცულ გვერდსა თუ API-ზე წვდომას არ იძლევა
- არასწორი კოდი უარყოფილია; განმეორებითი არასწორი კოდები ბლოკირებასა და ელფოსტას იწვევს
- რამდენიმე წუთის წინანდელი კოდი უარყოფილია
- ყოველი აღდგენის კოდი ზუსტად ერთხელ მუშაობს
- 2FA-ს გამორთვას სჭირდება პაროლი და მიმდინარე კოდი
- პაროლის აღდგენა არ გვერდავს 2FA-ს
- ადმინისტრატორები 2FA-ს გარეშე ვერ შედიან ადმინისტრატორის გვერდებზე (თუ სავალდებულოა)
- საიდუმლოები და აღდგენის კოდები მონაცემთა ბაზაში დაშიფრულია ან ჰეშირებულია
- კოდები და საიდუმლოები ლოგებში არ ჩანს
გაშვებამდე ასევე გაიარეთ მთლიანი AI-ით აგებული აპების უსაფრთხოების ჩამონათვალი.
2FA-ს დამატება Mythex-ში
Mythex არ გთავაზობთ ჩაშენებულ შესვლის სისტემას თქვენი აპის ბოლო მომხმარებლებისთვის, ამიტომ 2FA არის იმ ავთენტიფიკაციის მიდგომის ნაწილი, რომელსაც აირჩევთ: თქვენი ელფოსტა-და-პაროლის შესვლა პროექტის მონაცემთა ბაზით, ან ჰოსტირებული პროვაიდერი მრავალფაქტორიანი მხარდაჭერით. ჩატში აღწერთ, რაც გინდათ, ზემოთ მოცემული მსგავსი პრომპტებით, ხოლო პროვაიდერის გასაღებები პროექტის საიდუმლოებებში ინახება (/secrets-ით, პროექტის პარამეტრებით ან აგენტის მიერ ნაჩვენები საიდუმლოებების ბარათით) და არა შეტყობინების ველში. დოკუმენტაციის რეცეპტი შესვლის დამატება აპში საწყის პრომპტს აძლევს, ხოლო უსაფრთხოება თქვენს მიერ აგებული აპებისთვის გასაღებებსა და უფლებებთან დაკავშირებულ ჩვევებს აშუქებს. აგენტის დასრულების შემდეგ, გამოქვეყნებამდე Preview-ში გაიარეთ ჩამონათვალის ყოველი პუნქტი.
კითხვები
რა არის ყველაზე მარტივი გზა ორფაქტორიანი ავთენტიფიკაციის დასამატებლად აპში?
თუ იყენებთ ჰოსტირებულ ავთენტიფიკაციის პროვაიდერს, ჩართეთ მისი ჩაშენებული მრავალფაქტორიანი ვარიანტი — ეს, როგორც წესი, ყველაზე ნაკლებ კოდს მოითხოვს. თუ თავად მართავთ შესვლას, დაამატეთ ავთენტიფიკატორის აპის კოდები (TOTP) კარგად ცნობილი ბიბლიოთეკით, აღდგენის კოდები და სერვერული შემოწმება.
უნდა გამოვიყენო SMS კოდები 2FA-სთვის?
SMS უკეთესია, ვიდრე მეორე ფაქტორის არარსებობა, მაგრამ ეს ყველაზე სუსტი გავრცელებული ვარიანტია: SMS შეიძლება SIM-ის გადატანით გადამისამართდეს, ხოლო კოდები ფიშინგით მოიპოვება. მომხმარებლებისთვის ნაგულისხმევად შესთავაზეთ ავთენტიფიკატორის აპი, ხოლო თუ მომხმარებლები მზად არიან, passkey-ები.
2FA-სთვის მონაცემთა ბაზა მჭირდება?
თუ თავად მართავთ შესვლას — დიახ. თითოეული მომხმარებლის 2FA-ს საიდუმლო, მისი ჩართვის სტატუსი და ჰეშირებული აღდგენის კოდები სადმე უნდა ინახებოდეს, სადაც თქვენს სერვერს შეუძლია შემოწმება. ჰოსტირებული ავთენტიფიკაციის პროვაიდერი ამას თქვენ მაგივრად ინახავს.
რა მოხდება, თუ მომხმარებელმა ტელეფონი დაკარგა?
ის შედის ერთ-ერთი ერთჯერადი აღდგენის კოდით, რომელიც მან 2FA-ს ჩართვისას ნახა, შემდეგ კი 2FA-ს ახალ მოწყობილობაზე ხელახლა აყენებს. აღდგენის კოდების გარეშე საჭიროა ხელით ვერიფიკაცია, ამიტომ ეს პროცესი გაშვებამდე უნდა გადაწყვიტოთ.