GH GambleHub

Çekirdekte OAuth2/OpenID bağlayın

OAuth2 üzerinden OIDC, kullanıcının/istemcinin kim olduğunu kanıtlamanın ve kısa ömürlü API erişimi sağlamanın standart bir yoludur. Platformun özünde, merkezi bir yetenek haline gelir: müşteriler, operatörler ve hizmetler için tek oturum açma; asgari ayrıcalıklar; Ölçülebilir risk; Bölgesel ve lisanslama yönetmeliklerine uygunluk.

1) Hedefler ve ilkeler

"Deploy vs enable" ayrımı: Kodu ayrı ayrı açın, bayraklar/ilkelerle erişimi etkinleştirin.
Kısa ömürlü belirteçler + güvenli güncelleme: sızıntılardan kaynaklanan hasarı azaltın.
Çok kiracılı/bölge: tüm eserler 'kiracı/bölge/lisans'olarak etiketlenir.
Belirteçlerin üstündeki politikalar: çözümler PDP (RBAC/ABAC), PEP on gateway/services tarafından yapılır.
Bağlantı koruması: TLS1. 2 +, mTLS/DPoP mümkünse, sıkı CORS/CSRF.
Gözlemlenebilirlik ve denetim: akışa, müşteriye, bölgeye göre görünürlük.

2) Akışlar ve ne zaman uygulanacağı

Yetkilendirme Kodu + PKCE (SPA/Mobil/Web) - kullanıcı girişleri için varsayılan.
Cihaz Yetkilendirmesi (konsollar/TV/CLI) - tarayıcı olmadığında.
İstemci Kimlik Bilgileri (makineden makineye) - kullanıcı olmadan servis entegrasyonları.
Token Exchange (RFC 8693, OBO) - hizmet kullanıcı adına hareket eder.
CIBA/Arka kanal (isteğe bağlı) - yeniden yönlendirmeden kimlik doğrulaması yapın.

Varsayılan olarak etkinleştirilecek uzantılar:
  • PAR (Pushed Authorization Requests) - yetkilendirme parametreleri güvenli bir sunucu kanalı üzerinden iletilir.
  • JWT Güvenli Yetkilendirme - İstek parametreleri imzalanmış/şifrelenmiştir.
  • JARM - korumalı yetkilendirme yanıtı (JWT), sahteciliğe karşı dayanıklıdır.
  • RAR (Zengin Yetkilendirme İstekleri) - zengin erişim hakları istekleri (ayrıntılı izinler).

3) Belirteçler ve pullar

Türleri:
  • ID Token (OIDC) - kim girdi (yalnızca istemciye/öne göster).
  • Access Token (AT) - eylem hakkı (kısa ömür).
  • Refresh Token (RT) - AT güncellemeleri; Yalnızca güvenilir bir ortamda saklanır.
Zamanlama önerileri:
  • AT: 5-15 dakika (web/mobil), 2-5 dakika (servis-servis).
  • RT: 7-30 дней (web/mobil) с rotasyon + yeniden kullanım algılama.
  • ID: ≤ 5 dk.
Minimum AT damgaları (örnek):
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
}

İmzalama: ES256/EdDSA, açık anahtarlar - JWKS'de'çocuk've rotasyon.

4) Oturum taslağı ve çıkış

Sunucu tarafı oturum для web (çerez 'SameSite = Lax/Strict', 'HttpOnly', 'Secure').
Arka Kanal Çıkış + Ön Kanal Çıkış (OIDC) - tüm istemcilerin eşzamanlı sonlandırılması.
Step-Up MFA: hassas eylemlerle - tekrarlanan kontrol ('acr' artar).
İptal ve İç Gözlem: Olayla RT/AT'yi derhal devre dışı bırakma.

5) Müşteri güvenliği

Web/SPA'lar: Yetkilendirme Kodu + PKCE, örtülü değil; Sıkı CORS/İçerik-Güvenlik-Politikası.
Mobil: sistem tarayıcısı (AppAuth), bütünlük kontrolü (App Attestation/DeviceCheck), güvenli RT depolama.
Masaüstü/CLI/TV: Cihaz Akışı; RT'yi işletim sistemi gizli mağazalarında saklayın.
AT'yi cihaza/bağlantıya bağlamak için DPoP veya mTLS'ye bağlı belirteçler.

6) Servisten servise

mTLS + kısa Servis JWT (aud-scoped), KMS/HSM ile STS verir.
İş yüklerinin kimlikleri: SPIFFE/SPIRE.

Dar kapsamlı politika: Bunun yerine belirli kitle ve kapsamlar. "

7) Kapsam-kayıt ve onay

Adlandırma: 'kaynak: eylem' - 'cüzdan: okuma', 'cüzdan: transfer', 'bahisler: yer', 'kyc: durum. Oku '.

Kapsamların görünürlüğünü ve hassasiyetini yapılandırın.
Onay ekranı RAR/Scopes'tan monte edilir; Bir onay geçmişi tutun ve geri bildirime izin verin.

RAR örneği (cüzdan - çeviri):
json
{
"type":"wallet. transfer",
"actions":["create"],
"locations":["https://api. core/wallet"],
"datatypes":["payment"],
"resources":[{"wallet_id":"w_123","currency":"EUR","amount_max":1000}]
}

8) Yetkilendirme Entegrasyonu (PDP/PEP)

Ağ Geçidi API'sindeki PEP, AT/DPoP/mTLS'yi doğrular, bağlamı zenginleştirir (IP/ASN/bölge/kiracı), PDP'ye bir istekte bulunur.
PDP (OPA/cedar) RBAC/ABAC/ReBAC politikalarını uygular ve açıklama ve TTL ile 'ALLOW/DENY' döndürür.
Etkinliğe göre engelli PEP (TTL 30-120 s) çözüm önbelleği (rol/kural değişikliği).

9) Çok kiracı ve bölgeler

Tüm belirteçler ve oturumlar 'kiracı/bölge/lisans'olarak etiketlenmiştir; PDP, kaynak uyumluluğunu doğrular.
JWKS/tuşları ve geri çağırma listelerini bölgelere göre ayırın; Çapraz bölge - güvenilir ağ geçitleri aracılığıyla.
Veri ikameti sınırlamaları: İç gözlem/iptal, menşe bölgesinde gerçekleştirilir.

10) Protokol amplifikasyonları

PAR + JAR + JARM - Yetkilendirme parametrelerini ve yanıtlarını koruyun.
Nonce/State/PKCE - tüm kamu müşterileri için.
İtilmiş Cihaz Yetkilendirmesi (yüksek risk altında).
JWT Access Belirteçleri, minimum damgalarla + iç gözlem yoluyla dış entegrasyonlar için opak seçenek.
FAPI benzeri uygulamalar: katı imza algoritmaları, TLS/redirect_uri/PKCE gereksinimleri.

11) Hatalar ve iade politikası

Yanıtları standartlaştırın:
json
{ "error":"invalid_grant", "error_description":"refresh token reused", "error_code":"RT_REUSE" }

Критичные коды: 'invalid _ request', 'invalid _ client', 'invalid _ grant', 'invalid _ scope', 'authorized _ client', 'access _ denied', 'temporally _ available'.
Hassas uç noktalar için hız sınırı ('/token ','/introspect','/revoke '), üstel geri alma.

12) Gözlemlenebilirlik ve denetim

Metrikler:
  • 'auth _ code _ success _ rate', 'pkce _ missing _ rate', 'mfa _ challenge/fail _ rate',
  • 'token _ releasion _ p95 _ ms', 'jwks _ skew _ ms', 'invalid _ token _ rate', 'rt _ reuse _ detected',
  • по API'si: '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'.
Denetim (değiştirilemez): belirteçlerin verilmesi, hakların arttırılması, onayların geri çekilmesi, anahtar rotasyonu.

13) Anahtar yönetimi ve rotasyon

JWT imzası: KMS/HSM,'çocuk'ile JWKS yayını.
Çift anahtarlı dönem: IdP yeni işaretler, gözden geçirenler değiştirmeden önce eski + yeni kabul eder.
Düzenli rotasyon ve acil iptal; "Çocuk" tüketiminin izlenmesi.

14) Playbook'lar (runbook'lar)

1. İmza anahtarı uzlaşma

Derhal'çocuk'u iptal edin, yeni, zorla devre dışı bırakılmış bir RT/oturum, denetim raporu yayınlayın.

2. Kütle 'invalid _ token'/büyüme 401

Saat yanlış hizalamasını, süresi dolmuş AT, kırık JWKS önbelleğini kontrol edin; Geçici olarak'clock _ skew 'toleransını artırın.

3. RT yeniden kullanımı

Oturumu ('sid') engelleyin, kullanıcıyı bilgilendirin, yeni bir giriş için bir adım talep edin, araştırın.

4. IdP düşüşü

"Salt okunur yetkilendirme" modunu etkinleştirin: Etkin AT'leri TTL'ye kadar tutun, yeni girişleri kısıtlayın, iç gözlem önbelleğini ölçeklendirin.

5. '/token 'üzerine saldırı

Hız sınırı/bot filtrelerini güçlendirin, hassas istemciler için mTLS/DPoP'yi etkinleştirin, soğuk RT'leri ayrı bir segmente taşıyın.

15) Test etme

Sözleşme: OIDC keşfi, JWKS, OpenID sağlayıcı yapılandırması.
Güvenlik: PKCE/nonce/state gereklidir; Negatif kümeler ('redirect _ uri', RT'yi yeniden kullanma).
Birlikte çalışabilirlik: istemciler (web/mobil/CLI), farklı zaman dilimleri/yerel ayarlar.
Kaos: PAR/JARM hatası, JWKS gecikmesi, anında'çocuk 'döndürüldü.
E2E: adım adım MFA, OBO (belirteç değişimi), çıkış (ön/arka kanal), iptal/döndürme.

16) Yapılandırma örnekleri

OIDC/Yetkilendirme Sunucusu (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
Kapsam kaydı:
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ış öncesi kontrol listesi

  • PKCE/nonce/state etkin; PAR/JAR/JARM aktiftir.
  • AT/RT/TTL Kimlik seti; RT döndürme + yeniden kullanım algılama etkinleştirildi.
  • Hassas istemciler/işlemler için DPoP veya mTLS bağlama.
  • JWKS c'çocuk '; Otomatik rotasyon ve anahtar tüketimi izleme.
  • Rıza/RAR ve kapsam kaydı; Hassas faaliyetler için MFA'yı arttırın.
  • PDP/PEP entegre, engellilik çözümleri önbellek.
  • Belirteçler 'kiracı/bölge/lisans' içerir; yerleşim gözlemlenir.
  • Gözlemlenebilirlik: metrikler, günlükler, izleme; 'invalid _ token', 'rt _ reuse', 'jwks _ skew' için uyarılar.
  • revoke/rotate/lockdown üzerine oyun kitapları; acil çıkış düğmesi.
  • Tribünlerde bir dizi E2E/chaos/interop testi yapıldı.

Sonuç

OAuth2/OIDC bir platform özelliği olarak yerleştirerek, öngörülebilir yetkilendirme akışları, yönetilen belirteçler, tek tip erişim politikaları ve ölçülebilir risk elde edersiniz. RT ile korunan kısa AT'ler, anahtar rotasyonu, PAR/JARM/DPoP, rıza ve adım atma, güvenliği varsayılan hale getiren ve ekipler ve ortaklar için hızlı ve acısız bir evrim sağlayan uygulamalardır.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.