GH GambleHub

OAuth2/OpenID Connect

OAuth2 üzərindəki OIDC «kimin istifadəçisi/müştərisi» olduğunu sübut etmək və API-yə qısa ömürlü giriş vermək üçün standart bir yoldur. Platformanın nüvəsində mərkəzi qabiliyyətə çevrilir: müştərilər, operatorlar və xidmətlər üçün vahid giriş; minimum imtiyazlar; ölçülə bilən risk; regional və lisenziya qaydalarına riayət edilməsi.

1) Məqsədlər və prinsiplər

«deploy vs enable» bölməsi: kodu ayrı-ayrılıqda yuvarlayırıq, bayraqlar/siyasətlər vasitəsilə daxil edirik.
Qısa ömürlü tokenlər + təhlükəsiz yeniləmə: sızma zamanı zərəri azaldır.
Multi-tenant/region: Bütün artefaktlar 'tenant/region/licence'.
Tokenlərin üstündəki siyasətlər: PDP (RBAC/ABAC), PEP gateway/servislərdə həllər edir.
Kanalların qorunması: TLS1. 2 +, mümkünsə mTLS/DPoP, sərt CORS/CSRF.
Müşahidə və audit: axın, müştəri, bölgə üzrə görünürlük.

2) Axınlar və nə zaman tətbiq olunur

Authorization Code + PKCE (SPA/Mobile/Web) - istifadəçi loginləri üçün defolt.
Device Authorization (konsollar/TV/CLI) - brauzer olmadıqda.
Client Credentials (machine-to-machine) - istifadəçi olmadan xidmət inteqrasiyası.
Token Exchange (RFC 8693, OBO) - xidmət istifadəçi adından fəaliyyət göstərir.
CIBA/Back-channel (isteğe bağlı) - redaksiyasız push-autentifikasiya.

Varsayılan olaraq daxil edilməli olan uzantılar:
  • PAR (Pushed Authorization Requests) - avtorizasiya parametrləri təhlükəsiz server kanalı vasitəsilə ötürülür.
  • JAR (JWT Secured Authorization) - sorğu parametrləri imzalanmış/şifrələnmişdir.
  • JARM - etibarlı avtorizasiya cavabı (JWT), saxtakarlığa davamlıdır.
  • RAR (Rich Authorization Requests) - zəngin giriş hüququ sorğuları (ətraflı icazələr).

3) Tokenlər və markalar

Növləri:
  • ID Token (OIDC) - daxil olan (yalnız müştəriyə/cəbhəyə göstərmək).
  • Access Token (AT) - fəaliyyət hüququ (qısa ömür).
  • Refresh Token (RT) - AT yeniləyir; yalnız etibarlı mühitdə saxlanılır.
Şərtlər üzrə tövsiyələr:
  • AT: 5-15 dəq (web/mobile), 2-5 dəq (service-to-service).
  • RT: 7–30 дней (web/mobile) с rotation + reuse detection.
  • ID: ≤ 5 dəq.
Minimum AT markaları (nümunə):
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
}

İmza: ES256/EdDSA, açıq açarlar - JWKS-də 'kid' və rotasiya ilə.

4) Sessiyaların konturu və logout

Server-side session для web (cookie `SameSite=Lax/Strict`, `HttpOnly`, `Secure`).
Back-Channel Logout + Front-Channel Logout (OIDC) - bütün müştərilərin sinxron tamamlanması.
Step-Up MFA: həssas hərəkətlərdə - təkrar yoxlama ('acr' artır).
Revocation & Introspection: Hadisə ilə bağlı RT/AT-ın dərhal bağlanması.

5) Müştəri təhlükəsizliyi

Web/SPAs: Authorization Code + PKCE, implicit yoxdur; ciddi CORS/Content-Security-Policy.
Mobile: sistem brauzeri (AppAuth), bütövlük testi (App Attestation/DeviceCheck), RT qorunan saxlama.
Desktop/CLI/TV: Device Flow; RT-ni OS gizli anbarlarında saxlayın.
AT-ı cihaza/əlaqəyə bağlamaq üçün DPoP və ya mTLS-bound tokens.

6) Service-to-service

mTLS + qısa Service JWT (aud-scoped), KMS/HSM ilə STS verir.
Workload şəxsiyyətləri: SPIFFE/SPIRE.
Siyasət "eninə dar": yerinə xüsusi audience və scopes ".

7) Scope-reyestr və razılıq (consent)

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

Skupların görünürlüğünü və həssaslığını konfiqurasiya edin.
Consent screen RAR/Scopes yığılır; razılıq tarixçəsini saxlayın və rəy verin.

RAR nümunəsi (cüzdan → tərcümə):
json
{
"type":"wallet. transfer",
"actions":["create"],
"locations":["https://api. core/wallet"],
"datatypes":["payment"],
"resources":[{"wallet_id":"w_123","currency":"EUR","amount_max":1000}]
}

8) Avtorizasiya ilə inteqrasiya (PDP/PEP)

API Gateway-də PEP AT/DPoP/mTLS-i təsdiqləyir, konteksti zənginləşdirir (IP/ASN/region/tenant), PDP-yə sorğu edir.
PDP (OPA/cedar) RBAC/ABAC/ReBAC siyasətlərini tətbiq edir və izahat və TTL ilə 'ALLOW/DENY' qaytarır.
PEP-də (TTL 30-120 s) hadisələr üzrə əlilliyi olan cache həlləri (rolların/qaydaların dəyişdirilməsi).

9) Multi-tenant və regionlar

Bütün tokenlər və sessiyalar 'tenant/region/licence' ilə etiketlənir; PDP resurs uyğunluğunu təsdiqləyir.
Bölgələr üzrə ayrı JWKS/açarları və rəy siyahıları; xaç-region - etibarlı şlüzlər vasitəsilə.
Məlumat rezidentlik məhdudiyyətləri: introspektsiya/revokasiya mənşə bölgəsində həyata keçirilir.

10) Protokol gücləndirmələri

PAR + JAR + JARM - avtorizasiya parametrlərini və cavablarını qoruyur.
Nonce/State/PKCE - bütün ictimai müştərilər üçün.
Pushed Device Authorization (yüksək risk altında).
minimum markaları ilə JWT Access Tokens + introspektsiya vasitəsilə xarici inteqrasiya üçün opaque variant.
FAPI kimi təcrübələr: ciddi imza alqoritmləri, TLS/redirect_uri/PKCE tələbləri.

11) Səhvlər və geri qaytarma siyasəti

Cavabları standartlaşdırın:
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`.
Həssas end-pointlər üçün rate-limit ('/token ', '/introspect', '/revoke '), eksponensial backoff.

12) Müşahidə və audit

Metriklər:
  • `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 (dəyişməz): tokenlərin verilməsi, hüquqların eskalasiyası, razılığın geri alınması, açarların rotasiyası.

13) Açarların idarə edilməsi və rotasiya

JWT imzası: KMS/HSM, JWKS-in 'kid' ilə nəşri.
Dual-key dövrü: IdP yeni imzalayır, yoxlayıcılar keçiddən əvvəl köhnə + yeni qəbul edir.
Müntəzəm rotasiya və təcili revoke; 'kid' istehlakının monitorinqi.

14) Playbooks (runbooks)

1. İmza açarının güzəşti

Dərhal revoke 'kid', yeni azad, fors-əlil RT/seanslar, audit hesabat.

2. Kütləvi 'invalid _ token '/artım 401

Sındırılmış AT, sındırılmış JWKS-cache, saatın sındırılmasını yoxlayın; müvəqqəti tolerans artırmaq 'clock _ skew'.

3. RT-nin təkrar istifadəsi

Oturumu bloklayın ('sid'), istifadəçini xəbərdar edin, yeni giriş üçün step-up tələb edin, araşdırma.

4. IdP düşməsi

«read-only authorization» rejimini işə salın: mövcud AT-nı TTL-ə qədər saxlayın, yeni loginləri məhdudlaşdırın, introspection cache-ni skeyləyin.

5. Hücum '/token '

rate-limit/bot filtrələri gücləndirmək, həssas müştərilər üçün mTLS/DPoP-ni daxil etmək, ayrı bir seqmentə «soyuq» RT-ni çıxarmaq.

15) Test

Contract: OIDC discovery, JWKS, OpenID provider config.
Təhlükəsizlik: PKCE/nonce/state tələb olunur; negative-dəsti ('redirect _ uri', reuse RT).
Interoperability: müştərilər (web/mobile/CLI), müxtəlif saat kəmərləri/lokallar.
Chaos: PAR/JARM-in uğursuzluğu, JWKS-in gecikməsi, rotated 'kid' «uçuş zamanı».
E2E: step-up MFA, OBO (token exchange), logout (front/back-channel), revoke/rotate.

16) Konfiqurasiya nümunələri

OIDC/Authorization Server (YAML parçası):
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
Scope reyestri:
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) Satış öncəsi yoxlama siyahısı

  • PKCE/nonce/state daxil; PAR/JAR/JARM aktivdir.
  • AT/RT/ID TTL təyin; RT rotation + reuse detection daxildir.
  • Həssas müştərilər/əməliyyatlar üçün DPoP və ya mTLS-binding.
  • JWKS c `kid`; avtomatik rotasiya və açar istehlakı monitorinqi.
  • Consent/RAR və alış-veriş reyestri; həssas hərəkətlər üçün step-up MFA.
  • PDP/PEP inteqrasiya, əlillik ilə cache həllər.
  • Tokenlər 'tenant/region/licence'; riayət residency.
  • Müşahidə: metriklər, log, izləmə; 'invalid _ token', 'rt _ reuse', 'jwks _ skew'.
  • revoke/rotate/lockdown playbook; təcili giriş düyməsi.
  • E2E/chaos/interop testlərin dəsti stendlərdə keçirilib.

Nəticə

Platforma qabiliyyəti kimi OAuth2/OIDC inteqrasiya edərək, proqnozlaşdırıla bilən avtorizasiya axınları, idarə olunan tokenlər, vahid giriş siyasəti və ölçülə bilən risk əldə edirsiniz. Qısa AT, RT qorunan, açar rotasiyası, PAR/JARM/DPoP, razılıq və step-up, komandalar və tərəfdaşlar üçün sürətli və ağrısız olan təhlükəsizliyi təmin edən təcrübələrdir.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.