Attribute-Based Access Control (ABAC) — kirish haqidagi qarorni foydalanuvchi, resurs, amal va muhit atributlari asosida chiqaradigan avtorizatsiya modelidir. Siyosat “kim qaysi rolga ega” degan bitta belgidan ko‘ra kengroq shartlarni ifodalaydi: bo‘lim, ma’lumot tasnifi, resurs egasi, vaqt, qurilma ishonchliligi yoki tarmoq zonasi bir qarorda birlashtirilishi mumkin.
Atribut turlari
Subject atributlari foydalanuvchi yoki xizmatning bo‘limi, lavozimi, xavfsizlik darajasi va identifikatorini bildiradi. Resource atributlari hujjat egasi, tenant, tasnif va hududni ifodalaydi. Action o‘qish, tahrirlash, tasdiqlash yoki o‘chirish kabi amalni belgilaydi. Environment vaqt, so‘rov manbasi, qurilma holati va favqulodda vaziyat belgilarini qamrab oladi.
Masalan, siyosat moliya bo‘limidagi xodimga faqat o‘z hududiga tegishli, “ichki” tasnifdagi hisobotni korporativ qurilmadan ish vaqtida o‘qishga ruxsat berishi mumkin. Bitta qoida ko‘plab foydalanuvchi va resurslarga tatbiq etiladi.
Siyosat va qaror
ABAC siyosati mantiqiy ifoda ko‘rinishida yoziladi:
allow if
subject.department == resource.department
and action == "read"
and resource.classification <= subject.clearance
and environment.device_trusted == true
Policy Decision Point atributlarni yig‘ib, siyosatni hisoblaydi. Policy Enforcement Point so‘rovni ushlab, chiqarilgan allow yoki deny qarorini bajaradi. Atribut manbalari ishonchli bo‘lishi shart; mijoz yuborgan department=finance qiymatini tekshirmasdan qabul qilish butun modelni buzadi.
Siyosatlarni birlashtirish
Bir so‘rovga bir nechta qoida mos kelishi mumkin. “Deny overrides” yondashuvida bitta taqiq barcha ruxsatdan ustun turadi. “Permit overrides” maxsus ruxsatni ustun qiladi, “first applicable” esa tartibdagi birinchi mos qoidani oladi. Algoritm ochiq tanlanmasa, qarama-qarshi siyosat kutilmagan natija beradi.
Default deny xavfsiz boshlang‘ich holatdir: hech bir ruxsat qoidasi mos kelmasa, so‘rov rad etiladi. Qaror bilan birga qaysi siyosat va atribut versiyasi ishlatilgani auditga yoziladi. Maxfiy atributning o‘zi jurnalga to‘liq chiqmasligi mumkin.
Afzallik va murakkablik
ABAC ko‘p tenantli, tartibga solinadigan va kontekstga sezgir tizimlarda rollar sonini sun’iy ko‘paytirmasdan nozik nazorat beradi. Shu bilan birga, atributlar sifati, siyosat tili va qarorni tushuntirish murakkablashadi. Noto‘g‘ri yoki eskirgan atribut qonuniy foydalanuvchini bloklashi yoki ortiqcha kirish berishi mumkin.
Siyosatlar kod kabi versiyalanadi, ko‘rib chiqiladi va test qilinadi. Testlar ijobiy misollardan tashqari chegaraviy tasnif, yo‘q atribut, noto‘g‘ri tenant va qarama-qarshi qoida holatlarini qamrab oladi. O‘zgarish avval kuzatuv rejimida hisoblanib, amaldagi qaror bilan solishtirilishi mumkin.
RBAC bilan ishlashi
Amaliy tizimlar ko‘pincha RBAC va ABACni birlashtiradi. Rol foydalanuvchining umumiy vazifasini belgilaydi, atribut esa aynan qaysi resurs va sharoitda amal bajarilishini toraytiradi. Masalan, “shifokor” roli bemor yozuvini ko‘rish imkonini beradi, bemor bilan faol davolash munosabati esa ABAC sharti bo‘ladi. Bu usul boshqaruv qulayligi va kontekst aniqligi o‘rtasida muvozanat yaratadi.
Atributlarni boshqarish
Atribut qiymati o‘zgarganda uning qarorlarga tarqalish muddati belgilanadi. Katalog yangilangan, ammo token yoki policy cache eski bo‘lsa, bekor qilingan ruxsat bir muddat davom etishi mumkin. Yuqori xavfli atribut qisqa token yoki real vaqtdagi introspection bilan tekshiriladi. Atribut sxemasi versiyalanadi; classification qiymatining ma’nosi o‘zgarsa, eski siyosat jim noto‘g‘ri ishlamasligi kerak.
Audit izohi
Qaror jurnalida subject va resource identifikatori, siyosat versiyasi, natija va sabab kodi saqlanadi. “Department mos kelmadi” kabi izoh operatorga yetarli, ammo tashqi mijozga ichki atributlar to‘liq berilmaydi. Maxfiy qiymatlar maskalanadi, audit yozuvining o‘zi esa o‘zgartirishdan himoyalanadi.
Bog‘liq tushunchalar
Role-Based Access Control, Policy engine, Policy Decision Point, Policy Enforcement Point, Authorization, Default deny