Калидҳои API, токенҳо ва эътимодномаҳо - Аутентификатсияи бехатар
Мақолаи пурра
1) Барои чӣ ҳамаи ин: модели таҳдид барои IGaming
Пул ва PII: созишномаи калидӣ → қаллобӣ, ихроҷ, ҷарима.
Интегратсияи шабака: даҳҳо провайдерҳои беруна, минтақаҳо/литсензияҳои гуногун.
Меъёрҳои баланди SLA: пардохти оддӣ ё дукарата - хатарҳои обрӯ ва ҳуқуқӣ.
Хулоса: аутентификатсия ва авторизатсия бояд "бо нобаёнӣ", бо имтиёзҳои ҳадди ақал ва риояи қатъӣ бехатар бошанд.
2) Воситаҳо: Он чизе ки мо дар арсенали худ дорем
Калидҳои API: идентификатори муштарии статикӣ. Ҳамгироии осон, хатари баланди ихроҷ.
OAuth2 (Эътимодномаи мизоҷон): аломатҳои кӯтоҳмуддати Bearer бо миқёс/аудитория.
MTLS: санҷиши мутақобилаи TLS, пайвастагии қавии муштарӣ ба канал.
Имзоҳои HMAC/EDDSA: тамомияти криптографии мақоми дархост ва муҳофизат аз такрорӣ (timestamp + nonce).
Исботи моликият: Аломатҳои бо MTLS алоқаманд ё DP jokop (имзои дархости HTTP бо калиди муштарӣ).
JWT/PASETO: нишонаҳои худидоракунанда (беҳтараш бо TTL кӯтоҳ).
RBAC/ABAC: иҷозати нақш/атрибут-асоси (қарорҳои OPA/сиёсат).
Ҳайат/STS: Чиптаҳои вақт ва таъинот барои сенарияи мушаххас дода шудаанд.
3) Принсипҳои асосӣ ("аломатҳои таваққуф")
1. Имтиёзи камтарин: ҳар як калид/нишона дорои ҳуқуқҳои пасттарин мебошад.
2. Кӯтоҳмуддат бо нобаёнӣ: дақиқаҳои TTL, на рӯзҳо. Гардиш худкор аст.
3. Пайвастшавӣ ба канал: аломатҳои ҳатмӣ ба m
4. Пер-бренд/минтақа: калидҳо/шаҳодатномаҳо ва иҷозатномаҳо - барои бренд/литсензия/минтақа.
5. Сирри муштарак дар рамз вуҷуд надорад: асрҳо танҳо тавассути Vault/HSM/KMS, на дар Git/гузоришҳо.
6. Аудити WORM: гузоришҳои тағирёбандаи ҳама амалиётҳо/масъалаҳо/гардишҳо.
7. Idempotence оид ба навиштан: ҳама гуна такрор бо ҳамон калид бори дуюм пулро иваз намекунад.
4) Кай истифода бурдан лозим аст (контексти IGaming)
5) Тарҳрезии чиптаҳои дастрасӣ (миқёс, аудитория, шароит)
Соҳа (намунаҳо):- 'bets: навиштан', 'ҳисоббаробаркуниҳо: навиштан', 'ҳамён: кредит', 'ҳамён: дебет', 'rg: хондан', 'rg: иҷро кардан', 'jackpot: trigger'.
Шунавандагон: ба кӣ аломати муроҷиат карда мешавад (масалан, 'aud: ҳамён. апи ').
Маҳдудиятҳо (майда-чуйда):- 'brand _ id', 'минтақа', 'ip/cidr', 'time _ of _ day', 'rate _ limit', 'max _ tount'.
- Дар нишона нигоҳ дошта мешавад (даъвои JWT) ё дар "мандати" хаттӣ дар Vault/STS.
6) Ҷараёни истинод
6. 1 Платформаи ⇄ RGS: RPC Money
1. Дастфурӯшии MTLS (барои шаҳодатномаҳои бренд/минтақа).
2. OAuth2 CC: RGS 'access _ token' мегирад (TTL 2-5 дақиқа, 'aud = ҳамён. api ',' доираи = гарав: навиштани ҳисоббаробаркуниҳо: навиштан ').
3. Дархости 'POST/v1/bets/authorith' сарлавҳаҳо:- 'Авторизатсия: Bearer ', 'X-Idempotency-Key', 'X-Trace-Id'. 
- 4. Ҷавоб + ба аудити WORM нависед (кӣ/чӣ/вақте/дар куҷо).
- 5. Гардиши токен бефосила аст, пас аз ба охир расидани мӯҳлат - такрори CC.
6. 2 Платформаи Webhooks → провайдер
Сарлавҳаи 'X-Signature: eddsa = 
Санҷиши провайдер: равзанаи эътибор (± 5 дақиқа), nonce, имзои бадан.
Агар дастнорас бошад - бозгашт бо бозгашт, тарҳ аз ҷониби 'event _ id'.
6. 3 Намояндагӣ (хидмати jackpot → ҳамён)
JP ба STS занг мезанад: "аломати муваққатиро дар 'ҳамён: кредит' барои 'player _ id = p _...', sum ≤ X, TTL 2 дақ" диҳед.
STS сиёсат/маҳдудиятҳоро тафтиш мекунад → додани чипта (аломати танг).
JP ҳамёнро бо ин нишона қарз медиҳад. Созиш кардани чунин аломат бефоида аст: TTL-и кӯтоҳ, ҳуқуқҳои танг, ҳатмӣ ба MTLS.
7) Сохтмони дархостҳо
7. 1 Idempotency (лозим аст)
POST/v1/гарав/ҳал
Авторизатсия: доранда <MTLS-баста>
Калиди X-Idempotency: settle_r_8c12_1
X-Trace-Id: tr_a1b2
{
"bet_id":"b_001," "round_id":"r_8c12," бурд ": {" маблағ ": 1460," асъор ":" EUR "}
}
→ 200 {"статус ": "қарз дода шудааст", "settlement_id":"st_77"}
(такрор бо ҳамон калид → ҳамон ҷавоб)7. 2 Имзои Webhook (HMAC)
Имзои X: sha256 = BASE64 (HMAC (махфӣ, timestamp +. "" + Nonce +. "" + Бадан))
X-Timestamp: 1730000000
X-Nonce: 1f7a...8) Идоракунии асрҳо ва калидҳо
Vault/HSM/KMS: тавлид, нигоҳдорӣ, гардиш, ба хотир овардан.
Муҳити зист: қуттии қуттӣ/prod - решаҳои гуногуни эътимод.
Пер-бренд/минтақа: калидҳо ва сертификатҳои инфиродӣ.
Гардиши худкор: cron/огоҳиҳо; давраҳои такрорӣ барои ивазкунии бефосила.
Манъи рамз/гузоришҳо: сирри ба stdout навишта нашудааст, онҳо ба гузоришҳои садама ворид намешаванд.
Шиносоии дастгоҳ/Сарбории корӣ: SPIFFE/SPIRE, K8s Service/Account → M TLS бе асрори дастӣ.
9) Сиёсати авторизатсия (RBAC/ABAC) ва OPA
RBAC: роли "rgs", "ҳамён", "jackpot", "гузориш".
ABAC: "агар 'region = EU' and 'brand = A' қоидаҳо → иҷозат диҳед 'wallet: credit' ≤ 10k."
OPA/REGO ё аналогҳо: қабули қарорҳои мутамарказ, таҳияи сиёсат, санҷишҳои хушк.
10) Мушоҳида ва аудит
Пайгирии ниҳоӣ _ id ва client _ id дар ҳар як дархост/ҳодиса.
Нишондиҳандаҳо: таъхири p50/p95/p99 аз рӯи нуқтаҳои ниҳоӣ, меъёри хатогӣ аз рӯи рамзҳо ('AUTH _ FAILED', 'SCOPE _ REDIRED', 'IDEMPOTENCY _ MISMATCH'), меъёри гардиш, ҳиссаи нишонаҳои мӯҳлати истифодашуда.
Сабти WORM: масъалаҳои токен/хотиррасон, тағироти асосӣ, тағироти сиёсат.
Огоҳиҳо: 'AUTH _ FAILED' хӯша, аномалияҳои гео/ASN, 'афзоиши дер/бозхондашуда'> ҳадди ниҳоӣ.
11) Истиқомат ва сегментатсияи минтақавӣ
Токенҳо/шаҳодатномаҳо ба минтақа хосанд (EU/UK/BR/...).
Дар брендҳо - 'минтақа', дарвозаҳои платформа зангҳои байниминтақавиро манъ мекунанд.
Кластерҳои алоҳидаи KMS ва Vault дар як минтақа; калидҳо байни минтақаҳо "ронанда" нестанд.
12) Ҳодисаҳо ва хотираҳо
Китоби бозикунии созиш: лағви фаврии калид/нишона, блоки шабака/ASN, бастани миқёс.
Гузариш дар сатҳи дарвоза: "ҷаласаҳои нав/фондҳо нестанд".
Postmortem: "вақте ки он ба гузоришҳо/анборҳо ворид шуд", "чаро DLP/сканери махфӣ кор накард".
13) Рӯйхати санҷишҳо
A. барои платформа
- Ҳама роҳҳоро менависанд: MTLS + OAuth2 CC (TTL ≤ 5 дақиқа), 'X-Idempotency-Key', 'X-Trace-Id'.
- Webhooks: HMAC/Ed-DSA + timestamp + nonce, dedup by 'event _ id'.
- Keistor: Vault/HSM/KMS, гардиш ва ба хотир овардан, тақсим кардани як бренд/минтақа.
- OPA/сиёсатҳо: RBAC/ABAC, тағир додани гузоришҳо, санҷишҳо.
- Аудити WORM ва панелҳои SLO (ниҳонӣ, хатогӣ, бозхонд/гардиш).
- Таълимоти DR/xaoc: нишонаҳои ба итмомрасида, ғоратгарии имзоҳо, MITM бе MTLS.
B. барои провайдер (RGS/live/JP)
- Ман асрори рамзро нигоҳ намедорам; бо истифода аз Vault/ивазкунӣ тавассути тағирёбандаҳои муҳити зист.
- Гардиши худкори токенҳо; дастаки 401/403 бо навсозӣ.
- Веб-китобҳоро имзо кунед/тирезаҳои эътимоднокӣ ва якдафъаинаро тафтиш кунед.
- Фаъолиятҳои калидии аудит ва вокуниш ба сарлавҳаҳои амортизатсия/ғуруби офтоб.
- Номутобиқатӣ дар ҳама зангҳои навиштан, тарҳ аз ҷониби 'Idempotency-Key'.
14) Анти-намунаҳо (парчамҳои сурх)
Калидҳои Static API бидуни мӯҳлати истифода дар фурӯш.
Аломатҳои барзиёд бидуни ҳатмӣ ба канал (не MTLS/DP okp).
Нигоҳ доштани асрори дар сабти Git/CI/frontend.
Калид/шаҳодатномаи муштарак барои якчанд брендҳо/минтақаҳо.
Webhooks бе имзо ва равзанаи вақт → такрорӣ.
Набудани фикру мулоҳизаҳои мутамарказ ва сабти WORM.
Набудани idempotency → такрори дебетҳо/қарзҳо.
15) Қолабҳои сиёсати хурд (масалан, хониши инсон)
Чиптаи 'rgs → ҳамён' (ИА, бренди A):- 'aud = ҳамён. api ', 'доираи = ["гарав: навиштан ", "ҳисоббаробаркунӣ: навиштан"] '
- 'constraints: минтақа = EU, бренди = A, ip in {asn:...}, max_amount=5000 EUR, ttl = 300 s'
- 'ҳатмӣ: mTLS (cert_hash=sha256:...)'
- 'alg = Ed25519', равзанаи '± 30-сола', 'nonce' беназир, бобои 'чорабинӣ _ ид' 24 соат.
Аутентификатсияи бехатар дар IGaming ин маҷмӯи амалияҳо мебошад: мандатҳои кӯтоҳмуддат, ҳатмии канал (m Чунин анбор ба суръати ҳамгироӣ халал намерасонад, аммо хатари ихроҷ ва ҳодисаҳои молиявиро ба таври куллӣ коҳиш медиҳад - пул ва маълумот таҳти назорат қарор доранд, такмилдиҳӣ пешгӯишаванда аст ва мувофиқат аз қуттӣ иҷро карда мешавад.
