Bosh sahifa Wiki RBAC

RBAC

RBAC — foydalanuvchiga permissionlarni to‘g‘ridan-to‘g‘ri bittalab berish o‘rniga, ularni role orqali boshqaradigan access control modeli. To‘liq nomi Role-Based Access Control. User bir yoki bir nechta role oladi, role esa ma’lum operation va resource permissionlariga ega bo‘ladi.

RBAC tashkilotdagi vazifa va javobgarliklarni access policy’ga aylantirishga yordam beradi.

Asosiy model

Soddalashtirilgan bog‘lanish:

User → Role → Permission

Masalan:

Farrukh → Editor → article:create, article:update

Userga permissionlar role membership orqali keladi.

User

User inson, service account yoki boshqa principal bo‘lishi mumkin.

Identity authentication orqali tekshiriladi.

RBAC esa authenticated principal qaysi operationlarni bajarishi mumkinligini belgilaydi.

Authentication va authorization alohida tushunchalar.

Role

Role odatda tashkilotdagi vazifa yoki funksiyani ifodalaydi:

  • Viewer;
  • Editor;
  • Moderator;
  • Accountant;
  • Support;
  • Administrator.

Role nomi aniq business ma’noga ega bo‘lishi kerak.

Role1 yoki AdvancedUser kabi noaniq nomlar boshqaruvni qiyinlashtiradi.

Permission

Permission resource ustidagi operationni ifodalaydi.

Masalan:

  • invoice:read;
  • invoice:approve;
  • user:disable;
  • report:export;
  • server:restart.

Juda umumiy manage_all permissioni least privilege’ni buzishi mumkin.

Role assignment

Userga role:

  • qo‘lda;
  • HR atributi;
  • jamoa membershipi;
  • approval workflow;
  • vaqtinchalik request;
  • automation

orqali berilishi mumkin.

Assignment owner va expirationga ega bo‘ladi.

Role hierarchy

Yuqori role past role permissionlarini meros olishi mumkin.

Masalan:

Viewer < Editor < Administrator

Hierarchy duplicationni kamaytiradi.

Ammo chuqur va murakkab inheritance userning haqiqiy permissionini tushunishni qiyinlashtiradi.

Separation of Duties

Bir inson conflictli vazifalarni birgalikda bajarmasligi kerak.

Masalan:

  • invoice yaratish va tasdiqlash;
  • payment so‘rash va chiqarish;
  • code yozish va production deployni yakka tasdiqlash.

RBAC static va dynamic separation of duties qoidalarini qo‘llashi mumkin.

Static separation

User conflictli ikki role’ni bir vaqtda ololmaydi.

Masalan, Requester va Approver.

Assignment vaqtida policy tekshiriladi.

Dynamic separation

User ikkala role’ga ega bo‘lishi mumkin, ammo ayni transactionda ikkala vazifani bajara olmaydi.

Masalan, o‘zi yaratgan requestni tasdiqlay olmaydi.

Bu object va workflow kontekstini talab qiladi.

Least privilege

User faqat ish vazifasi uchun zarur role’larni oladi.

“Har ehtimolga qarshi” administrator role berilmaydi.

Vaqtinchalik yuqori access expiration bilan beriladi.

Role explosion

Har jamoa, region, product va kichik farq uchun yangi role yaratilsa role soni keskin oshadi.

Masalan:

Editor_UZ_ProjectA_DayShift

Bu role explosion.

ABAC yoki permission scope bilan ayrim dynamic farqlarni ajratish mumkin.

Scope

Role ma’lum resource scope’da amal qilishi mumkin.

Masalan:

Project Editor for project_id=15

Bu role va relationshipni birlashtiradi.

Global Editor barcha projectga access bermasligi kerak.

Multi-tenant RBAC

Bir user tenant A’da admin, tenant B’da viewer bo‘lishi mumkin.

Role assignment tenant context bilan saqlanadi.

Faqat user ID va role nomiga qarab global permission berish cross-tenant accessga olib keladi.

Default role

Yangi userga minimal default role beriladi.

Default role sensitive permissionga ega bo‘lmaydi.

Registration orqali avtomatik yuqori role olish mumkin emas.

Role review

Davriy access review:

  • user hali tashkilotdami;
  • role vazifasiga mosmi;
  • vaqtinchalik access tugaganmi;
  • unused permission bormi;
  • manager tasdiqlaydimi

degan savollarni tekshiradi.

Role o‘zgarganda eski access darhol olinadi.

Audit

Role assignment va permission o‘zgarishlari audit qilinadi:

  • kim berdi;
  • kimga;
  • qaysi role;
  • qachon;
  • nima sabab;
  • expiration;
  • approval.

Admin role assignment yuqori xavfli hodisa sifatida alert berishi mumkin.

RBAC va ACL

ACL har obyekt uchun qaysi principalga qanday access borligini saqlaydi.

RBAC permissionni role orqali umumlashtiradi.

File system ACL va application RBAC birga ishlashi mumkin.

RBAC va ABAC

RBAC qarorni role asosida beradi.

ABAC subject, object, action va environment atributlarini policy bilan baholaydi.

RBAC sodda va tushunarli, ABAC dynamic va nozik qoidalar uchun mos.

Ko‘p tizim hybrid modeldan foydalanadi.

Permission catalog

Role yaratishdan oldin barcha permissionlar resource va action bo‘yicha kataloglanadi. Har permissionga owner va risk darajasi beriladi. admin flag ichida yuzlab noma’lum operationni yashirish reviewni qiyinlashtiradi. Granular permissionlar role compositionga yordam beradi.

Role mining

Mavjud user accesslari va ish vazifalari tahlil qilinib umumiy role’lar aniqlanishi mumkin. Faqat hozirgi permissionlarni ko‘chirib olish eski ortiqcha accessni ham role’ga aylantiradi. Manager va resource owner business vazifani tasdiqlaydi.

Emergency role

Incident uchun vaqtinchalik emergency administrator role bo‘lishi mumkin. U kuchli MFA, qisqa expiration, recording va darhol alert bilan beriladi. Incident tugagach access avtomatik olinadi va barcha bajarilgan amallar review qilinadi.

Negative permission

Role model asosan ruxsatlarni yig‘ishga tayanadi. Ayrim tizimlarda explicit deny ham mavjud, lekin ko‘p deny va inheritance effective accessni tushunishni qiyinlashtiradi. Imkon qadar rolelar kichik, ijobiy va aniq permissionlardan tuziladi.

API enforcement

Frontend menyu va tugmalar role bo‘yicha yashirilishi mumkin, ammo backend har requestni alohida tekshiradi. User browser requestini o‘zgartirib yashirin endpointga murojaat qilishi mumkin. Authorization middleware va service layer bir xil policy’ga tayanadi.

Bog‘liq tushunchalar

Role-Based Access Control, Role, Permission, User, Authorization, Least privilege, Separation of Duties, Role hierarchy, ABAC, ACL, IAM