Муҳаррики нақш
1) Моделҳои авторизатсия
RBAC (Назорати дастрасӣ ба нақш): мавзӯъ нақшҳоро мегирад, нақшҳо бо иҷозатҳо алоқаманданд. Танҳо идора кунед, барои вазифаҳои муқаррарӣ хуб аст.
ABAC (Назорати дастрасӣ дар асоси атрибут) - ҳалли масъала аз хусусиятҳои мавзӯъ, манбаъ, амал ва муҳити зист (вақт, IP, минтақа, хатар) вобаста аст. Ба қоидаҳои мураккаб тағйирпазир ва миқёспазир аст.
Гибридии RBAC + ABAC: нақшҳо қобилияти "асосӣ" медиҳанд, хусусиятҳо онро танг мекунанд (шароит).
(Ихтиёрӣ) РЕБАК/Равобит дар асоси: Графикаи муносибатҳо (соҳиб, узви даста, вакил), барои ҳуҷҷатҳо ва orgs муфид.
2) Меъморӣ: PDP/PEP ва ҷараён
PEP (Нуқтаи ҳифзи сиёсат): дар он ҷое ки ҳалли он татбиқ карда мешавад (дарвозаи API, усули ақиб, қабати SQL, UI).
PDP (Нуқтаи тасмими сиёсат): хидмат/китобхона, ки 'LAILET/DENY' -ро бо сиёсатҳо ва сифатҳо ҳисоб мекунад.
БИД (Нуқтаи маълумот дар бораи сиёсат): манбаъҳои атрибутӣ (ИДМ/профил, метамаълумоти захираҳо, сатҳи хавф, гео).
PAP (Point Point Point) - интерфейси маъмурӣ/анбори сиёсат (версияҳо, нақшаҳо, нашр).
Ҷараён: дархости PEP → контекстро ташкил медиҳад → ҲХДТ атрибутҳои гумшударо (тавассути БИД) ба ҳисоб мегирад, ки қарори → PEP татбиқ мешавад (майдонҳои фаъол/ғайрифаъол/бурида) → аудит.
3) Модели маълумот
Субъектҳо (ҳадди аққал):- 'subject' (корбар/хидмат) s atributami: 'иҷорагир _ ид', 'нақшҳо', 'шӯъбаҳо', 'risk _ level', 'mfa _ verified', 'scopes', 'даъвоҳо'.
- 'навъи' resource 'ва сифатҳо:' намуд ',' соҳиби _ ид ',' иҷорагир _ ид ',' тасниф '(ҷамъиятӣ/махфӣ),' минтақа ',' барчасбҳо '.
- 'амал': 'хондан', 'навиштан', 'нест кардан', 'содирот', 'тасдиқ', 'тақлид кардан' i. п.
- 'муҳити атроф': 'вақт', 'ip', 'дастгоҳ', 'geo', 'auth _ strength', 'business _ context' (канал, тариб).
- 'roles (id, tenant_id, ном, мерос [])' - зинанизомҳо ва намунаҳои дастгирӣ.
- 'permissions (id, resource_type, амал, маҳдудият?)'.
- 'role _ иҷозат (role_id, permission_id)'.
- 'супоришҳо (subject_id, role_id, миқёс)' - миқёс: глобалӣ/аз рӯи лоиҳа/аз рӯи объект.
- 'policy (id, effect = label' deny, ҳадаф: {мавзӯъ, манбаъ, амал}, шарт: экспресс, афзалият, версия, мақом) '.
4) Принсипҳои қабули қарорҳо
Рад кардани бекор: Манъи возеҳ иҷозатномаҳоро афзалият медиҳад.
Имтиёзи камтарин (POLP): Дастрасии ҳадди аққали талабшаванда, тавассути шароит васеъ карда мешавад.
Ҷудокунии вазифаҳо (So 'D): манъи омезиши нақшҳо/амалҳо (масалан, "пардохтро" эҷод кардааст ≠ "ҳабс карда шудааст").
Контекст огоҳ: Талаботро бо хатари баландтар тақвият диҳед (не ВКХ, IP шубҳанок).
Детерминизм: ҳамон контекст → ҳамон посух; Нусхаи сиёсатро сабт кунед.
5) Намунаҳои татбиқ
5. 1 гибридии RBAC → ABAC (кондитсионер)
Нақшҳо "ҳуқуқи пешфарз" медиҳанд, шароити ABAC маҳдуд мекунад:yaml
Declarative Policy Example
- id: doc_read_own effect: allow target: { action: read, resource. type: document, subject. roles: ["editor","owner"] }
condition: resource. owner_id == subject. id
- id: doc_read_team effect: allow target: { action: read, resource. type: document, subject. roles: ["editor","viewer"] }
condition: subject. team_id in resource. shared_team_ids
- id: doc_read_confidential_external effect: deny target: { action: read, resource. type: document }
condition: resource. classification == "confidential" and subject. tenant_id!= resource. tenant_id priority: 100 # deny high priority
5. 2 Сатр/Амнияти сатҳи саҳроӣ
Дар сатҳи пойгоҳи додаҳо: сиёсати RLS (аз ҷониби 'иҷорагир _ ид', 'соҳиби _ ид').
Дар сатҳи API: коллексияҳои филтрҳо ва майдонҳои ниқоб, агар вуҷуд надошта бошад: read_sensitive_fields'.
5. 3 Ҳалли қадам ба қадам
Вобастагии қобилияти аутентификатсия:
allow if action == "export" and subject. mfa_verified == true else deny
5. 4 Таҳаммулпазирии муваққатӣ
Грантҳо бо TTL: 'супориш. expires_at', дастрасӣ ба "тирезаҳо" (дар вақти кории минтақаи захираҳо).
6) Иҷро ва кэш
Кэши қарор аз рӯи калид '(subject_hash, resource_key, амал, policy_version)' бо TTL кӯтоҳ.
Кэши канори сифатҳои мавзӯъ (даъвоҳо дар аломат) + хусусиятҳои захираҳои танбалӣ.
Беэътибории афзоянда: маъюбӣ аз рӯи ҳодисаҳо (тағир додани нақш, тағир додани сиёсат, интиқоли захираҳо ба "махфӣ").
Санҷишҳои гурӯҳӣ: барои рӯйхатҳо - бо "филтр" баҳо диҳед (pushdown policy-predict), то хати PDP-ро аз рӯи хат кашед.
7) Бисёр иҷорагир
Дар ҳар як ҷадвал - 'иҷорагир _ ид'; сиёсати пешфарз дастрасиро дар доираи иҷора маҳдуд мекунад.
Маъмурони иҷора танҳо нақшҳо/ҳуқуқҳои иҷораи онҳоро идора мекунанд.
Дастрасии байнисоҳавӣ - танҳо тавассути даъватномаҳо/мубодилаи возеҳ бо радкунии дақиқ.
8) Идоракунии сиёсат ва давраи ҳаёт
Версия: 'сиёсат. версияи 'дар посухи PDP, дар аудит нигоҳ доред.
Муҳит: лоиҳаи → канарейка (қисмҳои ҳаракат/ҳолати соя) → prod.
Матритсаи санҷишӣ: ҷадвалҳои ҳақиқат аз рӯи нақшҳо/атрибутҳои асосӣ (санҷишҳои шартнома).
Идоракунии тағирот: Якҷоя кардани дархостҳо барои сиёсат бо шарҳи амният/мувофиқат.
9) Аудит ва мушоҳида
Журнал решений: 'қарор _ id', 'мавзӯъ', 'амал', 'resource _ ref', 'натиҷа', 'matched _ polics', 'policy _ version', 'attributes _ digest'.
Нишондиҳандаҳо: QPS PDP, таъхири p95, кэши хит-нарх, рад кардани саҳм, суръати боло рафтан, ҳодисаҳои So
Нишонаҳо: фосила барои як занги PDP; робита бо дархости API.
Бозсозӣ: қобилияти "дубора" кардани қарорҳои таърихӣ оид ба версияи нави сиёсат (санҷиши бехатарӣ).
10) Ҳамгироӣ бо аутентификатсия ва нишонаҳо
Шиносӣ - аз ID (OIDC/SAML). Токенҳо ҳадди аққал сифатҳоро доранд: 'sub', 'иҷорагир', 'нақшҳо', 'auth _ time', 'amr', 'scopes'.
Барои ABAC аломатҳои "вазнин" -ро аз ҷониби сервер (PIP) кашед, то нишонаро напартоед.
Нишонаҳои захиравии имзошуда (қобилият/даъватномаҳо) - барои ҳайатҳои қатъии маҳдуд.
11) Рамзи псевдо PDP (соддакардашуда)
python def decide(subject, resource, action, env, policies):
matched = []
effect = "deny"
Explicit DENYs with priority for p in sorted (policies, key = lambda x: x.priority, reverse = True):
if target_matches(p. target, subject, resource, action):
if eval_condition(p. condition, subject, resource, env):
matched. append(p. id)
if p. effect == "deny":
return Decision("deny", matched, p. version)
Looking for ALLOW for p in policies:
if target_matches(p. target, subject, resource, action):
if eval_condition(p. condition, subject, resource, env):
matched. append(p. id)
effect = "allow"
break return Decision(effect, matched, max_version(matched, policies))
12) Анти-намунаҳо
"Нақш = саҳифа" (садҳо нақшҳои хурд бидуни модели домейн).
Танҳо дар рамз бидуни версия/аудит нигоҳ доред.
Набудани радкунӣ ва So
Рӯйхати сахт қоидаҳои корбари _ id 'in (ба ҷои атрибутҳо/муносибатҳо).
Филтри қабати маълумот (RLS) танҳо бо филтри UI мавҷуд нест.
Ҳамоҳангсозии нақшҳо тавассути скриптҳои дастӣ бидуни рӯйдодҳо ва маъюбии кэш.
13) Парвандаҳо ва дорухатҳо
13. 1 Маскаи сатҳи саҳроӣ:
allow read invoice when subject. roles includes "support"
mask fields ["card_last4", "billing_email"] unless subject. role == "finance"
13. 2 Содироти маълумот танҳо бо ВКХ:
allow export if subject. mfa_verified and env. ip in cidr("203. 0. 113. 0/24")
13. 3 Пас:
deny approve_payment if subject. performed_actions includes ("create_payment" within last 24h)
13. 4 Намояндагӣ (аломати маҳдуд):
Аломати қобилият' resource _ id', 'амалҳо = [" хонед"]', 'ба итмом мерасад _ at', 'aud'. PEP имзо ва мӯҳлати онро тасдиқ мекунад.
14) Санҷиш
Санҷишҳои воҳиди сиёсатҳо: ҷадвалҳои ҳақиқат аз рӯи таркиби асосӣ.
Ба амвол асос ёфтааст: тавлиди хусусиятҳои тасодуфӣ барои ёфтани "сӯрохиҳо".
Озмоишҳои тиллоӣ: ислоҳи маҷмӯи қарорҳо барои нуқтаҳои ниҳоӣ.
Канария/Соя: арзёбии мувозии версияҳои кӯҳна ва нави сиёсат бо сабти номувофиқатӣ.
15) Имкониятҳои марбут ба бахши "Меъморӣ ва протоколҳо"
Аутентификатсия ва авторизатсия (OIDC/OAuth2)
Идоракунии ризоият
Токенизатсия ва идоракунии калидҳо
Мушоҳида: гузоришҳо, ченакҳо, пайҳо
Гео-масир ва маҳаллисозӣ
Ҳангоми истироҳат/дар рамзгузории транзит
16) Рӯйхати назорати меъморон
1. Оё нақшҳои мавзӯӣ ва иерархияҳои онҳо муайян карда шудаанд?
2. Оё модели гибридӣ вуҷуд дорад: нақшҳо + шартҳо дар хусусиятҳо?
3. PDP-и татбиқшуда бо рад-overrides, So
4. PEP дар куҷост? (дарвоза, пушти сар, пойгоҳи додаҳо, UI) - оё он дар ҳама ҷо яксон аст?
5. Оё кэшҳои ҳалли ва маъюбии ҳодиса танзим карда шудаанд?
6. Оё сиёсатҳо санҷида мешаванд, озмуда мешаванд ва аз рӯи раванд паҳн карда мешаванд?
7. Оё қарорҳои аудит, ченакҳо ва пайҳо имкон доранд?
8. Бисёр иҷора ва RLS/ниқоби саҳроӣ дастгирӣ мешаванд?
9. Дар бораи ҳодисаҳо ва регрессияи сиёсат дафтарчае доред?
Хулоса
RBAC назоратро таъмин мекунад, ABAC контекст ва дақиқро таъмин мекунад. Бо омезиши нақшҳо бо шароити атрибут, мубодилаи PDP/PEP, татбиқи кэш, аудит ва санҷиши сиёсат, шумо авторизатсияро ҳамчун қобилияти платформа эҷод мекунед: пешгӯишаванда, санҷидашаванда ва миқёспазир барои талабот ва танзим.