GH GambleHub

Մուտքի վերահսկումը և RBAC API

1) Ինչո՞ ւ է API մուտքի վերահսկումը AP

Հեղինակային իրավունքը պատասխանն է այն հարցին, թե արդյոք այս դերասանը կարող է կատարել այս գործողությունը հիմա այս ռեսուրսի վրա։ ». Սխալները հանգեցնում են BOLA/IDOR արտանետումների, իրավունքների սրման և կարգավորողների պահանջների խախտման։ Նպատակը բազմաշերտ մոդել կառուցելն է 'պարիմետրը բացատրում է բիզնես կանոնները, ակնհայտ քաղաքական գործիչներին և ստուգումներին օբյեկտի մակարդակում։

2) Հեղինակային իրավունքի մոդելներ. Երբ ինչ-որ բան ընտրել

RBAC (Role-Based Systel Systel) - ռուսական լուծման դերերը։ Պարզ, կայուն, բայց հակված է «դերերի պայթյունի»։

ABAC (Attribast-Based) - լուծումը սուբյեկտի/օբյեկտի/կոնտեքստի (երկիրը, KYC մակարդակը, ռեսուրսների սեփականատերը, ռիսկը)։

ReBAC (Relenship-Based) - հարաբերությունների հաշվարկը (սեփականատերը, թիմի անդամը, «նախագծի ղեկավարը»); լուծում է բարդ հիերարխիաները։

Scopes (OAuth) - հաճախորդի և ռեսուրս-տեղեկատվության միջև «մուտքի գոտի» (օրինակ ՝ «payments: write»)։

Պրակտիկա 'RBAC-ը մատրիցի, ABAC-ի համար համատեքստում և սահմանափակումների համար, ReBAC բարդ հիերարխիաների համար (թղթապանակներ, կազմակերպություններ, լիմիտներ և պոդկաունտներ)։

3) Ռեսուրսների և գործողությունների տաքսոնոմիա

Հիերարխիաներ ՝ «org project project wallet pro transaction»։ Վերևից ներքև իրավունքների ժառանգությունը հնարավոր «սահմանափակողների» հետ։

Գործողությունները ՝ CRUD + domain-հատուկ («approve», «refund», «settle»)։

Ռեսուրսների հատկությունները 'սեփականատերը, տարածաշրջանը, կարգավիճակը, ռիսկի թեգերը (AML/KYC), սահմանները։

Բազմապատկություն 'բոլոր լուծումները պարունակում են «tenium _ id»; խաչաձև-տենանտային հարցումների արգելքը լռելյայն (deny-by-international)։

4) Ճարտարապետություն 'որտե՞ ղ է որոշում կայացվում

PEP (Policy Enforcium Point) - ստուգման տեղը 'դարպաս/API-gatway, sidecar Masha, ծառայություն։

PDP (Policy Decision Point) - քաղաքական շարժիչ, կենտրոնացված (OPA-ծառայություն, Cedar-շարժիչ) կամ ներկառուցված գրադարան։

PIP (Policy Information Point) - ատրիբուտների աղբյուրներ 'օգտագործողների/դերերի կատալոգը, tenault պրոֆիլը, KUS/ռիսկը, ռեսուրսների քարտեզը։

PAP (Policy Administration Point) - քաղաքական, հրապարակման, աուդիտի տարբերակների կառավարումը։

Առաջարկություն 'կենտրոնացված PDP + տեղական լուծումների քեշը PEP-ում; ծառայության բարդ օբյեկտի ստուգումներ, եթե առկա են հիբրիդային ինվարանտներ։

5) Տոկենները, կլեյմաները և ինքնությունը

OIDC/OAuth2: «sub» (ռուսական սուբյեկտ), «aud» (ռուսական ծառայություն), «scope »/« roles», «tenae», «kyc _ level», «risk _ tier»։

JWT: RS/ES ստորագրություն, կարճ «exp», որը թարգմանվել է refresh-ով։ Մի դրեք PII; օգտագործեք 'jti' հետ կանչելու/trak-2019։

MTSA/HMAC 'ծառայություն-ծառայություն և գործընկերներ; կլեյմերը ձգվում են կոդից «client _ id»։

Device/Exprest: IP/ASN, geo, օրվա ժամանակը - ABAC լուծումը (օրինակ, write արգելքը աշխատանքային ժամերից դուրս)։

6) Օբյեկտի մակարդակների հեղինակային իրավունքը (BOLA-first) (BOLA-first)

Յուրաքանչյուր վիրահատություն պետք է պատասխանի "արդյո՞ ք սուբյեկտը սեփականատեր է/արդյոք իրավունք ունի այս" resource _ id "։

Սեփականության ստուգումը 'resource։ owner_id == subject. id 'կամ «org» -ի անդամակցությունը դերի հետ։

Ֆիլտրային ընտրություն. Միշտ պարտադրեք «WHMS resource»։ tenant_id =:tenant AND...` (row-level security).

Հղման վիրահատությունների համար (ID ճանապարհին/մարմնում) - նորմալիզացրեք և վալիդիզացրեք բիզնես տրամաբանությունը։

7) RBAC նախագծումը 'դերեր, լուծումներ, հավաքածուներ

Թույլտվությունները (permissions) ատոմային իրավունքներ են ՝ «wallet»։ read`, `wallet. write`, `payment. refund`.
Դերերը 'անվանված կոմպոզիցիաների հավաքածուներ' "admin", "supert. read`, `cashier`, `fraud. analyst`.

Scopes-ը հաճախորդների համար արտաքին պայմանագիր է (meping scope permissions)։

Խուսափեք դերերի պայթյունից

հիմնական դերերը + «գերակայություններ» (permission packs),

Սահմանափակումներ ABAC (երկիր/տարածաշրջան/տենանտ),

«Ժամանակավոր կոմպոզիցիաները» (Just-In-Time), գործողության ժամանակահատվածը)։

8) AVAS/համատեքստային սահմանափակումներ

Գեո/միգրացիա. Արգելված երկրներից write արգելքը (սանկցիաներ/կարգավորող)։

Ժամանակը/ռիսկը '«risk _ score

KUS/limits: «kyc _ level> = 2» եզրակացության համար> X; գործարքների միջև «կենտրոնացման» վերահսկումը։

«Վստահելի սարքեր» 'պահանջել mTRK գործընկերների համար վտանգավոր երթուղիներում։

9) ReBAC-ը և ճիշտ գրաֆիկը

Օգտակար է բարդ բիզնեսի կառուցվածքների համար (խմբեր, թիմեր, բրենդեր, ֆիլալներ)։

Հարաբերությունները '«mem.ru», «admin», «owner», «viewer»։

Արտադրական իրավունքները '«viewer» ռեսուրսը ժառանգվում է «mem.ru» նախագծից, որը պատկանում է «org»։

Գրաֆիկի պահեստ 'BD հարաբերությունների մատրիցայի հետ, հատուկ ծառայություն (Zanzibar-մոտեցման ոգով)։ Cashirurek 'kt (wwww.ject, relation, object) "։

10) Որոշումներ և արտադրողականություն

Kash PDP-ը PEP-ի մակարդակում (օրինակ, դարպասի մեջ) բանալին '«sub' tenault 'resource' action 'policy _ version»։

TTL-ը կարճ է (վայրկյան-րոպե) + հաշմանդամություն 'դերերի/հարաբերությունների/թենիսի փոփոխություն։

Batch-ստուգումները (bulk authz) ցուցակների համար 'նվազեցնում են PDP աղյուսակները։

Չափեք latency լուծումները։ քայքայման դեպքում 'graceful-degradation միայն read-ի համար (երբեք write/փողի համար)։

11) Քաղաքական օրինակներ

11. 1 JWT-cleims - կոպիտ PEP (կեղծ-գեյթվեյ)

yaml
- match: { prefix: "/api/v1/wallets" }
authz:
require:
- claim: "aud"
equals: "wallet-service"
- claim: "scope"
includes_any: ["wallet. read", "wallet. write"]
context:
tenant_from: "claim:tenant"

11. 2 OPA/Rego (ABAC + BOLA)

rego package authz

default allow = false

allow {
input. action == "wallet. read"
input. subject. tenant == input. resource. tenant some role role:= input. subject. roles[_]
role == "support. read"
}

allow {
input. action == "payment. refund"
input. subject. tenant == input. resource. tenant input. subject. kyc_level >= 2 input. subject. risk_tier <= 2 input. subject. id == input. resource. owner_id # BOLA
}

11. 3 Իրավասության սահմանափակումը (քաղաքականությունը deny-list)

rego deny[msg] {
input. action == "withdraw. create"
input. context. country in {"IR","KP","SY"}
msg:= "Jurisdiction not allowed"
}

11. 4 ReBAC քաղաքականություն (կեղծ)


allow(subject, "wallet. write", wallet) --
related(subject, "member", wallet. project) ∧ related(subject, "admin", wallet. org)   ∧ wallet. tenant == subject. tenant.

12) Քաղաքական կառավարումը և տարբերակները

Քաղաքական տարբերակումը («policy _ version») և կանարեթը վտանգավոր փոփոխությունների համար։

«Չոր եղջյուրները» (wwww.y-run/shadow decisions) նյութափոխանակությունն է 'allow/deny' առանց ազդեցության։

Քաղաքական և միգրացիաների կատալոգը 'ով, երբ և ինչու փոխեց։ համեմատություն միջադեպերի հետ։

Բացասական սցենարների թեստերը (արգելված քեյսները) պարտադիր են CI-ում։

13) Դիտողությունն ու աուդիտը

Որոշումների լոգները ՝ «trace _ id», «www.ject», «ten.ru», «resource _ id», «resorts», «policy _ version», մերժման պատճառը։

Մետրիկները ՝ «authz _ decision _ latency», «authz _ denied _ total + action +», BOLA-փորձարկումների մասը, քեշ-hit-rate։

Դաշբորդները 'գործողությունների լավագույն մերժումները/տենանտները, օրինագծից հետո միտումները։

14) Անվտանգություն և կայունություն

Deny-by-international-ը 'ակնհայտ լուծման բացակայությունը = արգելքը։

Fail-closed: PDP-ի անհասանելիության դեպքում կրիտիկական write-ը բացատրում է արգելքը (կամ «նվազագույն հավաքածուի» դեգրադացիան խստորեն ստուգված դերերի)։

Տեղական «guard-ստուգումներ» ծառայությունների ներսում կրիտիկական ինվարանտների համար (օրինակ ՝ «tenault »/« owner»)։

JWT-ում կլեյմների նվազեցումը։ զգայուն ատրիբուտներ ընկերանալ PIP-ի միջոցով պաշտպանված պայմանագրով։

15) iGaming/ֆինանսական առանձնահատկությունները

Դերերը ՝ "cashier", "kyc. agent`, `aml. officer`, `fraud. analyst`, `vip. manager`, `risk. admin`.

Սահմանափակումներ. Վճարման վիրահատությունները կախված են «kyc _ level» -ից, վճարումների սահմաններից, AML/2019 կարգավիճակից։

Բլոկների տրամագծերը ՝ «org/brand/device/payment _ instrument» - ABAC ֆիլտրերը write-ում։

Աուդիտ ամսագրերը անփոփոխ են KYC/AML/եզրակացության համար։ պահեստավորում համաձայն կարգավորող ժամկետների։

Գործընկեր API: mTSA + պայմանագրային «scopes» երթուղիներով, geo/ASN ֆիլտրերով պարագծի վրա։

16) Փորձարկում և հավատարմագրում

Negative-մատրիցը 'թվարկել ակնհայտ «արգելված» դեպքեր և ամրագրել թեստերը։

Հեղինակային իրավունքի ֆուզը 'փոխարինումը' «tenium _ id», «owner _ id», շրջանցելով ֆիլտրերը պագինացիայի/տեսակավորման ժամանակ։

Load-թեստ PDP: Ռուսական լատենտ և քեշի վարքագիծը p95/p99։

Քաղաքական ռելիզը 'www.y-run + canary + մեքենան սպասվող deny/allow-ից։

Միջադեպերը 'ստենդում հարցումների հավաքումը քաղաքական գործչի ճշգրիտ տարբերակով։

17) Անտիպատերնի

Ապավինել միայն «scope» -ի վրա առանց օբյեկտի ստուգումների (BOLA)։

Խառնել բիզնես տրամաբանությունը և ստուգել իրավունքները յուրաքանչյուր հենդլերում առանց կենտրոնացված մոդելի։

Hardocoding դերերը UI-ում և վստահել հաճախորդների որոշումներին։

"Tenault '/" owner" ֆիլտրերի բացակայությունը BD-ի պահանջների մեջ (leaky reads)։

Չկա քեշի լուծումների հաշմանդամություն, երբ փոխում են դերերը/հարաբերությունները։

Երկար գոյատևող JWT-ն առանց հետ կանչելու/ռոտացիայի։

18) Չեկ-թուղթ պատրաստակամության համար

  • Սահմանվում են ռեսուրսներ/գործողություններ, հիերարխիա և բազմաբնույթ։
  • Windows RBAC մատրիցա + ABAC սահմանափակիչ, որտեղ անհրաժեշտ է ReBAC։
  • PDP/PEP նախագծված; կան տեղական որոշումների քաշ և նրա հաշմանդամություն։
  • Քաղաքական գործիչները տարբերակվում են, CI-ում բացասական գործողությունների թեստերը։
  • BOLA ստուգումները յուրաքանչյուր write/read-ում հատուկ «resource _ id»։
  • JWT նվազագույն կլեյմերով, կարճ 'exp'; աուդիտ/ակնարկ 'jti'։
  • Metriki/logs լուծումներ, dashbords, alerts deny/latency։
  • Fail-closed քննադատական write-ի համար; fallback ռեժիմը փաստաթղթավորված է։
  • Հաճախորդների համար '«scopes», ռուսական սխալներ (401/403/404/409), օրինակներ։

19) TL; DR

Կառուցեք BOLA-first-ի հեղինակային իրավունքը 'կենտրոնական PDP + լուծումներ, RBAC որպես հիմք, ABAC ենթատեքստի համար, ReBAC հարաբերությունների համար։ Բոլոր հարցումները '«tenault» և կոնկրետ «resource _ id» համատեքստում։ deny-by-international, կարճ JWT, օբյեկտի ֆիլտրեր BD-ում։ Տարբերակեք և փորձարկեք քաղաքական գործիչները, չափեք latency/deny, միջադեպերը վերարտադրեք։ IGaming-ի համար առանձնահատուկ դերեր են (KYC/AML/ձայներիզը), կոշտ ABAC սահմանափակիչները և անփոփոխ աուդիտը։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։