GH GambleHub

Giriş gözegçiligi we RBAC API

1) Näme üçin API-e girmäge gözegçilik etmek

Awtorizasiýa: "Bu aktýor häzirki wagtda bu çeşmäniň üstünde hereket edip bilermi? ». Ýalňyşlyklar BOLA/IDOR-syzmagyna, hukuklaryň ýokarlanmagyna we düzgünleşdirijileriň talaplarynyň bozulmagyna getirýär. Maksat köp derejeli modeli döretmekdir: perimetri → hyzmat-meş → işewürlik düzgünleri, obýektiň derejesinde aç-açan syýasatlar we barlaglar bilen.

2) Ygtyýarlylandyrmagyň modelleri: haçan saýlamaly

RBAC (Role-Based Access Control) - rollar → rugsatlar. Ýönekeý, durnukly, ýöne "rollaryň partlamagyna" ýykgyn edýär.
ABAC (Attribute-Based) - subýektiň/obýektiň/kontekstiň atributlary boýunça çözgüt (ýurt, KYC-derejesi, çeşmäniň eýesi, töwekgelçilik).
ReBAC (Relationship-Based) - gatnaşyklar grafy (eýesi, toparyň agzasy, "taslama dolandyryjysy"); çylşyrymly iýerarhiýalary çözýär.
Skopes (OAuth) - müşderi bilen çeşme-serweriň arasynda "giriş zolagy" barada şertnama (mysal üçin 'payments: write').
Amal: Esasy matrisa üçin RBAC, kontekst we çäklendirmeler üçin ABAC, çylşyrymly iýerarhiýalar üçin ReBAC (bukjalar, guramalar, çäkler we aşaky sanawlar).

3) Çeşmeleriň we hereketleriň taksonomiýasy

Iýerarhiýalar: 'org → project → wallet → transaction'. Hukuklaryň mümkin bolan "çäklendirijiler" bilen ýokardan aşak miras galmagy.
Hereketler: CRUD + domain-spesifik ('approve', 'refund', 'settle').
Çeşmeleriň häsiýetleri: eýesi, sebiti, ýagdaýy, töwekgelçilik bellikleri (AML/KYC), çäkleri.
Köp kärende: ähli çözgütlerde 'tenant _ id' bar; deny-by-default (deny-by-default).

4) Binagärlik: karar nirede kabul edilýär

PEP (Policy Enforcement Point) - barlanylýan ýer: şlýuz/API-geýtweý, sidecar mesh, hyzmatyň özi.
PDP (Policy Decision Point) - syýasatçynyň hereketlendirijisi: merkezleşdirilen (OPA-hyzmat, Cedar-hereketlendiriji) ýa-da gurlan kitaphana.
PIP (Policy Information Point) - atributlaryň çeşmeleri: ulanyjylaryň/rollaryň katalogy, tenantyň profili, KUS/töwekgelçilik, çeşmelere eýelik kartasy.
PAP (Policy Administration Point) - syýasatlaryň wersiýalaryny dolandyrmak, neşir etmek, audit.

Maslahat: merkezleşdirilen PDP + PEP-de lokal çözgüt keşi; domen üýtgemeleri bolan ýagdaýynda hyzmatda çylşyrymly obýektiw barlaglar.

5) Bellikler, bellikler we şahsyýet

OIDC/OAuth2: 'sub', 'aud', 'scope '/' roles', 'tenant', 'kyc _ level', 'risk _ tier'.
JWT: RS/ES-gol, gysga 'exp', refresh boýunça gaýtadan çykarmak. PII goýmaň; yzyna almak/trek-audit üçin 'jti' ulanyň.
mTLS/HMAC: hyzmat-k-hyzmat we hyzmatdaşlar; "client _ id" bellikleri katalogdan çykarylýar.
Device/Context: IP/ASN, geo, gije-gündiziň wagty - ABAC-çözgüdine girmek (mysal üçin, iş wagtyndan daşary write gadaganlygy).

6) Obýekt-dereje ygtyýarlylygy (BOLA-first)

Her bir amal "subýektiň eýesi bolmy/bu 'resource _ id' -e hukugy barmy?" diýip jogap bermeli.

Eýelik barlagy: 'resource. owner_id == subject. id 'ýa-da rol bilen' org 'agzalygy.
Saýlamalary süzmek: elmydama 'WHERE resource' goýuň. tenant_id =:tenant AND...` (row-level security).
Baglanyşyk amallary üçin (ýolda/telefonda ID) - kadalaşdyryň we iş logikasyna çenli tassyklaň.

7) RBAC dizaýny: rollar, rugsatlar, toplumlar

Rugsat (permissions) - atom hukuklary: 'wallet. read`, `wallet. write`, `payment. refund`.
Rollar - "admin", "support. read`, `cashier`, `fraud. analyst`.
Skopes - müşderiler üçin daşarky şertnama (scope → permissions).

Rollaryň partlamagyndan gaça duruň:
  • esasy rollar + "goşmaça gurluşlar" (permission packs),
  • ABAC çäklendirmeleri (ýurt/sebit/tenant),
  • "wagtlaýyn ýokarlandyrmalar" (Just-In-Time access, hereket ediş möhleti).

8) ABAS/kontekst çäklendirmeleri

Geo/ýurisdiksiýa: gadagan edilen ýurtlardan write gadaganlygy (sanksiýalar/düzgünleşdiriji).
Wagt/töwekgelçilik: 'risk _ score <threshold' uly amallar üçin.
KUS/çäkleri: 'kyc _ level> = 2' netijeler üçin> X; geleşikleriň arasynda "sowamaga" gözegçilik etmek.
"Ygtybarly enjamlar": howply ugurlardaky hyzmatdaşlar üçin mTLS talap etmek.

9) ReBAC we hukuk grafasy

Çylşyrymly işewürlik gurluşlary (toparlar, toparlar, markalar, şahamçalar) üçin peýdalydyr.

Gatnaşyk: 'member', 'admin', 'owner', 'viewer'.
Emele gelen hukuklar: resurs 'viewer' 'org' -e degişli 'member' taslamasyndan miras galýar.
Grafanyň ammary: gatnaşyklar matrisi bolan DB, ýöriteleşdirilen hyzmat (Zanzibar çemeleşmesi ruhunda). 'check (subject, relation, object)' jogaplaryny kesiň.

10) Çözgütler üçin nagt pul we öndürijilik

PEP derejesinde (mysal üçin, şlýuzda) "sub 'tenant' resource 'action' policy _ version 'açary bilen PDP keşi.
TTL gysga (sekunt-minut) + wakalar boýunça maýyplyk: rollaryň/gatnaşyklaryň/tenantyň üýtgemegi.
Sanawlar üçin batch-barlaglar (bulk authz): PDP çarjalaryny azaldar.
Çözgütleriň giňligini ölçäň; pese gaçanda - graceful-degradation diňe okamak üçin (hiç haçan write/pul üçin).

11) Syýasatçylaryň mysallary

11. 1 JWT bellikleri → gödek PEP (pseudo-geýtweý)

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 Ýurisdiksiýa boýunça çäklendirme (deny-list syýasaty)

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

11. 4 ReBAC syýasaty (psevdo)


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

12) Syýasatlary we wersiýalary dolandyrmak

Syýasatyň wersiýasy ('policy _ version') we howply üýtgeşmeler üçin kanareýka.
"Gury yrgylar" (dry-run/shadow decisions) - täsir etmezden 'allow/deny' -ni ýazýarys.
Syýasatlaryň we migrasiýa katalogy: kim, haçan we näme üçin üýtgetdi; wakalar bilen deňeşdirmek.
Negatiw ssenariler üçin synaglar (gadagan ýagdaýlar) - CI-de hökmanydyr.

13) Gözegçilik we audit

Çözgüt girelgeleri: 'trace _ id', 'subject', 'tenant', 'action', 'resource _ id', 'result', 'policy _ version', şowsuzlygyň sebäbi.
Metrikler: 'authz _ decision _ latency', 'authz _ denied _ total {action}', BOLA-synanyşyklaryň paýy, keş-hit-rate.
Daşbordlar: hereketler/tenantlar boýunça ýokary şowsuzlyklar, syýasatlar goýberilenden soň tendensiýalar.

14) Howpsuzlyk we durnuklylyk

Deny-by-default: aç-açan rugsadyň ýoklugy = gadaganlyk.
Fail-closed: PDP elýeterli bolmasa, gaty write → gadaganlyk (ýa-da berk barlanan rollaryň "iň az toplumyna" degradasiýa).
Möhüm üýtgemeler üçin hyzmatlaryň içinde ýerli "guard-barlaglar" (mysal üçin, 'tenant '/' owner').
JWT-de bellikleri azaltmak; duýgur atributlary PIP arkaly ygtybarly kanal arkaly ýüklemek.

15) iGaming/Maliýe aýratynlyklary

Rollar: 'cashier', 'kyc. agent`, `aml. officer`, `fraud. analyst`, `vip. manager`, `risk. admin`.
Çäklendirmeler: töleg amallary "kyc _ level", jogapkär tölegleriň çäklerine, AML/sanksiýalaryň ýagdaýyna baglydyr.
Bloklama sanawlary: 'org/brand/device/payment _ instrument' - write ABAC-süzgüçleri.
KYC/AML/netijeleriň hereketleri üçin üýtgemeýän audit-magazinesurnallar; kadalaşdyryjy möhletlere laýyklykda saklamak.
Hyzmatdaş API: mTLS + kontrakt 'scopes' marşrutlar boýunça, geo/ASN-süzgüçler perimetrde.

16) Synag we barlamak

Negative-matrisa: aç-açan "gadagan" ýagdaýlary sanap geçiň we synaglar bilen berkidiň.
Fuzz ygtyýarnamasy: 'tenant _ id', 'owner _ id' çalyşmagy, paginasiýa/sortlama wagtynda süzgüçleri aýlamak.
PDP ýüklemek synagy: p95/p99-da gizlinligi we keşiň özüni alyp barşyny barlaň.
Syýasatyň çykmagy: dry-run + canary + garaşylýan deny/allow bilen awtoulag swerki.
Wakalar: syýasatlaryň takyk wersiýasy bilen stendde soraglaryň gaýtalanmagy.

17) Antipatternler

Diňe obýekt barlagy bolmazdan 'scope' -e bil bagla (BOLA).
Merkezleşdirilen model bolmazdan, her bir hendlerde işewürlik logikasyny we hukuklary barlamagy garyşdyrmak.
UI-de rollary gizlemek we müşderi kararlaryna ynanmak.
DB (leaky reads) soraglarynda 'tenant '/' owner' süzgüçleriniň ýoklugy.
Rollary/gatnaşyklary üýtgedeniňde kesiş çözgütleriniň maýyplygy ýok.
Uzak ömürli JWT yzyna alynmazdan/aýlanmazdan.

18) Prod-taýynlyk çek-sanawy

  • Resurslar/hereketler, iýerarhiýalar we köp kärende kesgitlenildi.
  • Esasy RBAC-matrisa + ABAC-çäklendirijiler, zerur ýerlerde - ReBAC.
  • PDP/PEP işlenip düzüldi; çözgütleriň ýerli keşi we onuň maýyplygy bar.
  • Syýasatçylar CI-de negatiw ssenariýalary synagdan geçirýärler.
  • Her write-de BOLA-barlaglary/anyk 'resource _ id' -de okalýar.
  • JWT iň az bellikli, gysga 'exp'; "jti" boýunça audit/yzyna çagyryş.
  • Çözgütleriň metrikleri/logleri, daşbordlar, deny/latency boýunça alertler.
  • Möhüm write üçin ýalňyşlyk; fallback-re modeim dokumentleşdirildi.
  • Müşderiler üçin resminamalar: 'scopes', ýalňyşlyk kodlary (401/403/404/409), mysallar.

19) TL; DR

BOLA-first ygtyýarnamasyny guruň: merkezi PDP + çözgütler keş, RBAC esas hökmünde, ABAC kontekst üçin, ReBAC gatnaşyklar üçin. Ähli soraglar - 'tenant' we anyk 'resource _ id' kontekstinde; deny-by-default, gysga JWT, DB-de obýekt süzgüçleri. Syýasatlary wersiýalaň we synagdan geçiriň, latency/deny ölçäň, wakalary repleým bilen oýnaň. iGaming üçin - aýry-aýry rollar (KYC/AML/kassa), berk ABAC çäklendirijiler we üýtgemeýän audit.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.