Authentication asoslari
Authentication va authorization asoslarini o'rganing
Muallif: Kamran Ahmed
Oldingi video turkumimiz ma'lumotlar tuzilmalari haqida edi. Unda eng keng tarqalgan ma'lumotlar tuzilmalarini, ularning use case'larini, afzallik va kamchiliklarini hamda har bir ma'lumotlar tuzilmasi ustida bajarish mumkin bo'lgan turli amallarni ko'rib chiqdik.
Bugun biz authentication strategiyalari bo'yicha shunga o'xshash turkumni boshlaymiz. Unda authentication va authentication strategiyalari haqida bilishingiz kerak bo'lgan hamma narsani muhokama qilamiz.
Bugungi qo'llanmada authentication nima ekanligi haqida gaplashamiz va turkumning keyingi qismlarida bizga yordam beradigan ba'zi terminologiyani ko'rib chiqamiz. Quyidagi videoni tomosha qilishingiz yoki ushbu qo'llanmani o'qishda davom etishingiz mumkin.
Authentication nima?
Authentication — kimningdir shaxsini tekshirish jarayoni. Bunga real hayotdan misol: samolyotga chiqayotganingizda aviakompaniya xodimi shaxsingizni tasdiqlash uchun pasportingizni tekshiradi, ya'ni aeroport xodimi sizni authenticate qiladi.
Kompyuterlar haqida gapiradigan bo'lsak, biror veb-saytga kirganingizda odatda username va parolingizni kiritib, o'zingizni authenticate qilasiz, so'ngra veb-sayt siz o'zingiz da'vo qilayotgan shaxs ekaningizga ishonch hosil qilish uchun ularni tekshiradi. Yodda tutishingiz kerak bo'lgan ikkita narsa bor:
- Authentication faqat odamlar uchun emas
- Va username hamda parol authenticate qilishning yagona usuli emas.
Boshqa ba'zi misollar:
-
Brauzerda veb-saytni ochganingizda. Agar veb-sayt HTTP'dan foydalansa, serverni authenticate qilish va soxta veb-saytlar yuklanishining oldini olish uchun TLS ishlatiladi.
-
Veb-saytda server-to-server aloqa bo'lishi mumkin. Server zararli foydalanishning oldini olish uchun kiruvchi so'rovni authenticate qilishi kerak bo'lishi mumkin.
Authentication qanday ishlaydi?
Umumiy darajada authentication uchun quyidagi factor'lardan foydalanamiz.
- Username va parol
- Xavfsizlik kodlari, PIN-kodlar yoki xavfsizlik savollari — Bunga misol sifatida bankomatdan naqd pul yechish uchun kiritadigan PIN-kodingizni keltirish mumkin.
- Hard token'lar va soft token'lar — Hard token'lar — o'zingizni authenticate qilish uchun qurilmangizga ulaydigan maxsus hardware qurilmalar. Soft token'larda esa, hard token'lardan farqli o'laroq, authentication uchun maxsus qurilma bo'lmaydi; biz shaxsni sozlash uchun ishlatilgan qurilma egalikda ekanini tekshirishimiz kerak. Masalan, veb-saytdagi akkauntingizga kirish uchun sizga OTP kelishi mumkin.
- Biometrik authentication — Biometrik authentication'da biz ko'z rangdor pardasi, yuz yoki ovozni tanib olish kabi biometrik ma'lumotlar yordamida authenticate qilamiz.
Yuqoridagi factor'larni uchta turga ajratishimiz mumkin.
-
Username / parol va xavfsizlik kodlari insonning bilimiga tayanadi: ularni Knowledge Factor (bilim omili) ostida guruhlashimiz mumkin.
-
Hard va soft token'larda biz hardware'ga egalikni tekshirish orqali authenticate qilamiz, shuning uchun bu Possession Factor (egalik omili) bo'ladi.
-
Biometrikada esa insonning tug'ma xususiyatlarini, ya'ni ko'z rangdor pardasi, yuzi yoki ovozini tekshiramiz, shuning uchun bu Qualities (xususiyatlar) factor'i bo'ladi.
Bu bizni keyingi mavzuga olib keladi: multi-factor authentication va two-factor authentication.
Multifactor Authentication
Multifactor authentication — foydalanuvchini authenticate qilish uchun bittadan ortiq factor'ga tayanadigan authentication turi.
Masalan, knowledge factor'dan username/parolni olamiz. Possession factor'dan esa soft token'larni tanlaymiz va foydalanuvchi authenticate qilinishi uchun u o'z credential'larini hamda mobil telefoniga yuboriladigan OTP'ni kiritishi kerak, deymiz — bu multifactor authentication'ga misol bo'ladi.
Multifactor authentication'da bittadan ortiq factor'ga tayanganimiz uchun authentication'ning bu usuli single-factor authentication'ga qaraganda ancha xavfsizroq.
Bu yerda e'tibor berish kerak bo'lgan muhim jihat shundaki, authentication uchun tanlaydigan factor'laringiz bir-biridan farq qilishi kerak. Masalan, agar username/parol va xavfsizlik savoli yoki xavfsizlik kodlarini tanlasak, bu baribir haqiqiy multifactor authentication bo'lmaydi, chunki biz hamon knowledge factor'ga tayanamiz. Factor'lar bir-biridan farqli bo'lishi shart.
Two-Factor Authentication
Two-factor authentication multifactor authentication'ga o'xshaydi. Yagona farqi shundaki, 2FA'da aynan ikkita factor bo'ladi. MFA'da 2, 3, 4 yoki istalgan miqdordagi authentication factor'lari bo'lishi mumkin; 2FA'da esa aynan ikkita factor bor. 2FA har doim MFA deyishimiz mumkin, chunki unda bittadan ortiq factor bor. MFA esa har doim ham 2FA emas, chunki unda ikkitadan ortiq factor ishtirok etishi mumkin.
Keyingi mavzu — authentication va authorization o'rtasidagi farq. Bu savol intervyularda tez-tez so'raladi va yangi boshlovchilar ularni ko'pincha chalkashtirib yuborishadi.
Authentication nima
Authentication — shaxsni tekshirish jarayoni. Masalan, login ekranida credential'laringizni kiritganingizda, ilova sizni credential'laringiz orqali aniqlaydi. Demak, authentication mana shu — shaxsni tekshirish jarayoni.
Authentication muvaffaqiyatsiz bo'lgan holatda, masalan, noto'g'ri username va parol kiritsangiz, HTTP javob kodi "Unauthorized" 401 bo'ladi.
Authorization nima
Authorization — ruxsatni tekshirish jarayoni. Foydalanuvchi tizimga kirgach, ya'ni foydalanuvchi authenticate qilingach, u tegishli amalni bajara oladimi yoki yo'qmi, shuni bilish uchun ruxsatni ko'rib chiqish jarayoni authorization deb ataladi.
Authorization muvaffaqiyatsiz bo'lgan holatda esa, ya'ni foydalanuvchi o'ziga ruxsat berilmagan amalni bajarishga urinsa, HTTP javob kodi forbidden 403 bo'ladi.
Authentication strategiyalari
Quyida keng tarqalgan authentication strategiyalari ro'yxati keltirilgan:
- Basic Authentication
- Session Based Authentication
- Token-Based Authentication
- JWT Authentication
- OAuth - Open Authorization
- Single Sign On (SSO)
Ushbu rasmli videolar va matnli qo'llanmalar turkumida biz har bir strategiyani ko'rib chiqib, ular nima ekanini, qanday amalga oshirilishini, afzallik va kamchiliklarini va hokazolarni muhokama qilamiz.
Shunday ekan, kuzatib boring, keyingi qismda ko'rishguncha.