Bosh sahifa Wiki User Context

User Context

User Context — tizim yoki ilova ma’lum amalni qaysi foydalanuvchi nomidan va qaysi ruxsat, sessiya hamda muhit bilan bajarayotganini ifodalovchi holat.

Identity tarkibi

Operatsion tizimda user ID, group ID, capability, security token va session ma’lumotlari access controlga kiradi. Ilovada tenant, role, locale va authentication claim qo‘shilishi mumkin. Display name ruxsat qarori uchun identity emas.

Ruxsat qarori

Authentication user kimligini, authorization nima qila olishini aniqlaydi. User context token imzosi, issuer, audience va expiry tekshirilgandan keyin yaratiladi. Client yuborgan role satriga bevosita ishonilmaydi.

Impersonation

Impersonation xizmatga vaqtincha boshqa user nomidan resursga murojaat qilish imkonini beradi. Scope minimal, audit aniq va original caller identity saqlanadi. Context finally blokida qaytarilmasa keyingi request noto‘g‘ri user bilan ishlashi mumkin.

Async oqim

Async va thread poolda thread-local user context sizib ketishi xavfli. Request scope explicit yoki runtime context variable bilan uzatiladi; worker qayta ishlatilishidan oldin tozalanadi.

Fon vazifalari

Background job user actionidan yaratilgan bo‘lsa immutable user ID va authorization snapshot yoki qayta tekshirish siyosati tanlanadi. Eski role abadiy cache qilinmaydi. System job userga o‘xshatib qo‘yilmaydi.

Audit

Test ikki userning parallel requestlari, token expiry, tenant isolation, impersonation va logoutdan keyingi holatni qamraydi. Audit actor, subject va actionni ajratadi.

Amaliy boshqaruv

User Context implementatsiyasida identity, tenant va authorization claim alohida va versiyalangan holat sifatida yuritiladi. Qaror uchun zarur inputlar yashirin global taxminga aylantirilmaydi: platforma, konfiguratsiya, identity yoki memory-order sharti tegishli obyekt bilan bog‘lanadi. Shu sabab incremental yangilanish, context almashishi yoki parallel hodisada eskirgan ma’lumotdan foydalanish kamayadi. Debug rejim qarorni hosil qilgan edge, state transition va parametrlarni ko‘rsatadi; production log esa maxfiy qiymatlarni xom shaklda yozmaydi.

Muhim xato sinfi — impersonation cleanup yoki expired token. Bunday vaziyatda tizim optimistik tarzda davom etmaydi: semantikaga qarab konservativ fallback, bounded retry, taskni bloklash yoki aniq error tanlanadi. Timeout correctness isboti emas; u faqat operatsion limitdir. Queue membership, reference count, lock ownership va visibility kabi invariantlar state bilan atomik yangilanadi. Cancellation yoki failure o‘rtada yuz bersa qisman o‘zgargan holat cleanup protokoli orqali tiklanadi.

Sifat nazorati parallel user va audit testi orqali bajariladi. Test normal yo‘ldan tashqari bo‘sh navbat, bitta element, yuqori contention, timeout bilan bir vaqtdagi wakeup, resurs limiti va platforma variantlarini qamraydi. To‘g‘rilik performance’dan alohida tekshiriladi; keyin throughput, p99 latency, context switch, cache miss yoki artefakt hajmi kabi mavzuga mos ko‘rsatkichlar baseline bilan solishtiriladi. Topilgan minimal interleaving yoki kirish regressiya to‘plamida doimiy saqlanadi.

User context cache’i authorization policy va membership versiyasiga bog‘lanadi. Role o‘zgargach uzoq yashovchi websocket yoki background worker eski ruxsatni abadiy saqlamaydi. Audit log authentication actor, impersonated subject, tenant, policy decision va correlation IDni alohida maydonlarda yozadi.

Service-to-service chaqiruvda end-user context bilan service identity aralashtirilmaydi. Delegation tokeni aniq audience, scope va qisqa expiry orqali vakolat chegarasini saqlaydi.

Bog‘liq tushunchalar

identity, authorization, security token, session, impersonation, access control