Аутентификация жана авторизация
AuthN/AuthZ ишенимдүү контур - бул сиз ким экениңизди (аутентификация) жана сизге эмне уруксат берилгенин (авторизация) чындыктын бир чекити. Көптөгөн бренддер, региондор, интеграциялар жана жогорку регулятивдик талаптар менен платформада бул контур модулдук болушу керек, саясатчылар тарабынан көзөмөлдөнөт жана башкарылат, ал эми "кызматтарга if-oların чачырандысы" эмес.
1) Негизги терминдер жана ролдору
Идентификация (ID): инсандыгын аныктоо (колдонуучу, кызмат, провайдер).
Аутентификация (AuthN): инсандык далил (пароль, MFA, сертификат).
Авторизация (AuthZ): саясаттын жана контексттин негизинде "мүмкүн/мүмкүн эмес" чечим кабыл алуу.
PDP/PEP: Policy Decision Point (чечим кабыл алат )/Policy Enforcement Point (колдонулат).
IdP: идентификациялоо провайдери (OIDC).
Subject/Resource/Action/Context: ким/эмне үчүн/эмне кылат/кандай шарттарда.
2) Жалпы контур архитектурасы
[ IdP (OIDC) ]
│ OIDC/OAuth 2. 1 (PKCE, JAR/JARM)
[ Token Service / JWKS / KMS ]
│klyuchi (rotate)
│ JWT/Access/Refresh, mTLS
[API Gateway (PEP)] Solution/Policy ──kesh
│ authN/CSRF/CORS/rate-limit
[ Microservices (PEP)]──PDP (OPA/cedar) ──Policy Store (GitOps)
│audit/metriki
[ Data/Providers ]── service-to-service (mTLS+JWT/Spiffe)
Принциптери: токендерди жана саясатты генерациялоону борборлоштуруу, жергиликтүү колдонуу; "минималдуу артыкчылыктар" жана ачык ыйгарым укуктар.
3) Колдонуучулардын аутентификациясы (OIDC/OAuth 2. 1)
Паттерндер:- Authorization Code + PKCE (ар дайым SPA/Mobile үчүн).
- SSO: b2b/операторлор үчүн тышкы IdP (SAML/OIDC) колдоо.
- MFA: TOTP/WebAuthn/SMS (сунуш WebAuthn жана TOTP; SMS — fallback).
- Тобокелдик-негизделген кадам-Up: сезимтал иш-аракеттер менен (акча каражаттарын алуу, реквизиттерди өзгөртүү) MFA/pe-Auth талап.
- Refresh Token Rotation + кайра иштетүү детектору менен RT реестри.
- Nonce/State + PKCE, браузер агымдары үчүн катуу CORS/CSRF.
- Short-lived access tokens (5–15 мин) + silent refresh/RT.
- Device binding (DPoP/mtls-bound tokens) маанилүү иш үчүн.
json
{
"iss": "https://auth. example. com",
"sub": "user_9f12",
"aud": ["wallet","catalog"],
"exp": 1730385600,
"iat": 1730384700,
"tenant": "brand_eu",
"region": "EE",
"amr": ["pwd, ""webauthn"] ,//authentication methods
"scp": ["wallet:read","bets:place","kyc:status. read"],
"sid": "sess_a1b2c3", // session id
"acr": "urn: mfa: strong "//warranty level
}
4) кызмат аутентификация (mTLS, SPIFFE, JWT)
mTLS кызматтардын ортосунда + SPIFFE/SPIRE туруктуу workload идентификаторлору үчүн.
HSM/KMS тарабынан кол коюлган кыска мөөнөт (≤ 5 мин) менен JWT кызматы; берүү аудити.
Audience-scoped: JWT белгилүү бир кызмат/домен үчүн гана жарактуу.
Ишеним зоналары: башка аймактан келген кызматтар/тенант - өзүнчө PKI жана саясат.
5) уруксат моделдери: RBAC, ABAC, ReBAC
RBAC (ролу → чечим): жөнөкөй жана ачык-айкын (башкаруу панелдер, операторлор үчүн ылайыктуу).
ABAC (субъект/ресурс/контексттин атрибуттары): эрежелер үчүн ийкемдүү "tenant =... AND region=… AND kyc_tier≥2».
ReBAC (мамилелер): татаал ээлик үчүн пайдалуу ("бренд/папка/өнөктүк ким таандык").
Сунуш: гибрид - негизги RBAC + контексттик ABAC шарттары + чекит ReBAC мамилелер.
6) Саясат жана аларды аткаруу (PDP/PEP)
PEP Gateway жана кызматтар боюнча: контекстин чыгарат (JWT, мандаттар, IP/ASN, убакыт, аймак, KYC-деңгээл), PDP үчүн суроо-талап түзөт.
PDP (мисалы, OPA/cedar) кабыл алат:json
{
"subject": { "sub":"user_9f12", "roles":["support"], "kyc":2, "tenant":"brand_eu" },
"action": "bets. place",
"resource": { "game_id":"g_42", "provider":"pr_x" },
"context": { "region":"EE", "ip_asn":"AS12345", "time":"2025-10-31T12:34:56Z" }
}
жана кайтарат 'ALLOW/DENY' + түшүндүрмө.
PEP кэш чечимдер (TTL 30-120 c) жашыруун азайтат; "ролдорду/саясатты өзгөртүү" окуялары боюнча майыптык.
Саясаттын мисалы (псевдо-Rego):rego package bets
default allow = false
allow {
input. action == "bets. place"
input. subject. kyc >= 2 input. subject. tenant == input. context. tenant not blocked_region within_limits
}
blocked_region { input. context. region == "NL" }
within_limits { input. context. bet_amount <= data. limits. max_bet[input. subject. tenant] }
7) Сатып алуу жана уруксат
Аталышы:- Ресурс: аракет - 'wallet: read', 'wallet: transfer', 'bets: place', 'kyc: status. read`.
- Администраторлор үчүн - 'admin:' өзүнчө доменде.
- Провайдерлер үчүн - 'provider: report. read`, `provider:events. push`.
Минималдуу артыкчылыктардын принциби: биз керектүү сатып алууларды гана дайындайбыз; "эскалация" (укуктарды убактылуу кеңейтүү) - тикет жана TTL менен.
8) Мультитенант жана региондор (residency)
Токендер 'tenant', 'region', 'licence'; PDP ресурстун шайкештигин текшерет.
Ролдор/саясаттар - per tenant ('role: brand _ eu/support') аттарынын мейкиндиктери.
Кол тамга ачкычтарын жана чакыртып алуу тизмелерин аймактар боюнча бөлүү; кросс-аймактык суроолор - ишенимдүү шлюздар аркылуу гана.
9) Сессияларды жана түзмөктөрдү башкаруу
Server-side session store for web (түзмөк/браузерге байлоо, идентификаторду айлантуу).
Idle/Absolute Timeout (мисалы, 30 мин/24 саат); сезгич иш-аракеттер - re-Auth/MFA.
активдүү түзмөктөрдүн тизмеси, "бардык чыгып".
Аномалиялар: ар кайсы аймактардан бир убакта кирүү, MFAнын тез-тез иштебей калышы - тобокелдик сигналдары.
10) Өткөрүп берүү жана макулдашуу (consent)
On-behalf-of (OBO): кызмат колдонуучунун атынан иштейт (өзүнчө 'sub '/' act' менен прокси-токен).
Макулдук: маалыматтардын өнөктөш жетүү үчүн ачык экран, кайра чакыртып алуу менен макулдашуу журналы.
Убактылуу access-mandates: N саат/күн укугу, автоматтык түрдө мөөнөтү бүтөт.
11) Ачкычтар, кол тамгалар жана ротация
JWKS менен 'kid', автоматтык айлануу, KMS/HSM жеке ачкычтарды сактоо.
Алгоритмдер: JWT үчүн ES256/EdDSA; TLS 1. 2+/mTLS.
Dual-key мезгил: эки 'kid' кардарлардын тактоо аяктаганга чейин кабыл алуу.
Сын окуялар үчүн RT Review жана Token Introspection.
12) Кардарлардын колдонмолорунун коопсуздугу
SPA: Authorization Code + PKCE, no `implicit`, строгий CORS/Content-Security-Policy.
Mobile: App Attestation/Device Check, RT коопсуз сактоо, Ruth/Jailbreak коргоо.
Desktop: Логин үчүн системалык браузер (no embedded web-views), PKCE.
13) Ыңгайлуу келишимдер SDK
Evaluate (AuthZ) API:http
POST /authz/evaluate
Authorization: Bearer <access_jwt>
Body: { "action":"bets. place", "resource":{"game_id":"g_42"}, "context":{"bet_amount":5. 0} }
→ 200 { "decision":"ALLOW", "ttlMs":60000, "explain":"kyc>=2, limit ok" }
Token Exchange (OBO):
http
POST /oauth/token grant_type=urn:ietf:params:oauth:grant-type:token-exchange subject_token=<user_jwt>&actor_token=<service_jwt>&audience=wallet
14) Байкоо жана аудит
Метрикасы:- `authn_success_rate`/`mfa_challenge_rate`/`mfa_fail_rate`
- `authz_p95_ms`, `authz_denied_rate{reason}`
- `invalid_token_rate`, `jwks_skew_ms`, `rt_reuse_detected`
- Кирүүнүн аномалиялары (new device, geo-velocity), шектүү сатып алуулар.
- `who/what/when/where/why`, `decision`, `policy_version`, `token_kid`, `client_id`.
- Комплаенс үчүн экспорт (жөнгө салуучу/сатуучу-аудит).
15) Коргоо периметри жана кардар
Gateway PEP: rate-limit, bot/signature checks, CSRF-коргоо, катуу CORS, HSTS.
Ички жол: mTLS + тейлөө JWT + чектелген тармактар.
Webhook/Тышкы Collecks: дене кол тамгалар (HMAC/JWS), убакыт терезелер, анти-реплика.
16) типтүү каталар
Узак мөөнөттүү access-токендер → агып.
SPA үчүн OAuth имплициттик агымы.
Жок айлануу баскычтары жана Dual-Key мезгил.
Саясаттын ордуна Zherdkojennye ролдору (чечимдерди текшерүү/түшүндүрүү мүмкүн эмес).
Бир 'role' же 'key' дегенге тенанттарды/аймактарды аралаштыруу.
сезимтал иш-аракеттер боюнча эч кандай кадам MFA.
AuthZ чечимдерин ролдорду өзгөртүү боюнча майыптыгы жок кэш.
17) Playbooks (runbooks)
1. JWT кол ачкычын компромисс
Дароо revoke 'kid', жаңы JWKS жарыялоо, RT/сессияларды мажбурлап майып, аудит отчет.
2. Массалык 'invalid _ token'
Саат/жашоо убактысы, JWKS актуалдуулугун, кэш мүчүлүштүктөрүн текшерүү.
3. Кирүү аномалиялары
Жогорулатылган тобокелдик-эсепти киргизүү, кадам талап кылуу, колдонуучуга кабарлоо, төлөмдөрдү убактылуу чектөө.
4. IdP катасы
Сессиялардын кэшине/ролу аппаратына өтүү, жаңы логиндерди чектөө, учурдагы сессияларды TTLге чейин кармап туруу.
18) Азык-түлүктүн алдындагы чек-тизме
- OIDC/OAuth 2. PKCE менен 1, кыска АТ, RT айлануу, маанилүү иш үчүн түзмөк байланыш.
- MFA (WebAuthn/TOTP) жана step-up үчүн/маалымат өзгөртүү/ролу-эскалация.
- Service-to-service: mTLS + SPIFFE, кыска мөөнөттүү JWT кызматы.
- AuthZ саясаты (RBAC + ABAC/ReBAC) борборлоштурулган PDP; PEP gateway жана кызматтарда.
- майыптыгы менен кэш чечимдер; audit trail өзгөрүлбөс.
- Мультитенант/региондор: ачкычтарды/саясаттарды/логдорду изоляциялоо, лицензияларды эсепке алуу.
- JWKS/ачкычтар KMS/HSM, эки-негизги айлануу, мониторинг 'kid'.
- CSRF/CORS/HSTS/Rate-limit/бот-чыпкалар периметри боюнча.
- Playbook окуялар, run-баскычы revoke/rotate/lockdown.
- тесттер топтому: unit (policies), contract (SDK/flows), chaos (IdP, JWKS), e2e (кадам, OBO, revoke).
19) Mini конфигурация үлгүлөрү
Scope реестри (YAML):yaml scopes:
wallet: read: {desc: "Reading balance"}
wallet: transfer: {desc: "Transfer of funds," sensitive: true, step_up: true}
bets: place: {desc: "Bet"}
kyc:status. read: {desc: "KYC status"}
roles:
support:
allow: [wallet:read, kyc:status. read]
finance:
allow: [wallet:read, wallet:transfer]
player:
allow: [bets:place]
PDP саясаты (аймактын шарты):
yaml deny:
- when: { region: ["NL","BE"] }
actions: ["bets."]
Корутунду
Аутентификация жана авторизация контуру - бул китепкана эмес, платформалык жөндөмдүүлүк: кыска мөөнөттүү токендер жана башкарылуучу ачкычтар, борборлоштурулган саясат жана аларды жергиликтүү колдонуу, көп фактор жана этап-топ, тенанттарды/аймактарды катуу изоляциялоо, аудит жана телеметрия. Мындай дизайн өзгөрүүлөрдү коопсуз, жөнгө салуучу үчүн түшүнүктүү жана продукт үчүн ачык-айкын кылат - ал эми рыноктордо жана командаларда масштабдоо эрдикке эмес, күнүмдүк операцияга айланат.