GH GambleHub

API-ni tassyklamak: OAuth2, JWT, HMAC

TL; DR

OAuth2/OIDC + JWT - çylşyrymly ygtyýarnamasy (skopes/roles/tenants), SSO we gysga TTL bellikleri bolan müşderi programmalary we serwer integrasiýalary üçin standart.
HMAC gollary - kesgitlenen barlag we replay-den berk goragy bolan "serwer → serwer" webhuklary we ýönekeý hyzmatdaş jaňlar üçin iň gowy saýlama.
Howpsuzlygy güýçlendiriň: mTLS ýa-da DPoP (sender-constrained tokens), gysga TTL (5-15 min), açar aýlanyşy (JWKS), aýlanmaga garşy refress-tokenler/anti-reuse, berk tassyklama 'aud/iss/exp/nbf/kid' we gateway-da policy-as-code.

1) Çözgütleriň kartasy: nirede ulanmaly

ScriptMaslahat berýäris
Daşarky müşderiler (Web/iOS/Android), SSOOAuth2/OIDC: Authorization Code + PKCE
Serwer serwer (maşyn integrasiýalary)OAuth2 Client Credentials (mTLS/DPoP mümkin boldugyça)
Kesgitlenen ýollar bilen hyzmatdaş jaňlarOAuth2 ýa-da HMAC (eger skopes ýönekeý bolsa)
Webhuklar (PSP/antifrod/tölegler)HMAC gol + taýmstamp + idempotentlik
Içerki gündogar-günbatar traffigimTLS + gysga JWT (ýa-da opaque + introspection)
Örän duýgur amallar (tölegler)OAuth2 mTLS/DPoP, mümkin boldugyça step-up (SCA/3DS)

2) OAuth2/OIDC: akymlar we müşderiler

2. 1 Akymlar

Authorization Code + PKCE (Web/Mobile): ygtyýar koduny tutmakdan goraýar.
Client Credentials: Ulanyjy ýok serwer; skopes - iň az zerur.
Device Code: brauzersiz enjamlar üçin.
Refresh Token: diňe ynamdar müşderiler üçin; reuse detection-i aýlanyň we açyň.

2. 2 Müşderi görnüşleri

Confidential (serwerler, BFF): syrlary saklaýarlar; mTLS ulanyň.
Public (SPA/mobile): gizlin saklanyp bilinmez → PKCE, DPoP, gysga TTL we çäkli skopes.

3) JWT: gurluşy, möhleti, barlagy

3. 1 Meýdanlar (claims)

Hökmany: 'iss', 'sub', 'aud', 'exp', 'iat', 'nbf', 'jti', 'scope '/' permissions', 'tenant', 'kid'.

3. 2 Durmuş şertleri

Access token: 5-15 minut.
Refresh token: günler/hepdeler, her alyş-çalşykda aýlanýarys; köne tabşyrylanda - sessiýany petikleýäris.
Clock skew: rugsat ≤ 60 sek.

3. 3 JWKS we açarlar

Açarlary KMS/Vault, 'kid' -de saklamak hökmanydyr.
Iki sany işjeň açar (rolling), 60-90 günde bir gezek ýa-da hadysada gaýtadan goýberilýär.
JWKS gateway keşi ≤ 5 minut, awto-maýyplyk bilen.

3. 4 Gateway/hyzmatlarda barlamak

Barlaň: gol, 'aud' (rugsat edilen hyzmatlar), 'iss', 'exp/nbf', blokirlemeleriň sanawy (revocation).
Goly barlamazdan beden meýdanlaryna ynanmaň; 'alg = none' -a üns bermäň.

Soragyň sözbaşysynyň mysaly:

Authorization: Bearer <JWT>
X-Trace-Id: <uuid>

4) Belligi müşderi bilen baglanyşdyrmak: mTLS, DPoP

mTLS (TLS müşderi şahadatnamalary): belgi diňe müşderi şahadatnamasy bolan ýagdaýynda berilýär we tassyklanýar → belgi "açar + şahadatnama" baglanyşygynyň daşynda peýdasyz.
DPoP (Demonstration of Proof-of-Possession): müşderi her haýyşa bir gezeklik açar bilen gol çekýär → köpçüligiň müşderilerinde tokeniň repleýinden we ogurlanmagyndan goramak.
Möhüm ugurlar üçin (töleg mutasiýalary) - mehanizmleriň birini talap etmek.

5) Ygtyýarnama: skopes, roles, ABAC

Scopes - iň az hereket ('payments: write', 'payouts: status: read').
Roles - administratorlar üçin agregatlar; skopes bolmasa olary gönüden-göni ulanmaň.
ABAC - tokendäki atributlar ('tenant', 'country', 'kyc _ level', 'risk _ flags') → gateway/OPA syýasatlary.
Ugur/meýdan derejesinde (GraphQL) we domen amallary derejesinde (REST/gRPC) syýasat.

6) HMAC-gollar: webhuklar we hyzmatdaşlar

6. 1 Konsepsiýa

Her integrasiýanyň öz syry bar.

Kanoniki setiriň üstündäki gol: 'timestamp + "\n "+ method + "\n" + path + "\n "+ sha256 (body)'

Sözbaşylar:

X-Signature: v1=base64(hmac_sha256(secret, canonical_string))
X-Timestamp: 2025-11-03T12:34:56Z
X-Event-Id: 01HF...

Wagt penjiresi: ≤ 300 sek; möhleti geçen/geljekki 'X-Timestamp' haýyşlary ret edilsin.
Idempotentlik: 'X-Event-Id' -ni TTL-de saklaň (24 sagat) - dublikatlary taşlaň.

6. 2 Iň oňat tejribe

KMS/Vault-da syrlar, her 90 günde aýlanmak.
Köpçülige açyk müşderiler üçin HMAC laýyk gelmeýär (syr syzýar); OAuth2/DPoP ulanyň.

7) Replay, brute force we syzmakdan goramak

Nonce/' jti 'duýgur amallar üçin; ulanylan kesgitleýjileriň gara sanawy.
Rate/quotas: açar/müşderi/tenant/ugur boýunça; "gymmat" amallar - aýratyn kwotalar.
IP/ASN/Geo allow-lists partnýorlar we webhuklar üçin.
Content-type allow ('application/json'), beden ululygynyň çägi.
PII-ni ýazgylarda gizlemek; bellikleri/syrlary ýazmagy gadagan etmek.

8) Ýalňyşlyklar we jogaplar (ýeke-täk format)

Hatanyň gurluşy:
json
{
"error": "invalid_token",
"error_description": "expired",
"trace_id": "4e3f-..."
}
Statuslar:
  • '401' - ýok/galyp däl token (WWW-Authenticate).
  • '403' - ýeterlik hukuklar ýok (skope/ABAC).
  • '429' - çäklendirmeler/kwotalar.
  • gRPC: `UNAUTHENTICATED`/`PERMISSION_DENIED`/`RESOURCE_EXHAUSTED`.

9) Möhletleriň we sessiýalaryň syýasaty

Access ≤ 15 min; Refresh - rotasiýa + reuse detection (köne tabşyryldy - sessiýany yzyna almak).
Webhuki HMAC: TTL gollary ≤ 5 min; eksponensial backoff bilen gaýtadan eltip bermek.
Sessiýany/açary yzyna almak → derrew revocation list-a girmek (gateway-daky keş ≤ 1 minut).

10) Gözegçilik we audit

'trace _ id '/' span _ id' boýunça baglanyşyk.
Metrikler: auth success rate, '401/403/429', gizlinlik OIDC/JWKS, aýlanma ýygylygy, reuse refresh, traffigiň DPoP/mTLS paýy.
Audit-log: "kim, haçan, haýsy 'sub/tenant/skope' bilen näme", açarlaryň/syrlaryň üýtgemegi, HMAC-yň şowsuz gollary.

11) Gateway API-e goşulmak

Şlýuzda JWT-tassyklama (JWKS kesh) we OPA/ABAC.
mTLS ygtybarly müşderiler/hyzmatdaşlar üçin profiller.
HMAC-webhuklary edge-de barlamak (içerki hyzmatlara çenli).
Rate/Quota syýasatlary, OIDC-üpjün edijisinde circuit-breaker (JWK keş).
Feature-flags: Müşderi/açaryň çalt öçürilmegi, gol algoritminiň üýtgemegi.

12) Kiçi snippetler

Psevdo: JWT barlagy

pseudo jwks = cache. getOrFetch(iss + "/.well-known/jwks. json")
key = jwks[kid]
assert verify_signature(jwt, key)
assert aud in ALLOWED_AUDIENCES and iss in TRUSTED_ISSUERS assert now in [nbf-60s, exp+60s]

Psevdo: HMAC webhuk barlagy

pseudo canonical = timestamp + "\n" + method + "\n" + path + "\n" + sha256(body)
sig = base64(hmac_sha256(secret, canonical))
assert abs(now - timestamp) <= 300 assert not seen(event_id)
assert timingSafeEqual(sig, header["X-Signature"].split("v1=")[1])
markSeen(event_id, ttl=86400)

Skope-syýasatyň mysaly (OPA/Rego ideýa)

rego allow {
input. jwt. scope[_] == "payments:write"
input. jwt. tenant == input. route. tenant
}

13) Wakalaryň pleýbuklary

Şahsy açaryň syzmagy/JWT-abonent: açarlary gaýtadan çykarmak, JWKS-i täzelemek, köne açary derrew öçürmek ('kid' → deny), refresh maýyplygy, mejbury logout.
Webhuklary çalyşmak: syrlary aýlamak, IP allow-list, 'X-Timestamp' penjiresini güýçlendirmek, sypdyrylan wakalary gaýtalamak.
Replay/brutfors: möhüm ugurlarda DPoP/mTLS-i, kwotalaryň daralmagyny, IP/ASN boýunça wagtlaýyn bloklary, 'jti' -bloklisti açyň.
Outage OIDC: kesilen tokenleriň zaýalanmagy (grace), üpjün edijiniň circuit-breaker, müşderi habarnamasy.

14) Girizmegiň çek-listleri

Tanamak:
  • OAuth2: Code+PKCE (Web/Mobile), Client Credentials (server-to-server)
  • TTL: Access ≤ 15 min, Refresh we reuse detection
  • JWKS: iki sany açar, 'kid', 5 minutlyk nagt ≤
  • Webhuklar: HMAC v1, 'X-Timestamp', 'X-Event-Id', penjire ≤ 300 sek, idempotentlik
  • Sender-constrained: Kritik ugurlarda mTLS/DPoP
  • ABAC/OPA: şlýuz syýasatlarynda skopes + tenant/risk
  • Rate/Quota и 429; IP/ASN allow-lists partnýorlar üçin
  • Audit we alertler (401/403/429, reuse refresh, HMAC gollary)
Gizlilik/giriş:
  • Nyşanlary/syrlary/kartoçkalaryň doly jisimlerini ýazga almaň
  • Gizlemek PII; DSAR goldawy; ýazgylaryň saklanyş möhleti çäklidir

15) Anti-patternler

'alg = none' ýa-da JWKS goluny barlamazdan tokene ynam.
Uzak ömürli access-tokenler (sagat/gün).
Ähli hyzmatdaşlar üçin bir umumy HMAC-syr.
Taýmstampsiz/idempotentsiz webhuklar.
Refresh-tokenler rotasiýasyz we reuse detection.
'aud '/' iss' -validasiýa we 'kid' -rotasiýa ýok.
KMS/Vault bolmasa gurşaw üýtgeýjilerinde syrlary saklamak.

16) NFT/SLO (görkezmeler)

OIDC/JWKS elýeterlilik ≥ 99. 95% (edge-kesh garaşlylygy azaldar).
JWT gateway goşundysyny tassyklamak ≤ 2-5 ms p95.
Autentifikasiýa ýalňyşlyklary ('401') ≤ 0. Umumy traffigiň 5% -i (botlary hasaba almazdan).
Gol çekilen webhuklar: üstünlikli tassyklanan ≥ paýy 99. 9%, eltmegiň ortaça gijikdirilmegi ≤ 3 s.

Gysgaça maglumat

Mehanizmleri birleşdiriň: Ulanyjylar we baý serwer ssenarileri üçin OAuth2/OIDC + JWT, webhook/ýönekeý hyzmatdaşlar üçin HMAC we möhüm amallar üçin - mTLS/DPoP. Gysga TTL-leri, açar aýlawlaryny (JWKS), ABAC/OPA-nyň berk syýasatlaryny saklaň, konturlary replay we syzmakdan goraň we hemme zady Gateway API derejesinde awtomatlaşdyryň. Şeýlelik bilen, tassyklamak UX we monetizasiýa üçin ylalaşyk bolmazdan öňünden aýdyp boljak, ulaldylyp bilinjek we howpsuz bolar.

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.