GH GambleHub

OAuth2/OpenID Connect

OAuth2 үстүнөн OIDC - "колдонуучу/кардар ким" далилдөө жана API кыска жашоо мүмкүнчүлүгүн берүү үчүн стандарттык жолу. Платформанын өзөгүндө ал борбордук жөндөмгө айланат: кардарлар, операторлор жана кызматтар үчүн бирдиктүү кирүү; минималдуу артыкчылыктар; ченелүүчү тобокелдик; аймактык жана лицензиялык эрежелерди сактоо.

1) Максаттары жана принциптери

"Deploy vs enable" бөлүү: өзүнчө кодду чыгарабыз, желектер/саясатчылар менен кирүүнү камтыйт.
Кыска жашоочу токендер + коопсуз жаңыртуу: агып кеткен зыянды азайтуу.
Мультитенант/аймак: бардык экспонаттар 'tenant/region/licence' деп аташат.
Токендердин үстүндөгү саясаттар: чечимдер PDP (RBAC/ABAC), PEP gateway/services.
Каналдарды коргоо: TLS1. 2 +, мүмкүн mTLS/DPoP, катуу CORS/CSRF.
Байкоо жана аудит: агым, кардар, аймак боюнча көрүнүү.

2) Агымдар жана аларды колдонуу

Authorization Code + PKCE (SPA/Mobile/Web) - колдонуучу логиндер үчүн дефолт.
Device Authorization (консолдор/TV/CLI) - браузер жок болгондо.
Client Credentials (machine-to-machine) - колдонуучусуз тейлөө интеграциясы.
Token Exchange (RFC 8693, OBO) - колдонуучунун атынан иштейт.
CIBA/Back-channel (каалагандай) - редактору жок push-аутентификация.

демейки киргизүү керек узартуу:
  • PAR (Pushed Authorization Requests) - уруксаттын параметрлери корголгон сервер каналы аркылуу берилет.
  • JAR (JWT Secured Authorization) - суроонун параметрлери кол коюлган/шифрленген.
  • JARM - коопсуз авторизацияга жооп (JWT), алмаштырууга туруктуу.
  • RAR (Rich Authorization Requests) - жеткиликтүүлүк укуктарына бай суроо-талаптар (деталдуу уруксаттар).

3) Токендер жана маркалар

Түрлөрү:
  • ID Token (OIDC) - ким кирди (кардар/алдыңкы гана көрсөтүү).
  • Access Token (АТ) - аракет кылуу укугу (кыска өмүр).
  • Refresh Token (RT) - АТ жаңылайт; ишенимдүү чөйрөдө гана сакталат.
Мөөнөттөрү боюнча сунуштар:
  • AT: 5-15 мин (web/mobile), 2-5 мин (service-to-service).
  • RT: 7–30 дней (web/mobile) с rotation + reuse detection.
  • ID: ≤ 5 мин.
Минималдуу маркалар АТ (мисал):
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
}

Кол коюу: ES256/EdDSA, коомдук ачкычтар - JWKS 'kid' жана айлануу менен.

4) Сессия контур жана logout

Server-side session для web (cookie `SameSite=Lax/Strict`, `HttpOnly`, `Secure`).
Back-Channel Logout + Front-Channel Logout (OIDC) - бардык кардарлардын синхрондуу аяктоо.
Step-Up MFA: сезимтал иш-аракеттер - кайра текшерүү ('acr' жогорулайт).
Revocation & Introspection: окуя боюнча RT/AT токтоосуз өчүрүү.

5) Кардарлардын коопсуздугу

Web/SPAs: Authorization Code + PKCE, эч кандай таасир; катуу CORS/Content-Security-Policy.
Mobile: системалык браузер (AppAuth), бүтүндүгүн текшерүү (App Attestation/DeviceCheck), RT коопсуз сактоо.
Desktop/CLI/TV: Device Flow; OS-жашыруун сактагычта RT сактаңыз.
DPoP же mTLS-bound tokens AT түзмөк/туташуу үчүн.

6) Кызмат көрсөтүү

mTLS + кыска кызматы JWT (aud-scoped), KMS/HSM менен STS берет.
Workload's Identity: SPIFFE/SPIRE.
Саясат "тар чейин": ордуна конкреттүү audience жана scopes ".

7) Scope реестри жана макулдугу (consent)

Аталышы: 'ресурс: аракет' - 'wallet: read', 'wallet: transfer', 'bets: place', 'kyc: status. read`.

Купулардын көрүнүшүн жана сезимталдыгын конфигурациялоо.
Consent screen RAR/Scopes чогултулат; макулдуктардын тарыхын сактап, кайра карап чыгууга уруксат бериңиз.

Мисал RAR (капчык → котормо):
json
{
"type":"wallet. transfer",
"actions":["create"],
"locations":["https://api. core/wallet"],
"datatypes":["payment"],
"resources":[{"wallet_id":"w_123","currency":"EUR","amount_max":1000}]
}

8) Authorization менен бириктирүү (PDP/PEP)

API Gateway боюнча PEP AT/DPoP/mTLS тастыктайт, контекстти байытат (IP/ASN/аймак/tenant), PDP үчүн суроо-талап кылат.
PDP (OPA/cedar) RBAC/ABAC/ReBAC саясатын колдонот жана түшүндүрмө жана TTL менен 'ALLOW/DENY' кайтарат.
PEP кэш чечимдер (TTL 30-120 с) окуялар боюнча майыптыгы менен (ролдорду/эрежелерди өзгөртүү).

9) Мультитенант жана региондор

Бардык токендер жана сессиялар 'tenant/region/licence' деп белгиленет; PDP ресурстун шайкештигин тастыктайт.
Өзүнчө JWKS/региондор боюнча ачкычтар жана чакыртып алуулар; кросс-аймак - ишенимдүү шлюздар аркылуу.
Маалыматтардын резиденттүүлүгүн чектөө: интроспекция/ревокация келип чыккан аймагында жүргүзүлөт.

10) Протоколдук күчөтүү

PAR + JAR + JARM - параметрлерин жана уруксат жоопторун коргойт.
Nonce/State/PKCE - бардык коомдук кардарлар үчүн.
Pushed Device Authorization (жогорку тобокелдик менен).
JWT Access Tokens introspections аркылуу тышкы интеграциялоо үчүн минималдуу маркалар + opaque параметр менен.
FAPI окшош практикалар: катуу кол коюу алгоритмдери, TLS/redirect_uri/PKCE талаптары.

11) Каталар жана кайтаруу саясаты

жооп стандартташтыруу:
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 ('/token ', '/introspect', '/revoke '), экспоненциалдык backoff.

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

Метрикасы:
  • `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`.
Аудит (өзгөрүлбөгөн): токендерди берүү, укуктарды күчөтүү, макулдуктарды кайтарып алуу, ачкычтарды ротациялоо.

13) Ачкычтарды башкаруу жана ротация

JWT кол тамгасы: KMS/HSM, JWKS 'kid' менен жарыялоо.
Dual-key мезгил: IdP жаңы кол коёт, текшерүүчүлөр эски кабыл + жаңы которууга чейин.
Үзгүлтүксүз айлануу жана шашылыш revoke; керектөө мониторинг 'kid'.

14) Playbooks (runbooks)

1. Кол тамга ачкычын компромисске келтирүү

Дароо revoke 'kid', жаңы бошотуу, форс-майып RT/сессиялар, аудит отчет.

2. Массалык 'invalid _ token '/өсүшү 401

сынган JWKS-кэш, жарактан чыккан АТ саат текшерүү; tolerance убактылуу көбөйтүү 'clock _ skew'.

3. RT кайра колдонуу

Сессияны бөгөттөө ('sid'), колдонуучуга кабарлоо, жаңы кирүү үчүн кадам талап кылуу, иликтөө.

4. IdP кулашы

"Read-only авторизациялоо" режимин күйгүзүү: TTLге чейин жарактуу АТны кармап туруу, жаңы логиндерди чектөө, интроспекциянын кэшин тегиздөө.

5. Чабуул '/token '

rate-limit/бот-чыпкаларды күчөтүү, сезгич кардарлар үчүн mTLS/DPoP киргизүү, өзүнчө сегментинде "муздак" RT алып.

15) сыноо

Contract: OIDC discovery, JWKS, OpenID provider config.
Security: PKCE/nonce/мамлекеттик милдеттүү; negative-топтомдор (алмаштыруулар 'redirect _ uri', reuse RT).
Interoperability: кардарлар (web/mobile/CLI), ар кандай убакыт алкактары/жергиликтүү.
Chaos: PAR/JARM баш тартуу, JWKS кечигүү, rotated 'kid' "учуп".
E2E: step-up MFA, OBO (token exchange), logout (front/back-channel), revoke/rotate.

16) Конфигурация мисалдары

OIDC/Authorization Server (YAML үзүндүсү):
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 реестри:
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) Азык-түлүктүн алдындагы чек-тизме

  • PKCE/nonce/state киргизилген; PAR/JAR/JARM активдүү.
  • AT/RT/ID TTL белгиленген; RT rotation + reuse detection кирет.
  • DPoP же сезгич кардарлар/иш үчүн mTLS-байланыш.
  • JWKS c `kid`; автоматтык айлануу жана ачкычтарды керектөө мониторинг.
  • Consent/RAR жана сатып алуулардын реестри; сезимтал иш-аракеттер үчүн кадам MFA.
  • PDP/PEP комплекстүү, майыптыгы менен кэш чечимдер.
  • Токендер 'tenant/region/licence'; сакталат residency.
  • Байкоо: метрика, Логи, жол; 'invalid _ token', 'rt _ reuse', 'jwks _ skew' боюнча алерталар.
  • revoke/rotate/lockdown боюнча Playbook; өзгөчө Логаут баскычы.
  • E2E/chaos/interop тесттердин топтому стенддерде өттү.

Корутунду

Платформалык жөндөмдүүлүк катары OAuth2/OIDC интеграциялоо менен, сиз алдын ала айтууга боло турган авторизация агымдарын, башкарылуучу токендерди, бирдиктүү кирүү саясатын жана өлчөнүүчү тобокелдикти аласыз. Кыска АТ, RT корголгон, ачкычтарды айлантуу, PAR/JARM/DPoP, макулдашуу жана кадам - бул алдын ала коопсуздукту, ал эми эволюцияны - командалар жана өнөктөштөр үчүн тез жана оорутпаган практикалар.

Contact

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

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

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

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

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

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