GH GambleHub

API 'OAuth2, JWT, HMAC

TL; DR

OAuth2/OIDC + JWT-ը հաճախորդների ծրագրերի և սերվերային ինտեգրումների համար բարդ հեղինակային (scopes/roles/tenants), SSO-ը և կարճ TTL-ը։

HMAC-ստորագրությունները լավագույն ընտրությունն են Webhuks-ի և պարզ ռուսական զանգերի համար «սերվերի սերվերը» դետերմինացված ստուգմամբ և կոշտ պաշտպանությամբ replay-ից։

Ուժեղացրեք անվտանգությունը ՝ mTSA կամ DPoP (sender-constrained tokens), կարճ TTL (5-15 րոպե), կոդավորման (JWKS), refresh-tocent/anti-reuse-ի հետ, խիստ vaud/is/exp/exp/nbf/kid "և policy-as-code gateway-ում։

1) Որոշումների քարտեզը 'որտեղ օգտագործել

ՍցենարըՄոսկվան
Արտաքին հաճախորդները (Web/iOS/Android), SSOOAuth2/OIDC: Authorization Code + PKCE
Սերվերը սերվերը (մեքենայական շարժիչներ)OAuth2 Credentials (mTSA/DPoP հնարավորության դեպքում)
Գործընկերային զանգեր ֆիքսված երթուղիների հետOAuth2 կամ HMAC (եթե scopes պարզ)
Webhuki (PFC/հակաֆրոդ/վճարումներ)HMAC ստորագրություն + timstamp + idempotention
Ներքին արևելք-արևմուտք 105MTMS + կարճ JWT (կամ opaque + introsp.ru)
Շատ զգայուն վիրահատություններ (վճարումներ)OAuth2 + mTSA/DPoP, հնարավորության դեպքում step-up (SCA/3DS)

2) OAuth2/OIDC 'հոսքեր և հաճախորդներ։

2. 1 Հոսքեր

Authorization Code + PKCE (Web/Mobile): պաշտպանում է հեղինակային կոդը ընդհատումից։

Client Credentials: սերվերը սերվերը առանց օգտագործողի; scopes-ը նվազագույն անհրաժեշտ է։

Device Code 'սարքերի համար առանց զննարկչի։

Refresh Token 'միայն վստահելի հաճախորդների համար։ կտրեք և միացրեք reuse detae։

2. 2 Հաճախորդների տեսակներ

Systidential (սերվերներ, BFF), պահվում են գաղտնիքները։ օգտագործեք mTSA-ն։

Public (SPA/mobile): գաղտնիքը չի կարելի պահել PKCE, DPoP, կարճ TTL և սահմանափակ scopes։

3) JWT 'կառուցվածք, ժամկետներ, հավատալիքներ,

3. 1 Դաշտեր (claims)

Պարտադիր ՝ «iss», «sub», «aud», «exp», «iat», «nbf», «jti», «scope »/« permissions», «tenae» (եթե multarenda), «kid»։

3. 2 Կյանքի ժամանակը

Deltoken: 5-15 րոպե։

Refresh token: օրեր/շաբաթ, մենք յուրաքանչյուր փոխանակման մեջ ենք, հին - արգելափակման ժամանակ։

Clock skew: 105 3660 վայրկյան։

3. 3 JWKS և բանալիներ

KFC/Vox, «kid» -ը պարտավոր է։

Երկու ակտիվ բանալիներ (rolling), որոնք վերարտադրվել են 60-90 օրվա ընթացքում կամ պատահականության ժամանակ։

Kash JWKS-ը gateway-ում հինգ րոպե է, մեքենա-հաշմանդամությամբ։

3. 4 Հավատարմագրում gateway/ծառայություններում

Կրկնեք ստորագրությունը, «aud» (թույլատրված ծառայություններ), «iss», «exp/nbf», արգելափակումների ցանկը (revocation)։

Մի վստահեք դիագրամներին առանց ստորագրությունը ստուգելու։ անտեսեք 'alg = none "։

Հարցման վերնագրի օրինակ


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

4) Կապումը պտտվում է հաճախորդի հետ 'mTSA, DPoP

MTSA (TMS հաճախորդների հավաստագրեր) 'հոսքը և վալիդացվում է միայն հաճախորդի հաճախորդի հաճախորդի հաճախորդի հաճախորդների առկայության դեպքում։

DPoP (Demonstration of Proof-of-Possession), հաճախորդը ստորագրում է միանվագ բանալին, որը պաշտպանվում է replay-ից և թափվում է հանրային հաճախորդների մեջ։

Կրիտիկական երթուղիների համար (հիբրիդային մուտացիաներ) - պահանջել մեխանիզմներից մեկը։

5) Հեղինակային իրավունքը 'scopes, roles, ABAC, ABAC

Scopes-ը նվազագույն գործողություններ է ("payments: write", "payouts: status: read ')։

Roles-ը կիսագնդի միավորներ են։ մի օգտագործեք դրանք ուղղակիորեն առանց scopes։

ABAC - ատրիբուտներ տոկենում («tenault», «country», «kyc _ level», «risk _ flags») ռուսական քաղաքականության վրա։

Քաղաքականությունը 2019/դաշտի մակարդակում (GraphQL) և հիբրիդային վիրահատության մակարդակում (REST/gRPC)։

6) HMAC ստորագրությունները 'webhuks և գործընկերներ։

6. 1 Հասկացություն

Յուրաքանչյուր կոմպոզիա ունի իր գաղտնիքը։

Ստորագրությունը կանոնական տողի վրա '"timestamp +" pn "+" method "+" n "+ path +" path + "/n "+ sha256 (body)"

Վերնագրեր


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

Ժամանակի պատուհանը ՝ 3,300 վայրկյան; հարցումները հետաձգված/ապագա 'X-Timestamp' շեղել։

Idempotenty: Պահեք «X-Event-Id» TTL-ում (24 ժամ) - կրկնօրինակեք կրկնօրինակները։

6. 2 Լավագույն պրակտիկա

KFC/Vox-ի գաղտնիքները, յուրաքանչյուր 90 օրվա լուծումը։

Հանրային հաճախորդների համար HMAC-ը հարմար չէ (գաղտնիքը դուրս է գալիս); Օգտագործեք OAuth2/DPoP։

7) Պաշտպանություն replay, brantforce և արտահոսքից

Nonce/« jti »զգայուն վիրահատությունների համար։ օգտագործված ֆոսֆատորների սև ցուցակը։

Rate/www.tas: բանալին/հաճախորդին/tenantu/երթուղին; «թանկ» վիրահատությունները առանձին քվոտաներ են։

IP/ASN/Geo allow-lis.ru գործընկերների և webhuks համար։

Content-type allow («apport/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) Միգրացիայի և նստաշրջանների քաղաքականությունները

Ստանիսլավ 15 րոպե; Refresh-ը + reuse detae-ի լուծարումն է (ներկայացրել են հին 'նստաշրջանի վերանայումը)։

Webhuki HMAC: TTL ստորագրությունները 355 րոպե; կրկնվող առաքում էքսպոնենցիալ backoff-ով։

Նստաշրջանի/ստեղնաշարի վերանայումը ցույց է տալիս վերը նշված հայտնվելը revocation list (cash gateway 241 րոպե)։

10) Դիտողությունն ու աուդիտը

Հարաբերակցություն «trace _ id »/« բանաձև _ id»։

Մետրիկները ՝ auth success rate, «401/403/429», OIDC/JWKS լատենտ, միգրացիայի հաճախականությունը, reuse refresh, DPoP/mTRK մասնաբաժինը։

Աուդիտ-լոգ ․ «Ո՞ վ, երբ, ինչ» sub/ten.ru/sco.ru «-ը զանգահարեց, որ», փոփոխությունը/գաղտնիքները, ձախողված HMAC ստորագրությունները։

11) Հարմարեցում API Gateway-ում

JWT-վալիդացիան (JWKS kes) և OPA/ABAC նավի վրա։

MTLS-ը ավելացված հաճախորդների/գործընկերների համար։

HMAC-վերիֆիկացումը edge-ում (մինչև ներքին ծառայությունները)։

Rate/Delta պոլիսներ, circuit-breaker OIDC պրովայդերի վրա (JWK)։

Feature-flags: հաճախորդի արագ անջատումը/բանալին, ստորագրության ալգորիթմի փոփոխությունը։

12) Մինի-նիպետներ

Կեղծ '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 webhuk ստուգում

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)

Scoom քաղաքականության օրինակ (OPA/Rego գաղափար)

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

13) Պլեյբուկի

Մասնավոր ստեղնաշարի արտահոսքը/JWT-ստորագրությունը 'վերաիմաստավորումը, JWKS-ի նորարարությունը, հին ("kid' deny) անջատումը, refresh հաշմանդամությունը, հարկադիր logout։

Webhuks-ի փոխարինումը 'գաղտնիքների լուծարումը, IP allow-list, ռուսական պատուհանը' X-Timestamp ", բաց թողած իրադարձությունների կրկին առաքումը։

Replay/brutfors: ներառել DPoP/mTSA կրիտիկական երթուղիներում, քվոտաների նեղացումը, IP/ASN-ի ժամանակավոր բլոկները, ներառել «jti »-բլոկլիստը։

Altage OIDC-ը 'կանխված հոսանքների քայքայումը (grace), circuit-breaker պրովայդերը, հաճախորդների ծանուցումը։

14) Ներդրման թերթերը

Վավերացում (նվազագույն)

  • OAuth2: Code+PKCE (Web/Mobile), Client Credentials (server-to-server)
  • TTL: Lenta.15 րոպե, Refresh-ը և reuse detics-ը։
  • JWKS: Երկու ակտիվ բանալին, «kid», kash 245 րոպե։
  • Webhuki: HMAC v1, «X-Timestamp», «X-Event-Id», պատուհանը 300 վայրկյան, impotenty «,» X-Timestamp «,» X-Event-Id «, պատուհանը 300 վայրկյան,»
  • Sender-constrained: mTSA/DPoP կրիտիկական երթուղիների վրա
  • ABAC/OPA: scopes + tenault/risk քաղաքական գործիչներում դարպասի քաղաքական գործիչներում։
  • Rate/Quota и 429; IP/ASN allow-lis.ru գործընկերների համար
  • Աուդիտ և ալերտներ (401/403/429, reuse refresh, HMAC ստորագրություններ)

Գաղտնիությունը/տրամաբանությունը

  • Մի տրամաբանեք հոսանքները/գաղտնիքները/ամբողջական քարտեզների մարմինները
  • PII դիմակավորում; DSAR աջակցություն; լոգարանների պահպանման ժամկետը սահմանափակ է

15) Anti-patterna

«alg = none» կամ վստահություն առանց ստորագրության ստուգման/JWKS-ի։

Երկար գոյատևող մետաղադրամներ (ժամացույց/օր)։

Մեկ ընդհանուր HMAC գաղտնիքը բոլոր գործընկերների վրա։

Webhuks առանց timstampa/idempotenty։

Refresh-հոսանքները առանց ռոտացիայի և առանց reuse detae-ի։

«aud »/« iss» ----------- --- ռոտացիաներ։

Գաղտնիքների պահպանումը փոփոխական միջավայրերում առանց KFC/Vance։

16) NFT/SLO (ուղեցույցներ)

OIDC/JWKS հասանելիությունը 3699։ 95% (edge-cash նվազեցնում է կախվածությունը)։

JWT-ը gateway-ի վրա ավելացնում է 2-5 ms p95։

Ռուսական սխալները («401») 240։ Ընդհանուր ծավալի հինգ տոկոսը (բացառությամբ բոտերի)։

Ստորագրված Webhuks 'հաջողակ հավատացյալների թիվ 99 մասը։ 9 տոկոսը, առաքման միջին ուշացումը 3,3 ս է։

Ռեզյումե

Անջատեք մեխանիզմները 'OAuth2/OIDC + JWT օգտագործողների և հարուստ սերվերների համար, HMAC webhuks/պարզ գործընկերների համար, իսկ կրիտիկական վիրահատությունների համար' mTSA/DPoP։ Պահեք կարճ TTL-ը, պարտատոմսերը (JWKS), ABAC/OPA-ի խիստ քաղաքականությունները, պաշտպանեք ուրվագծերը replay և արտահոսքից, և ավտոմատացրեք ամեն ինչ API Gateway մակարդակում։ Այսպիսով, վավերացումը կդառնա կանխատեսելի, մեծացված և անվտանգ, առանց UX փոխզիջումների և մետաղադրամների։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։