Tassyklamak we ygtyýarlandyrmak
AuthN/AuthZ-iň ygtybarly kontury, siziň kimdigiňiz (autentifikasiýa) we size rugsat berlen zat (ygtyýarnama) hakda hakykatyň ýeke-täk nokadydyr. Köp sanly markalary, sebitleri, integrasiýalary we ýokary kadalaşdyryjy talaplary bolan platformada bu kontur "hyzmatlar boýunça if-olaryň ýaýramagy" däl-de, modully, gözegçilik edilýän we syýasatçylar tarapyndan dolandyrylmalydyr.
1) Esasy adalgalar we rollar
Identifikasiýa (ID): şahsyýeti kesgitlemek (user, service, provider).
Autentifikasiýa (AuthN): şahsyýetiň subutnamasy (parol, MFA, şahadatnama).
Awtorizasiýa (AuthZ): syýasatlar we kontekst esasynda "mümkin/mümkin däl" kararyny kabul etmek.
PDP/PEP: Policy Decision Point (karar berýär )/Policy Enforcement Point (ulanýar).
IdP: identifikasiýa üpjün ediji (OIDC).
Subject/Resource/Action/Context: kim/näme/näme edýär/haýsy şertlerde.
2) Konturyň umumy arhitekturasy
[ IdP (OIDC) ]
│ OIDC/OAuth 2. 1 (PKCE, JAR/JARM)
[ Token Service / JWKS / KMS ]
│klyuchi (rotate)
│ JWT/Access/Refresh, mTLS
[API Gateway (PEP)] Solution/Policy ──kesh
│ authN/CSRF/CORS/rate-limit
[ Microservices (PEP)]──PDP (OPA/cedar) ──Policy Store (GitOps)
│audit/metriki
[ Data/Providers ]── service-to-service (mTLS+JWT/Spiffe)
Ýörelgeler: tokenleriň we syýasatlaryň öndürilmegini merkezleşdirmek, lokal ulanmak; "iň az artykmaçlyklar" we aç-açan ygtyýarlyklar.
3) Ulanyjylary tassyklamak (OIDC/OAuth 2. 1)
Pattern:- Authorization Code + PKCE (elmydama SPA/Mobile üçin).
- SSO: b2b/operatorlar üçin daşarky IdP (SAML/OIDC) goldaw.
- MFA: TOTP/WebAuthn/SMS (WebAuthn we TOTP tarapyndan maslahat berilýär; SMS — fallback).
- Risk-based Step-Up: duýgur hereketlerde (serişdeleri çykarmak, jikme-jiklikleri üýtgetmek) MFA/pe-Auth talap etmek.
- Refresh Token Rotation + gaýtadan ulanmak detektory bilen RT sanawy.
- Nonce/State + PKCE, brauzer akymlary üçin berk CORS/CSRF.
- Short-lived access tokens (5–15 мин) + silent refresh/RT.
- Möhüm amallar üçin device binding (DPoP/mtls-bound tokens).
json
{
"iss": "https://auth. example. com",
"sub": "user_9f12",
"aud": ["wallet","catalog"],
"exp": 1730385600,
"iat": 1730384700,
"tenant": "brand_eu",
"region": "EE",
"amr": ["pwd, ""webauthn"] ,//authentication methods
"scp": ["wallet:read","bets:place","kyc:status. read"],
"sid": "sess_a1b2c3", // session id
"acr": "urn: mfa: strong "//warranty level
}
4) Hyzmat-hyzmaty tassyklamak (mTLS, SPIFFE, JWT)
mTLS durnukly workload identifikatorlary üçin + SPIFFE/SPIRE hyzmatlarynyň arasynda.
HSM/KMS tarapyndan gol çekilen gysga möhletli (5 minutdan ≤) Service JWT; berlen audit.
Audience-scoped: JWT diňe belli bir hyzmat/domen üçin amatlydyr.
Ynam zolaklary: başga sebitden/tenantdan hyzmatlar - aýry-aýry PKI we syýasatlar.
5) Ygtyýarnama modelleri: RBAC, ABAC, ReBAC
RBAC (rollar → çözgütler): ýönekeý we aç-açan (dolandyryş panelleri, operatorlar üçin amatly).
ABAC (subýektiň/çeşmäniň/kontekstiň atributlary): "tenant =... AND region=… AND kyc_tier≥2».
ReBAC (gatnaşyklar): çylşyrymly eýeçilik üçin peýdalydyr ("kimiň markasy/bukjasy/kampaniýasy bar").
Maslahat: gibrid - esasy RBAC + kontekstli ABAC şertleri + nokat ReBAC gatnaşyklary.
6) Syýasatlar we olaryň ýerine ýetirilişi (PDP/PEP)
Gateway we hyzmatlarda PEP: konteksti çykarýar (JWT, mandatlar, IP/ASN, wagt, sebit, KYC-derejesi), PDP-e haýyşy emele getirýär.
PDP (mysal üçin OPA/cedar):json
{
"subject": { "sub":"user_9f12", "roles":["support"], "kyc":2, "tenant":"brand_eu" },
"action": "bets. place",
"resource": { "game_id":"g_42", "provider":"pr_x" },
"context": { "region":"EE", "ip_asn":"AS12345", "time":"2025-10-31T12:34:56Z" }
}
we 'ALLOW/DENY' düşündirişini yzyna gaýtarýar.
PEP (TTL 30-120 c) çözgütleri kesmek gizlinligi peseldýär; "rollaryň/syýasatyň üýtgemegi" wakalary boýunça maýyplyk.
Syýasatyň mysaly (psevdo-Rego):rego package bets
default allow = false
allow {
input. action == "bets. place"
input. subject. kyc >= 2 input. subject. tenant == input. context. tenant not blocked_region within_limits
}
blocked_region { input. context. region == "NL" }
within_limits { input. context. bet_amount <= data. limits. max_bet[input. subject. tenant] }
7) Satyn alyşlar we rugsatlar
At:- Çeşme: hereket - 'wallet: read', 'wallet: transfer', 'bets: place', 'kyc: status. read`.
- Dolandyryjylar üçin - 'admin:' izolirlenen domende.
- Üpjün edijiler üçin - 'provider: report. read`, `provider:events. push`.
Iň pes artykmaçlyklaryň ýörelgesi: diňe zerur satyn alyjylary belleýäris; "eskalasiýa" (hukuklaryň wagtlaýyn giňeldilmegi) - bilet boýunça we TTL bilen.
8) Köp tenant we sebitler (residency)
Tokenlarda 'tenant', 'region', 'licence' bar; PDP çeşmäniň laýyklygyny barlaýar.
Rollar/syýasatlar - per tenant atlarynyň giňişlikleri ('role: brand _ eu/support').
Goluň açarlaryny we yzyna çagyryş sanawlaryny sebitler boýunça bölmek; sebitleýin soraglar - diňe ynanylan şlýuzlar arkaly.
9) Sessiýalary we enjamlary dolandyrmak
Web üçin server-side session store (enjam/brauzer baglanyşygy, identifikatoryň aýlanmagy).
Idle/Absolute Timeout (mysal üçin, 30 minut/24 sagat); duýgur hereketler - re-Auth/MFA.
Işjeň enjamlaryň sanawy, "hemmelerden çykmak".
Anomaliýalar: dürli sebitlerden bir wagtyň özünde girmek, MFA-nyň ýygy-ýygydan şowsuzlygy - töwekgelçilik signallary.
10) Tabşyrmak we razylyk (consent)
On-behalf-of (OBO): hyzmat ulanyjynyň adyndan hereket edýär (aýratyn 'sub '/' act' bilen proxy-token).
Razylyk: partnýoryň maglumatlara elýeterliligi üçin açyk ekran, yzyna çagyryş bilen ylalaşyklar magazineurnaly.
Wagtlaýyn access-mandates: N sagada/güne bolan hukuklar awtomatiki usulda gutarýar.
11) Açarlar, gollar we aýlaw
JWKS s 'kid', awtomatiki aýlanyş, şahsy açarlary KMS/HSM-de saklamak.
Algoritmler: JWT üçin ES256/EdDSA; TLS 1. 2+/mTLS.
Dual-key döwri: "kid" -iň ikisini hem müşderileriň täzelenmegi tamamlanýança kabul etmek.
Möhüm wakalar üçin RT we Token Introspection syny.
12) Müşderi programmalarynyň howpsuzlygy
SPA: Authorization Code + PKCE, no `implicit`, строгий CORS/Content-Security-Policy.
Mobile: App Attestation/Device Check, RT goralýan ammar, ruta garşy gorag/jailbreak.
Desktop: giriş üçin ulgam brauzeri (no embedded web-views), PKCE.
13) Amatly şertnamalar SDK
Evaluate (AuthZ) API:http
POST /authz/evaluate
Authorization: Bearer <access_jwt>
Body: { "action":"bets. place", "resource":{"game_id":"g_42"}, "context":{"bet_amount":5. 0} }
→ 200 { "decision":"ALLOW", "ttlMs":60000, "explain":"kyc>=2, limit ok" }
Token Exchange (OBO):
http
POST /oauth/token grant_type=urn:ietf:params:oauth:grant-type:token-exchange subject_token=<user_jwt>&actor_token=<service_jwt>&audience=wallet
14) Gözegçilik we audit
Metrikler:- `authn_success_rate`/`mfa_challenge_rate`/`mfa_fail_rate`
- `authz_p95_ms`, `authz_denied_rate{reason}`
- `invalid_token_rate`, `jwks_skew_ms`, `rt_reuse_detected`
- Giriş anomaliýalary (täze enjam, geo-velocity), şübheli satyn almalar.
- `who/what/when/where/why`, `decision`, `policy_version`, `token_kid`, `client_id`.
- Komplayens üçin eksport (düzgünleşdiriji/wendor-audit).
15) Perimetri we müşderini goramak
Gateway PEP: rate-limit, bot/signature checks, CSRF-gorag, berk CORS, HSTS.
Içerki traffik: mTLS + hyzmat JWT + çäklendirilen torlar.
Webhuklar/daşarky kollbekler: beden gollary (HMAC/JWS), wagt penjireleri, anti-bellik.
16) Adaty ýalňyşlyklar
Uzak ömürli access-tokenler → syzmak.
SPA-a OAuth implisit akymy.
Açar aýlawynyň we Dual-Key döwrüniň ýoklugy.
Syýasatlaryň ýerine daşarky rollar (çözgütleri diňlemek/düşündirmek mümkin däl).
Tenantlaryň/sebitleriň bir 'role' ýa-da 'key' -de garyşmagy.
Duýgur hereketlerde step-up MFA ýok.
Rollaryň üýtgemegi boýunça maýyplyk bolmazdan AuthZ çözgütleriniň keşi.
17) Oýun kitaplary (runbooks)
1. JWT gol açaryny bozmak
Derrew revoke 'kid', täze JWKS-iň neşir edilmegi, RT/sessiýalaryň mejbury maýyplygy, audit hasabaty.
2. Köpçülikleýin 'invalid _ token'
Sagadyň/ömrüň aralygyny, JWKS-iň ähmiýetini, kesiň şowsuzlyklaryny barlaň.
3. Giriş anomaliýalary
Töwekgelçiligiň ýokarlanmagyny öz içine alyň, step-up talap ediň, ulanyja habar beriň, tölegleri wagtlaýyn çäklendiriň.
4. IdP şowsuzlygy
Sessiýa/rol enjamyna geçiň, täze loginleri çäklendiriň, bar bolan sessiýalary TTL-e çenli saklaň.
18) Azyk önüminden öň çek-sanawy
- OIDC/OAuth 2. 1 PKCE bilen, gysga AT, RT aýlawy, möhüm amallar üçin device binding.
- MFA (WebAuthn/TOTP) we step-up.
- Hyzmat-to-service: mTLS + SPIFFE, gysga ömürli hyzmat JWT.
- Merkezleşdirilen PDP-de AuthZ (RBAC + ABAC/ReBAC) syýasaty; PEP gateway we hyzmatlarda.
- Maýyplyk kararlarynyň nagt pullary; audit trail üýtgemez.
- Köp tenant/sebitler: açarlary/syýasatlary/ýazgylary izolirlemek, ygtyýarnamalary hasaba almak.
- JWKS/KMS/HSM-de açarlar, dual-key rotasiýa, kid monitoringi.
- CSRF/CORS/HSTS/Rate-limit/bot-süzgüçleri perimetrde.
- Wakalaryň oýun kitaplary, run-düwmeler revoke/rotate/lockdown.
- Synaglar toplumy: unit (policies), contract (SDK/flows), chaos (IdP, JWKS), e2e (step-up, OBO, revoke).
19) Konfigurasiýalaryň kiçi şablonlary
Skope sanawy (YAML):yaml scopes:
wallet: read: {desc: "Reading balance"}
wallet: transfer: {desc: "Transfer of funds," sensitive: true, step_up: true}
bets: place: {desc: "Bet"}
kyc:status. read: {desc: "KYC status"}
roles:
support:
allow: [wallet:read, kyc:status. read]
finance:
allow: [wallet:read, wallet:transfer]
player:
allow: [bets:place]
PDP syýasaty (sebitiň şerti):
yaml deny:
- when: { region: ["NL","BE"] }
actions: ["bets."]
Netije
Autentifikasiýa we ygtyýarlandyryş kontury kitaphana däl-de, platforma ukybydyr: gysga ömürli bellikler we dolandyrylýan açarlar, merkezleşdirilen syýasatlar we olaryň ýerli ulanylmagy, köp faktor we ädim-ädim, tenantlaryň/sebitleriň berk izolýasiýasy, audit we telemetriýa. Şeýle dizaýn üýtgeşmeleri düzgünleşdiriji üçin ygtybarly, düşündirip boljak we önüm üçin aç-açan edýär - bazarlar we toparlar boýunça masştab etmek edermenlik däl-de, adaty operasiýa öwrülýär.