GH GambleHub

OAuth2/OpenID Birikdirmek

OIDC OAuth2 üstünde "ulanyjynyň kimdigini" subut etmegiň we API-e gysga ömürli elýeterliligi bermegiň adaty usulydyr. Platformanyň özeninde merkezi ukyba öwrülýär: müşderiler, operatorlar we hyzmatlar üçin ýeke-täk giriş; iň az artykmaçlyklar; ölçelip bolýan töwekgelçilik; sebitleýin we ygtyýarnama düzgünleriniň berjaý edilmegi.

1) Maksatlar we ýörelgeler

Bölmek "deploy vs enable": Kody aýratyn çykarýarys, baýdaklar/syýasatlar arkaly elýeterliligi açýarys.
Gysga ömürli bellikler + howpsuz täzelenme: syzdyrylanda zyýany azaldýarys.
Multi-tenant/region: ähli artefaktlar 'tenant/region/licence'.
Bellikleriň üstündäki syýasatlar: çözgütleri PDP (RBAC/ABAC), PEP gateway/hyzmatlarda edýär.
Kanallary goramak: TLS1. 2 +, mümkin boldugyça mTLS/DPoP, berk CORS/CSRF.
Gözegçilik we audit: akym, müşderi, sebit boýunça görünmek.

2) Akymlar we olary haçan ulanmak

Authorization Code + PKCE (SPA/Mobile/Web) - ulanyjy loginleri üçin defolt.
Device Authorization (konsollar/TV/CLI) - brauzer ýok wagty.
Client Credentials (machine-to-machine) - ulanyjysyz hyzmat integrasiýasy.
Token Exchange (RFC 8693, OBO) - hyzmat ulanyjynyň adyndan hereket edýär.
CIBA/Back-channel (islege görä) - redaktorsyz push-autentifikasiýa.

Şunda goşulmaly uzantylar:
  • PAR (Pushed Authorization Requests) - ygtyýarnamanyň parametrleri ygtybarly serwer kanaly arkaly iberilýär.
  • JAR (JWT Secured Authorization) - haýyşnamanyň parametrleri gol çekildi/şifrlendi.
  • JARM - çalyşmalara çydamly, ygtybarly ygtyýarnama jogaby (JWT).
  • RAR (Rich Authorization Requests) - elýeterli hukuklara baý haýyşlar (jikme-jik rugsatlar).

3) Bellikler we markalar

Görnüşleri:
  • ID Token (OIDC) - girenler (diňe müşderä/fronta görkeziň).
  • Access Token (AT) - hereket etmek hukugy (gysga ömür).
  • Refresh Token (RT) - AT täzelenýär; diňe ynanylan gurşawda saklanylýar.
Möhletler boýunça teklipler:
  • AT: 5-15 min (web/mobile), 2-5 min (service-to-service).
  • RT: 7–30 дней (web/mobile) с rotation + reuse detection.
  • ID: ≤ 5 minut.
AT iň az bellikleri (mysal):
json
{
"iss":"https://auth. core",
"sub":"user_42",
"aud":["wallet","catalog"],
"exp":1730388600,"iat":1730388000,
"tenant":"brand_eu","region":"EE","licence":"EE-A1",
"scp":["wallet:read","bets:place"],     // scopes
"sid ": "sess _ abcd, ""amr": [" pwd,"" webauthn"] ,//login methods
"act":{"sub":"svc. catalog" }//if OBO
}

Gol çekiş: ES256/EdDSA, açyk açarlar - JWKS-de 'kid' we rotasiýa bilen.

4) Sessiýalaryň kontury we logout

Server-side session для web (cookie `SameSite=Lax/Strict`, `HttpOnly`, `Secure`).
Back-Channel Logout + Front-Channel Logout (OIDC) - ähli müşderileriň sinhron tamamlanmagy.
Step-Up MFA: duýgur hereketlerde - gaýtadan barlamak ('acr' ýokarlanýar).
Revocation & Introspection: Waka boýunça RT/AT-ny derrew öçürmek.

5) Müşderileriň howpsuzlygy

Web/SPAs: Authorization Code + PKCE, implicit ýok; berk CORS/Content-Security-Policy.
Mobile: ulgam brauzeri (AppAuth), bütewilik barlagy (App Attestation/DeviceCheck), RT goralýan ammar.
Desktop/CLI/TV: Device Flow; RT-ni OS-gizlin ammarlarda saklaň.
AT-ny enjam/birikdirmek üçin DPoP ýa-da mTLS-bound tokens.

6) Hyzmat-hyzmat

mTLS + gysga Service JWT (aud-skoped), KMS/HSM bilen STS berýär.
Workload şahsyýetleri: SPIFFE/SPIRE.
"Dar-giň" syýasaty: ýerine anyk audience we scopes ".

7) Skope-reýestr we razylyk (consent)

Ady: 'resurs: action' - 'wallet: read', 'wallet: transfer', 'bets: place', 'kyc: status. read`.

Skoplaryň görünmegini we duýgurlygyny sazlaň.
Consent screen RAR/Scopes-dan ýygnalýar; ylalaşyklaryň taryhyny saklaň we yzyna çagyrmaga rugsat beriň.

RAR mysaly (gapjyk → terjime):
json
{
"type":"wallet. transfer",
"actions":["create"],
"locations":["https://api. core/wallet"],
"datatypes":["payment"],
"resources":[{"wallet_id":"w_123","currency":"EUR","amount_max":1000}]
}

8) Ygtyýarnama bilen integrasiýa (PDP/PEP)

API Gateway-de PEP AT/DPoP/mTLS tassyklaýar, konteksti baýlaşdyrýar (IP/ASN/region/tenant), PDP-e haýyş edýär.
PDP (OPA/cedar) RBAC/ABAC/ReBAC syýasatlaryny ulanýar we düşündiriş we TTL bilen 'ALLOW/DENY' -ni yzyna gaýtarýar.
PEP-de (TTL 30-120 s) wakalar boýunça maýyplyk bilen çözgütleriň keşi (rollaryň/düzgünleriň üýtgemegi).

9) Köp tenant we sebitler

Ähli bellikler we sessiýalar 'tenant/region/licence' bilen bellenilýär; PDP çeşmäniň laýyklygyny tassyklaýar.
Aýry-aýry JWKS/sebitler boýunça açarlar we yzyna çagyryş sanawlary; kross-sebit - ynanylan şlýuzlar arkaly.
Maglumatlaryň rezidentlik çäklendirmeleri: introspektsiýa/revokasiýa gelip çykan sebitinde ýerine ýetirilýär.

10) Teswirnamanyň güýçlendirilmegi

PAR + JAR + JARM - ygtyýarnamanyň parametrlerini we jogaplaryny goraýar.
Nonce/State/PKCE - ähli açyk müşderiler üçin.
"Pushed Device Authorization" (ýokary töwekgelçilikde).
Iň az bellikli JWT Access Tokens + içerki gözleg arkaly daşarky integrasiýa üçin opaque warianty.
FAPI-şuňa meňzeş amallar: berk gol algoritmleri, TLS/redirect_uri/PKCE talaplary.

11) Ýalňyşlyklar we yzyna gaýtarmak syýasaty

Jogaplary standartlaşdyryň:
json
{ "error":"invalid_grant", "error_description":"refresh token reused", "error_code":"RT_REUSE" }

Критичные коды: `invalid_request`, `invalid_client`, `invalid_grant`, `invalid_scope`, `unauthorized_client`, `access_denied`, `temporarily_unavailable`.
Duýgur endpointler üçin rate-limit ('/token ', '/introspect', '/revoke '), eksponensial backoff.

12) Gözegçilik we audit

Metrikler:
  • `auth_code_success_rate`, `pkce_missing_rate`, `mfa_challenge/fail_rate`,
  • `token_issuance_p95_ms`, `jwks_skew_ms`, `invalid_token_rate`, `rt_reuse_detected`,
  • по API: `authz_p95_ms`, `deny_rate{reason}`, `dpop_mismatch_rate`, `mtls_fail_rate`.

Логи/трейсы: `client_id`, `grant_type`, `kid`, `acr/amr`, `tenant/region`, `decision`, `policy_version`, `aud`, `scp`, `sid`, `trace_id`.
Audit (üýtgemeýän): bellikleriň berilmegi, hukuklaryň güýçlenmegi, ylalaşyklaryň yzyna alynmagy, açarlaryň aýlanmagy.

13) Açarlary dolandyrmak we rotasiýa

JWT goly: KMS/HSM, JWKS-iň 'kid' bilen neşir edilmegi.
Dual-key period: IdP täzesine gol çekýär, inspektorlar geçmezden ozal köne + täzesini kabul edýärler.
Yzygiderli aýlanyş we gyssagly revoke; 'kid' sarp edilişine gözegçilik.

14) Oýun kitaplary (runbooks)

1. Gol açaryny bozmak

Derrew revoke 'kid', täze, RT/sessiýalaryň fors-maýyplygy, audit hasabatyny çykarmak.

2. Köpçülikleýin 'invalid _ token '/401

Döwülen AT, döwülen JWKS-kesh, sagatlaryň bölünişini barlamak; 'clock _ skew' toleransyny wagtlaýynça artdyrmak.

3. RT-ni gaýtadan ulanmak

Sessiýany bloklamak ('sid'), ulanyja habar bermek, täze giriş üçin step-up talap etmek, derňew.

4. IdP ýykylmagy

"read-only authorization" re modeimini açyň: hereket edýän AT-ny TTL-e çenli saklaň, täze loginleri çäklendiriň, içerki gözleg kesşini skelet ediň.

5. '/token '-e hüjüm

rate-limit/bot-süzgüçleri güýçlendirmek, duýgur müşderiler üçin mTLS/DPoP-leri açmak, "sowuk" RT-leri aýratyn segmente çykarmak.

15) Synag

Contract: OIDC discovery, JWKS, OpenID provider config.
Howpsuzlyk: PKCE/nonce/state hökmany; negative-toparlar ('redirect _ uri', reuse RT çalyşmalary).
Interoperability: müşderiler (web/mobile/CLI), dürli wagt guşaklary/lokallary.
Chaos: PAR/JARM-den ýüz öwürmek, JWKS-den gijä galmak, rotated 'kid' "uçuş".
E2E: step-up MFA, OBO (token exchange), logout (front/back-channel), revoke/rotate.

16) Konfigurasiýa mysallary

OIDC/Authorization Server (YAML bölegi):
yaml issuer: https://auth. core jwks:
rotation_days: 30 alg: ES256 tokens:
access_ttl: 10m refresh_ttl: 14d id_ttl: 5m policies:
require_pkce: true require_par: true require_jarm: true dpop_enabled: true mfa_step_up:
actions: ["wallet:transfer","payout:initiate"]
tenancy:
include_claims: ["tenant","region","licence"]
jwks_per_region: true
Skope sanawy:
yaml scopes:
wallet: read: {desc: "Reading balance"}
wallet: transfer: {desc: "Transfer of funds," sensitive: true, step_up: true}
bets: place: {desc: "Betting"}
kyc:status. read: {desc: "KYC status"}
roles:
player: { allow: [bets:place] }
support: { allow: [wallet:read, kyc:status. read] }
finance: { allow: [wallet:read, wallet:transfer] }

17) Azyk önüminden öň çek-sanawy

  • PKCE/nonce/state goşuldy; PAR/JAR/JARM işjeň.
  • AT/RT/ID TTL berildi; RT rotation + reuse detection goşuldy.
  • Duýgur müşderiler/amallar üçin DPoP ýa-da mTLS-binding.
  • JWKS c `kid`; açarlaryň sarp edilmeginiň awtomatiki aýlanmagy we gözegçiligi.
  • Konsent/RAR we satyn alyş sanawy; duýgur hereketler üçin step-up MFA.
  • PDP/PEP integrirlenen, maýyplyk çözgütleriniň keşi.
  • Tokenlarda 'tenant/region/licence' bar; residency berjaý edilýär.
  • Syn edilişi: metrikler, loglar, yzarlama; alertalar 'invalid _ token', 'rt _ reuse', 'jwks _ skew'.
  • Revoke/rotate/lockdown pleybuklary; gyssagly giriş düwmesi.
  • E2E/chaos/interop synaglaryň toplumy stendlerde geçirildi.

Netije

Platforma güýji hökmünde OAuth2/OIDC gurup, öňünden aýdyp boljak ygtyýarnama akymlaryny, dolandyrylýan bellikleri, bitewi giriş syýasatlaryny we ölçenip bolýan töwekgelçiligi alarsyňyz. Gysga AT, RT goragly, açar aýlawy, PAR/JARM/DPoP, razylyk we step-up - bu howpsuzlygy, ewolýusiýany bolsa toparlary we hyzmatdaşlary üçin çalt we agyrysyz edýän amallar.

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.