GH GambleHub

API аутентификация: OAuth2, JWT, HMAC

TL; DR

OAuth2/OIDC + JWT - татаал уруксат менен кардар колдонмолору жана Server Integration үчүн стандарт (scopes/roles/tenants), SSO жана кыска TTL токендер.
HMAC колтамгалары - бул аныкталбаган текшерүү жана катуу replay коргоо менен "сервер → сервер" вебхуктар жана жөнөкөй өнөктөш чалуулар үчүн эң жакшы тандоо.
Коопсуздукту күчөтүү: mTLS же DPoP (sender-constrained tokens), кыска TTL (5-15 мин), ачкычтарды айлантуу (JWKS), айлануу менен refresh-токендер/анти-reuse, катуу валидация 'aud/iss/exp/nbf/kid' and policy-as-code on gateway.

1) Чечим картасы: кайда колдонуу керек

СценарийСунуш
Тышкы кардарлар (Web/iOS/Android), SSOOAuth2/OIDC: Authorization Code + PKCE
Сервер, сервер (машина интеграциясы)OAuth2 Client Credentials (mTLS/DPoP мүмкүн)
Белгиленген каттамдар менен өнөктөш чалууларOAuth2 же HMAC (жөнөкөй scopes болсо)
Вебхактар (PSP/антифрод/төлөмдөр)HMAC колтамгасы + Таймстам + ыктымалдуулук
Ички Чыгыш-Батыш жолmTLS + кыска JWT (же opaque + introspection)
Өтө сезгич операциялар (төлөмдөр)OAuth2 + mTLS/DPoP, мүмкүн step-up (SCA/3DS)

2) OAuth2/OIDC: агымдар жана кардарлар

2. 1 агымдары

Authorization Code + PKCE (Web/Mobile): бөгөт кодун коргойт.
Client Credentials: Колдонуучусуз сервер, сервер; scopes - минималдуу зарыл.
Device Code: браузерсиз түзмөктөр үчүн.
Refresh Token: ишенимдүү кардарлар үчүн гана; айлануу жана reuse detection.

2. 2 Кардар түрлөрү

Confidential (Server, BFF): сырларды сактоо; mTLS колдонуу.
Public (SPA/мобилдик): жашыруун сактоого мүмкүн эмес → PKCE, DPoP, кыска TTL жана чектелген scopes.

3) JWT: түзүмү, мөөнөтү, текшерүү

3. 1 талаалар (claims)

Милдеттүү: 'iss', 'sub', 'aud', 'exp', 'iat', 'nbf', 'jti', 'scope '/' permissions', 'tenant' (көп ижара болсо), 'kid'.

3. 2 Жашоо мөөнөтү

Access токен: 5-15 мүнөт.
Refresh token: күн/жума, ар бир алмашуу учурунда айланат; кайра берүүдө - сессияны бөгөттөйбүз.
Clock skew: кабыл алуу ≤ 60 сек.

3. 3 JWKS жана ачкычтар

Ачкычтарды KMS/Vault, 'kid' сактоого милдеттүү.
Эки активдүү ачкычтар (rolling), 60-90 күн же окуя бир жолу кайра чыгаруу.
gateway боюнча JWKS кэш ≤ 5 мүнөт, auto-майыптыгы менен.

3. 4 Gateway/Services боюнча текшерүү

Салыштыруу: кол, 'aud' (уруксат берилген кызматтар), 'iss', 'exp/nbf', кулпу тизмеси (revocation).
Кол тамганы текшербестен дененин талааларына ишенбеңиз; 'alg = none' дегенге көңүл бурбаңыз.

Суроо-талаптын аталышынын мисалы:

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

4) Токенди кардарга байлоо: mTLS, DPoP

mTLS (TLS кардар күбөлүктөрү): Токен берилген жана кардар күбөлүк менен гана тастыкталат → Токен "ачкыч + күбөлүк" байламтасынан тышкары пайдасыз.
DPoP (Proof-of-Possession Demonstration): кардар бир жолку ачкычы менен ар бир өтүнүчкө кол коёт → коомдук кардарларда токенди кайталоодон жана уурдоодон коргоо.
Критикалык маршруттар үчүн (төлөм мутациялары) - механизмдердин бирин талап кылуу.

5) Authorization: scopes, roles, ABAC

Scopes - минималдуу иш-аракеттер ('payments: write', 'payouts: status: read').
Roles - администраторлор үчүн агрегаттар; scopes жок түздөн-түз аларды колдонбогула.
ABAC - токендеги атрибуттар ('tenant', 'country', 'kyc _ level', 'risk _ flags') → gateway/OPA саясаттары.
Жол/талаа боюнча саясат (GraphQL) жана домен иш боюнча (REST/gRPC).

6) HMAC кол тамгалар: Webhook жана өнөктөштөр

6. 1 Концепция

Ар бир интеграциянын өзүнүн сыры бар.

'timestamp + "\n "+ method + "\n" + path + "\n "+ sha256 (body)'

Аталыштары:

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

Убакыт терезеси: ≤ 300 сек; мөөнөтү өтүп кеткен/келечектеги 'X-Timestamp' менен суроо-талаптарды четке кагуу.
Демпотенттик: 'X-Event-Id' -ди TTLде сактаңыз (24 саат) - дубликаттарды ыргытыңыз.

6. 2 Мыкты тажрыйбалар

KMS/Vault сырлары, ар бир 90 күн айлануу.
коомдук кардарлар үчүн HMAC ылайыктуу эмес (жашыруун агып); колдонуу OAuth2/DPoP.

7) replay, brute күч жана агып коргоо

Nonce/сезгич иш үчүн 'jti'; колдонулган идентификаторлордун кара тизмеси.
Rate/quotas: ачкыч/кардар/тенант/маршрут боюнча; "кымбат" операциялар - өзүнчө квоталар.
IP/ASN/Geo allow-lists өнөктөштөр жана вебхуктар үчүн.
Content-type allow ('application/json'), дене өлчөмүнүн чеги.
блогунда PII жашыруу; токендерди/сырларды киргизүүгө тыюу салуу.

8) Каталар жана жооптор (бирдиктүү формат)

Ката түзүмү:
json
{
"error": "invalid_token",
"error_description": "expired",
"trace_id": "4e3f-..."
}
Статусу:
  • '401' - жок/нөлдүк токен (WWW-Authenticate).
  • '403' - жетишсиз укуктар (scope/ABAC).
  • '429' - лимиттер/квоталар.
  • gRPC: `UNAUTHENTICATED`/`PERMISSION_DENIED`/`RESOURCE_EXHAUSTED`.

9) Мөөнөттөрдүн жана сессиялардын саясаты

Access ≤ 15 мин; Refresh - айлануу + reuse detection (эски берилген - сессияны карап чыгуу).
Webhuke HMAC: TTL кол ≤ 5 мин; экспоненциалдык backoff менен кайра жеткирүү.
Сессияны/ачкычты чакыртып алуу → revocation list (gateway боюнча кэш ≤ 1 мин).

10) Байкоо жана аудит

'trace _ id '/' span _ id' боюнча корреляция.
Метрика: auth success rate, '401/403/429', жашыруун OIDC/JWKS, айлануу жыштыгы, reuse refresh, үлүшү DPoP/mTLS жол.
Аудит-журнал: "ким, качан, кандай 'sub/tenant/scope' эмне деп аталат", ачкычтарды/сырларды өзгөртүү, HMAC кол ийгиликсиз.

11) API Gateway киргизүү

JWT-validation (JWKS кэш) жана OPA/ABAC шлюз.
Ишенимдүү кардарлар/өнөктөштөр үчүн mTLS профилдери.
edge боюнча HMAC-текшерүү (ички кызмат чейин).
Rate/Quota саясат, OIDC-провайдер боюнча circuit-breaker (JWK кэш).
Feature-flags: тез кардар/ачкыч өчүрүү, кол алгоритмин өзгөртүү.

12) Mini Сниппет

Псевдо: JWT текшерүү

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]

Псевдо: HMAC Webhook текшерүү

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)

Scope саясатынын мисалы (OPA/Rego идея)

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

13) Playbook окуялар

Жеке ачкычтын ачылышы/JWT жазылуучусу: ачкычтарды кайра чыгаруу, JWKS жаңыртуу, эскини дароо өчүрүү ('kid' → deny), майып refresh, мажбурлоо logout.
Вебхуктарды алмаштыруу: сырларды айлантуу, IP тизмеси, 'X-Timestamp' терезесин бекемдөө, өтүп кеткен окуяларды кайра жеткирүү.
Replay/brutfors: критикалык жолдор боюнча DPoP/mTLS камтыйт, квота кыскартуу, IP/ASN боюнча убактылуу блоктор, 'jti' -блокту камтыйт.
Outage OIDC: cached токендер деградациясы (grace), circuit-breaker, кардарларга эскертүү.

14) Киргизүүнүн чек-баракчалары

Аутентификация (минимум):
  • OAuth2: Code+PKCE (Web/Mobile), Client Credentials (server-to-server)
  • TTL: Access ≤ 15 мин, айлануу жана reuse detection менен Refresh
  • JWKS: эки активдүү ачкычы, 'kid', кэш ≤ 5 мин
  • Webhuke: HMAC v1, 'X-Timestamp', 'X-Event-Id', терезе ≤ 300 сек, ыктымалдуулук
  • Sender-constrained: mTLS/DPoP критикалык каттамдар боюнча
  • ABAC/OPA: шлюз саясатында scopes + tenant/тобокелдик
  • Rate/Quota и 429; IP/ASN allow-lists өнөктөштөр үчүн
  • Аудит жана Алерт (401/403/429, reuse refresh, HMAC кол)
Купуялык/Логинг:
  • Токендерди/сырларды/толук дене карталары логин жок
  • PII жашыруу; DSAR колдоо; сактоо мөөнөтү чектелген

15) Анти-үлгүлөрү

'alg = none' же кол тамганы/JWKS текшерүүсүз токенге ишеним.
Узак мөөнөттүү access токендер (саат/күн).
Бардык өнөктөштөр үчүн бир жалпы HMAC-жашыруун.
Vebhuke тайм-штамм/idempotentity жок.
Refresh-токендер эч кандай айлануу жана reuse detection жок.
Жок 'aud '/' iss' -валидация жана 'kid' -ротация.
KMS/Vault жок чөйрө өзгөрмөлүү сырларды сактоо.

16) NFT/SLO (көрсөтмөлөр)

OIDC/JWKS жеткиликтүүлүгү ≥ 99. 95% (edge кэш көз карандылыкты азайтат).
JWT validation gateway кошумча ≤ 2-5 ms p95.
Аутентификация каталары ('401') ≤ 0. Жалпы трафиктин 5% (ботторду эсепке албаганда).
Кол коюлган вебхактар: ийгиликтүү текшерилген ≥ үлүшү 99. 9%, орточо жеткирүү кечигүү ≤ 3 с.

Резюме

Механизмдерди айкалыштыруу: OAuth2/OIDC + JWT колдонуучулар жана бай сервердик сценарийлер үчүн, HMAC вебхуктар/жөнөкөй өнөктөштөр үчүн жана критикалык операциялар үчүн - mTLS/DPoP. Кыска TTL, ачкычтарды айлантуу (JWKS), ABAC/OPA катуу саясатын сактап, контурларды кайталоодон жана агып чыгуудан коргоп, баарын API Gateway деңгээлинде автоматташтырыңыз. Ошентип, аутентификация алдын ала, масштабдуу жана коопсуз болот - UX жана акча табуу үчүн эч кандай компромисс жок.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.