GH GambleHub

OAuth2/OpenID Connect im Kernel

OIDC auf der OAuth2 ist der Standardweg, um zu beweisen, wer der Benutzer/Kunde ist, und um einen kurzlebigen API-Zugriff zu gewähren. Im Kern der Plattform wird es zu einer zentralen Fähigkeit: Single Sign-On für Kunden, Betreiber und Dienste; Mindestprivilegien; messbares Risiko; Einhaltung der regionalen und lizenzrechtlichen Bestimmungen.

1) Ziele und Grundsätze

Trennung „deploy vs enable“: Wir rollen den Code separat aus, aktivieren den Zugriff mit Flags/Richtlinien.
Kurzlebige Token + sicheres Update: Reduzieren Sie Schäden bei Lecks.
Multi-Tenant/Region: Alle Artefakte werden mit 'tenant/region/licence' beworfen.
Richtlinien über Token: Lösungen werden von PDP (RBAC/ABAC), PEP auf Gateway/Diensten gemacht.
Kanalschutz: TLS1. 2 +, möglichst mTLS/DPoP, strenge CORS/CSRF.
Beobachtbarkeit und Auditierung: Sichtbarkeit durch den Fluss, durch den Kunden, durch die Region.

2) Ströme und wann sie anzuwenden sind

Authorization Code + PKCE (SPA/Mobile/Web) - Standard für Benutzeranmeldungen.
Geräteautorisierung (Konsolen/TV/CLI) - wenn kein Browser vorhanden ist.
Client Credentials (Machine-to-Machine) - Service-Integrationen ohne Benutzer.
Token Exchange (RFC 8693, OBO) - Der Dienst handelt im Namen des Benutzers.
CIBA/Back-Channel (optional) - Push-Authentifizierung ohne Umleitung.

Erweiterungen, die standardmäßig aktiviert werden sollten:
  • PAR (Pushed Authorization Requests) - Autorisierungsparameter werden über einen sicheren Serverkanal übertragen.
  • JAR (JWT Secured Authorization) - Anforderungsparameter sind signiert/verschlüsselt.
  • JARM ist eine sichere Autorisierungsantwort (JWT), die gegen Spoofing resistent ist.
  • RAR (Rich Authorization Requests) - Umfangreiche Anfragen nach Zugriffsrechten (detaillierte Berechtigungen).

3) Token und Stempel

Typen:
  • ID Token (OIDC) - wer sich angemeldet hat (nur Client/Front anzeigen).
  • Access Token (AT) - Recht auf Handlung (kurzes Leben).
  • Refresh Token (RT) - Aktualisiert AT; wird nur in einer vertrauenswürdigen Umgebung gespeichert.
Empfehlungen für Fristen:
  • AT: 5-15 Min. (Web/Mobile), 2-5 Min. (Service-to-Service).
  • RT: 7–30 дней (web/mobile) с rotation + reuse detection.
  • ID: ≤ 5 min.
Minimale AT-Stempel (Beispiel):
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
}

Signieren: ES256/EdDSA, öffentliche Schlüssel - bei JWKS mit 'kid' und Rotation.

4) Sitzungsumrisse und Logout

Server-side session для web (cookie `SameSite=Lax/Strict`, `HttpOnly`, `Secure`).
Back-Channel Logout + Front-Channel Logout (OIDC) - synchrone Terminierung aller Clients.
Step-Up MFA: bei sensiblen Aktionen - erneute Überprüfung ('acr' steigt).
Revocation & Introspection: Sofortige Deaktivierung von RT/AT für den Vorfall.

5) Sicherheit der Kunden

Web/SPAs: Autorisierungscode + PKCE, kein Implizit; strenge CORS/Content-Security-Policy.
Mobile: System-Browser (AppAuth), Integritätsprüfung (App Attestation/DeviceCheck), sicherer RT-Speicher.
Desktop/CLI/TV: Device Flow; Speichern Sie RT in OS-Secret-Speichern.
DPoP oder mTLS-gebundene Token, um den AT an das Gerät/die Verbindung zu binden.

6) Service-zu-Service

mTLS + kurz Service JWT (aud-scoped), gibt STS mit KMS/HSM aus.
Workload-Identitäten: SPIFFE/SPIRE.
Politik "von schmal zu breit": konkretes Publikum und Scopes statt ".

7) Scope-Register und Zustimmung (consent)

Benennung: 'Ressource: Aktion' - 'wallet: read', 'wallet: transfer', 'bets: place', 'kyc: status. read`.

Konfigurieren Sie die Sichtbarkeit und Empfindlichkeit von Scopes.
Consent Bildschirm wird von RAR/Scopes gesammelt; Speichern Sie eine Zustimmungshistorie und erlauben Sie einen Widerruf.

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

8) Integration mit Berechtigung (PDP/PEP)

PEP auf API Gateway validiert AT/DPoP/mTLS, bereichert den Kontext (IP/ASN/region/tenant), stellt eine Anfrage an PDP.
PDP (OPA/cedar) wendet RBAC/ABAC/ReBAC-Richtlinien an und gibt 'ALLOW/DENY' mit Erklärung und TTL zurück.
Entscheidungscache bei PEP (TTL 30-120 s) mit Behinderung durch Ereignisse (Rollen-/Regelwechsel).

9) Multi-Tenant und Regionen

Alle Token und Sessions sind mit 'tenant/region/licence' gekennzeichnet; PDP validiert die Einhaltung der Ressource.
Getrennte JWKS/Schlüssel und Abruflisten nach Region; cross-region - über vertrauenswürdige Gateways.
Einschränkungen der Datenresidenz: Die Introspektion/Revokation erfolgt in der Herkunftsregion.

10) Protokollverstärkungen

PAR + JAR + JARM - Schützen Sie Autorisierungsparameter und -antworten.
Nonce/State/PKCE - für alle öffentlichen Kunden.
Pushed Device Authorization (bei hohem Risiko).
JWT Access Tokens mit minimaler Branding + opaque Option für externe Integrationen durch Introspektion.
FAPI-ähnliche Praktiken: strenge Signaturalgorithmen, Anforderungen an die TLS/redirect_uri/PKCE.

11) Fehler und Rückgaberichtlinien

Standardisieren Sie die Antworten:
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`.
Rate-Limit für empfindliche Endpunkte ('/token', '/introspect', '/revoke'), exponentieller Backoff.

12) Beobachtbarkeit und Audit

Metriken:
  • `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 (unveränderlich): Ausgabe von Token, Eskalation von Rechten, Widerruf von Einwilligungen, Schlüsselrotation.

13) Schlüsselverwaltung und Rotation

JWT-Signatur: KMS/HSM, JWKS-Publikation mit 'kid'.
Dual-Key-Periode: IdP signiert neu, Prüfer akzeptieren alt + neu vor dem Wechsel.
Regelmäßige Rotation und Notfall-Revoke; Überwachung des Verbrauchs von "kid'.

14) Playbooks (Runbooks)

1. Kompromittierung des Signaturschlüssels

Sofort revoke' kid', veröffentlichen Sie eine neue, höhere Behinderung RT/Sitzungen, Audit-Bericht.

2. Masse' invalid _ token '/Wachstum 401

Überprüfen Sie die Synchronisierung der Uhr, abgelaufenes AT, gebrochener JWKS-Cache; den Tolerance' clock _ skew 'vorübergehend erhöhen.

3. Wiederverwendung von RT

Sperren Sie die Sitzung ('sid'), benachrichtigen Sie den Benutzer, fordern Sie ein Step-up für eine neue Anmeldung, Untersuchung.

4. Der Fall des IdP

Aktivieren Sie den Modus „Read-Only-Autorisierung“: Halten Sie die aktuellen ATs auf TTL, beschränken Sie neue Logins, verteilen Sie den Introspektionscache.

5. Angriff auf '/token '

Verstärken Sie Rate-Limit/Bot-Filter, aktivieren Sie mTLS/DPoP für empfindliche Kunden, nehmen Sie „kalte“ RTs in ein separates Segment.

15) Testen

Contract: OIDC discovery, JWKS, OpenID provider config.
Sicherheit: PKCE/nonce/state sind erforderlich; negative-sets (Substitutionen 'redirect _ uri', reuse RT).
Interoperabilität: Kunden (Web/Mobile/CLI), verschiedene Zeitzonen/Locales.
Chaos: PAR/JARM-Ausfall, JWKS-Verzögerungen, rotiertes' Kind'„on the fly“.
E2E: step-up MFA, OBO (token exchange), logout (front/back-channel), revoke/rotate.

16) Beispiele für Konfigurationen

OIDC/Authorization Server (YAML-Fragment):
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-Register:
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) Checkliste vor dem Verkauf

  • PKCE/nonce/state enthalten; PAR/JAR/JARM sind aktiv.
  • AT/RT/ID TTL angegeben; RT Rotation + Reuse Detection aktiviert.
  • DPoP oder mTLS-Bindung für sensible Kunden/Betriebe.
  • JWKS c `kid`; automatische Rotation und Überwachung des Schlüsselverbrauchs.
  • Consent/RAR und Scope-Register; Step-up MFA für sensibles Handeln.
  • PDP/PEP integriert, Lösungscache mit Behinderung.
  • Token enthalten 'tenant/region/licence'; Die Residency wird eingehalten.
  • Beobachtbarkeit: Metriken, Protokolle, Trace; alert auf 'invalid _ token', 'rt _ reuse', 'jwks _ skew'.
  • Playbooks auf revoke/rotate/lockdown; Notfalllogout-Taste.
  • Eine Reihe E2E/chaos/interop Tests wurde an den Ständen bestanden.

Schlussfolgerung

Durch die Integration von OAuth2/OIDC als Plattformfähigkeit erhalten Sie vorhersehbare Autorisierungsströme, verwaltete Token, einheitliche Zugriffsrichtlinien und messbare Risiken. Kurze ATs, geschützt durch RT, Schlüsselrotation, PAR/JARM/DPoP, Zustimmung und Step-up sind Praktiken, die Sicherheit standardmäßig und Evolution für Teams und Partner schnell und schmerzlos machen.

Contact

Kontakt aufnehmen

Kontaktieren Sie uns bei Fragen oder Support.Wir helfen Ihnen jederzeit gerne!

Telegram
@Gamble_GC
Integration starten

Email ist erforderlich. Telegram oder WhatsApp – optional.

Ihr Name optional
Email optional
Betreff optional
Nachricht optional
Telegram optional
@
Wenn Sie Telegram angeben – antworten wir zusätzlich dort.
WhatsApp optional
Format: +Ländercode und Nummer (z. B. +49XXXXXXXXX).

Mit dem Klicken des Buttons stimmen Sie der Datenverarbeitung zu.