Bosh sahifa Wiki Token

Token

Token — foydalanuvchi, ilova yoki service’ni tizim oldida tanitish uchun ishlatiladigan maxsus qiymat. Token odatda authentication va authorization jarayonlarida ishlatiladi va so‘rov yuborayotgan tomon kim ekanini aniqlashga yordam beradi.

Token web ilovalar, mobile ilovalar, API, microservice, OAuth, JWT va CI/CD tizimlarida keng qo‘llanadi.

Vazifasi

Token tizimga kelayotgan so‘rovni aniqlash va tekshirish uchun ishlatiladi.

Token quyidagi vazifalarni bajaradi:

  • foydalanuvchi login holatini tasdiqlash;
  • API so‘rovlarini autentifikatsiya qilish;
  • access va refresh jarayonlarini boshqarish;
  • foydalanuvchi role yoki permissionlarini uzatish;
  • service-to-service aloqani himoyalash;
  • parol tiklash jarayonida vaqtinchalik ruxsat berish;
  • email tasdiqlashda identifikator sifatida ishlash;
  • OAuth va OpenID Connect oqimlarida ishlash;
  • CI/CD va integrationlarda maxfiy kalit sifatida qo‘llanish.

Masalan, foydalanuvchi login qilgandan keyin backend access token yaratadi. Frontend keyingi API so‘rovlarida shu tokenni yuboradi.

Token qanday ishlaydi?

Token odatda server tomonidan yaratiladi. Client tokenni saqlaydi va keyingi so‘rovlarda serverga yuboradi. Server tokenni tekshiradi va so‘rov qaysi foydalanuvchi yoki service’ga tegishli ekanini aniqlaydi.

Oddiy jarayon:

  • foydalanuvchi login qiladi;
  • backend login ma’lumotlarini tekshiradi;
  • token yaratadi;
  • token frontend yoki mobile ilovaga qaytariladi;
  • client keyingi so‘rovlarda tokenni yuboradi;
  • backend tokenni tekshiradi;
  • token to‘g‘ri bo‘lsa, so‘rov bajariladi;
  • token noto‘g‘ri yoki muddati tugagan bo‘lsa, so‘rov rad etiladi.

Token foydalanuvchi yoki service identity’sini vaqtinchalik tasdiqlovchi qiymat sifatida ishlaydi.

Access token

Access token — himoyalangan API yoki resurslarga kirish uchun ishlatiladigan token. U odatda qisqa muddat amal qiladi.

Access token quyidagi joylarda ishlatiladi:

Masalan:

Authorization: Bearer <access_token>

Bu header orqali client backendga access token yuboradi.

Refresh token

Refresh tokenaccess token muddati tugaganda yangi access token olish uchun ishlatiladigan token. Refresh token odatda access tokendan uzoqroq muddat amal qiladi.

Refresh token jarayoni:

Refresh token foydalanuvchini tez-tez qayta login qildirmasdan sessionni davom ettirish uchun ishlatiladi.

ID token

ID token — foydalanuvchi kimligi haqida ma’lumot beruvchi token. ID token ko‘pincha OpenID Connect tizimlarida ishlatiladi.

ID token ichida quyidagilar bo‘lishi mumkin:

ID token foydalanuvchini identifikatsiya qilish uchun ishlatiladi, lekin API access uchun har doim ham ishlatilmaydi.

Bearer token

Bearer token — tokenni olib kelgan tomon so‘rov yuborish huquqiga ega deb hisoblanadigan token turi. Bearer token odatda HTTP Authorization headerida yuboriladi.

Misol:

Authorization: Bearer eyJhbGciOi...

Bearer token REST API, OAuth va JWT asosidagi authentication tizimlarida keng uchraydi.

API token

API tokenAPI bilan ishlash uchun beriladigan maxsus token. U foydalanuvchi, ilova yoki service nomidan API so‘rov yuborishda ishlatiladi.

API token quyidagi joylarda qo‘llanadi:

API token ko‘pincha uzun, tasodifiy va maxfiy qiymat bo‘ladi.

Personal access token

Personal access token — foydalanuvchi nomidan API yoki platforma bilan ishlash uchun yaratiladigan token.

Personal access token quyidagi platformalarda uchraydi:

Masalan, GitHub repositoryga API orqali kirish yoki Git push qilish uchun personal access token ishlatilishi mumkin.

JWT

JWTJSON Web Token. JWT ichida JSON formatidagi ma’lumotlar saqlanadi va token imzo orqali tekshiriladi.

JWT odatda uch qismdan iborat:

JWT ichida user ID, role, permission, token muddati va boshqa claimlar bo‘lishi mumkin.

Token claim

Claim — token ichidagi ma’lumot maydoni. JWT tokenlarda claimlar foydalanuvchi yoki token haqida ma’lumot beradi.

Claim misollari:

  • sub — subject, odatda user ID;
  • exp — token muddati tugash vaqti;
  • iat — token yaratilgan vaqt;
  • iss — token bergan server;
  • aud — token mo‘ljallangan audience;
  • role — foydalanuvchi roli;
  • permissions — foydalanuvchi ruxsatlari.

Claimlar authentication va authorization jarayonida ishlatiladi.

Token expiration

Token expiration — tokenning amal qilish muddati tugashi. Token muddati tugaganda server uni qabul qilmaydi.

Expiration quyidagi maqsadlarda ishlatiladi:

  • xavfsizlikni oshirish;
  • eski tokenlarni yaroqsiz qilish;
  • sessiya muddatini boshqarish;
  • refresh token mexanizmini ishlatish;
  • token tarqalib ketgan holatda xavfni kamaytirish.

Access tokenlar odatda qisqa muddatli, refresh tokenlar esa uzoqroq muddatli bo‘ladi.

Token signature

Signature — tokenning o‘zgartirilmaganini tekshirish uchun ishlatiladigan imzo qismi. JWT’da signature token header va payload ma’lumotlari asosida yaratiladi.

Signature quyidagilarni aniqlashga yordam beradi:

  • token server tomonidan yaratilganmi;
  • token yo‘lda o‘zgartirilganmi;
  • token imzosi to‘g‘rimi;
  • token ishonchli manbadan kelganmi.

Agar signature noto‘g‘ri bo‘lsa, token yaroqsiz hisoblanadi.

Token validation

Token validation — tokenni tekshirish jarayoni. Backend har bir himoyalangan so‘rovda tokenni tekshirishi mumkin.

Token validation jarayonida quyidagilar tekshiriladi:

  • token mavjudmi;
  • token formati to‘g‘rimi;
  • signature to‘g‘rimi;
  • token muddati tugamaganmi;
  • issuer mosmi;
  • audience mosmi;
  • token blacklistda emasmi;
  • kerakli claimlar mavjudmi.

Validationdan o‘tgan token asosida foydalanuvchi yoki service aniqlanadi.

Token blacklist

Token blacklist — bekor qilingan tokenlarni saqlash ro‘yxati. Token hali muddati tugamagan bo‘lsa ham, blacklistda bo‘lsa yaroqsiz hisoblanadi.

Token blacklist quyidagi holatlarda ishlatiladi:

  • logout;
  • refresh token bekor qilish;
  • parol almashtirish;
  • account bloklash;
  • xavfsizlik hodisasi;
  • admin tomonidan session tugatish;
  • token o‘g‘irlangani aniqlanishi.

Blacklist ayniqsa JWT kabi stateless tokenlarda logout jarayonini boshqarishda ishlatiladi.

Token revocation

Token revocation — tokenni muddatidan oldin bekor qilish jarayoni.

Token quyidagi holatlarda revoke qilinishi mumkin:

  • foydalanuvchi logout qilganda;
  • parol o‘zgartirilganda;
  • refresh token yangilanganda;
  • qurilma sessiyasi o‘chirilganda;
  • API kalit bekor qilinganda;
  • xavfsizlik xavfi aniqlanganda.

Revocation tokenning keyingi so‘rovlarda ishlashini to‘xtatadi.

Token rotation

Token rotation — eski token o‘rniga yangi token berish jarayoni. Bu ayniqsa refresh tokenlarda ishlatiladi.

Token rotation jarayonida:

Token rotation token tarqalib ketgan holatlarda xavfni kamaytirishga yordam beradi.

Opaque token

Opaque token — ichki ma’nosi clientga ko‘rinmaydigan token. U odatda tasodifiy uzun qiymat bo‘ladi va server yoki authorization server orqali tekshiriladi.

Opaque token xususiyatlari:

  • client token ichini o‘qiy olmaydi;
  • ma’lumot server tomonda saqlanadi;
  • introspection orqali tekshirilishi mumkin;
  • OAuth tizimlarida uchraydi;
  • revoke qilish osonroq bo‘lishi mumkin.

Opaque token JWT’dan farqli ravishda o‘z ichida ochiq payload saqlamaydi.

Stateless token

Stateless token — serverda session holatini saqlamasdan ishlaydigan token. JWT stateless tokenning keng tarqalgan ko‘rinishidir.

Stateless token xususiyatlari:

  • token ichida kerakli claimlar bo‘ladi;
  • server har safar tokenni tekshiradi;
  • alohida session storage talab qilmasligi mumkin;
  • scaling jarayonida qulay bo‘lishi mumkin;
  • token revoke qilish alohida mexanizm talab qilishi mumkin.

Stateless token microservice va API tizimlarida ishlatiladi.

Stateful token

Stateful tokenserver tomonda saqlanadigan holatga bog‘liq token. Bunday token odatda session ID yoki opaque token ko‘rinishida bo‘ladi.

Stateful token xususiyatlari:

  • token qiymati serverdagi ma’lumotga ishora qiladi;
  • server tokenni storage orqali tekshiradi;
  • logout yoki revoke qilish osonroq bo‘lishi mumkin;
  • Redis, database yoki cache talab qilishi mumkin;
  • session-based authentication bilan bog‘liq bo‘ladi.

Stateful token klassik web ilovalarda keng uchraydi.

Token saqlash

Client tokenni turli joylarda saqlashi mumkin. Saqlash usuli ilova turi va xavfsizlik modeliga bog‘liq.

Token saqlanadigan joylar:

Authentication tokenlari maxfiy qiymat hisoblanadi va ularga ruxsatsiz kirish xavfsizlik muammosiga olib kelishi mumkin.

Cookie’da token

Token cookie ichida saqlanishi mumkin. Bu usul web ilovalarda keng ishlatiladi.

Cookie’da token saqlanganda quyidagilar muhim:

  • HttpOnly flag;
  • Secure flag;
  • SameSite sozlamasi;
  • expiration;
  • domain;
  • path;
  • CSRF himoyasi.

HttpOnly cookie JavaScript orqali token o‘qilishini cheklaydi.

localStorage’da token

Token localStorage ichida saqlanishi mumkin. Bu SPA ilovalarda uchraydi, lekin JavaScript orqali o‘qilishi sababli XSS xavfi bilan bog‘liq.

localStorage xususiyatlari:

  • brauzerda uzoqroq saqlanadi;
  • JavaScript orqali o‘qiladi;
  • serverga avtomatik yuborilmaydi;
  • browser yopilgandan keyin ham qolishi mumkin;
  • XSS holatida token o‘qilishi mumkin.

Bu usul client-side token boshqaruvi bilan bog‘liq.

sessionStorage’da token

sessionStorage tokenni brauzer tab sessiyasi davomida saqlaydi. Tab yopilganda ma’lumot o‘chadi.

sessionStorage xususiyatlari:

  • JavaScript orqali o‘qiladi;
  • tab yopilganda o‘chadi;
  • serverga avtomatik yuborilmaydi;
  • localStorage’ga qaraganda qisqa muddatli;
  • XSS xavfi mavjud bo‘lishi mumkin.

sessionStorage vaqtinchalik token saqlashda ishlatilishi mumkin.

Memory’da token

Token frontend ilova xotirasida saqlanishi mumkin. Bunda token sahifa yangilanganda yoki ilova qayta ochilganda yo‘qolishi mumkin.

Memory’da token saqlash xususiyatlari:

  • persistent emas;
  • JavaScript runtime ichida turadi;
  • sahifa reload qilinganda yo‘qoladi;
  • XSS xavfini to‘liq yo‘qotmaydi;
  • qisqa muddatli access tokenlar uchun ishlatilishi mumkin.

Bu yondashuv ba’zi SPA authentication oqimlarida uchraydi.

Mobile secure storage

Mobile ilovalarda tokenlar maxsus secure storage ichida saqlanishi mumkin.

Mobile secure storage misollari:

  • iOS Keychain;
  • Android Keystore;
  • Encrypted SharedPreferences;
  • SecureStore;
  • biometric-protected storage.

Mobile authentication tizimlarida access token va refresh tokenlar shu turdagi saqlash joylari bilan boshqarilishi mumkin.

Authorization header

Token API so‘rovlarida ko‘pincha Authorization header orqali yuboriladi.

Misol:

Authorization: Bearer <token>

Bu usulda token request header ichida bo‘ladi va backend uni tekshiradi.

Authorization header quyidagi tokenlar bilan ishlatiladi:

Query parameter token

Ba’zi tizimlarda token URL query parameter orqali yuborilishi mumkin.

Misol:

https://example.com/verify?token=abc123

Bu usul odatda quyidagi jarayonlarda uchraydi:

Authentication access tokenlarini URL’da uzatish loglar, browser history va referer sababli xavfsizlik muammolariga olib kelishi mumkin.

Email verification token

Email verification token — foydalanuvchi email manzilini tasdiqlash uchun yaratiladigan vaqtinchalik token.

Jarayon:

  • foydalanuvchi ro‘yxatdan o‘tadi;
  • server verification token yaratadi;
  • emailga maxsus link yuboriladi;
  • foydalanuvchi linkni bosadi;
  • backend tokenni tekshiradi;
  • email tasdiqlangan deb belgilanadi.

Bu token odatda qisqa yoki o‘rtacha muddat amal qiladi.

Password reset token

Password reset token — foydalanuvchi parolini tiklash uchun ishlatiladigan vaqtinchalik token.

Password reset token jarayoni:

  • foydalanuvchi parol tiklash so‘rovi yuboradi;
  • server reset token yaratadi;
  • token email yoki SMS orqali yuboriladi;
  • foydalanuvchi token orqali yangi parol sahifasiga kiradi;
  • backend tokenni tekshiradi;
  • yangi parol saqlanadi;
  • token yaroqsiz qilinadi.

Bu token odatda bir martalik va muddatli bo‘ladi.

Magic link token — foydalanuvchini parolsiz login qilish uchun yuboriladigan havola ichidagi token.

Magic link jarayoni:

  • foydalanuvchi email kiritadi;
  • server maxsus login token yaratadi;
  • emailga link yuboradi;
  • foydalanuvchi linkni ochadi;
  • server tokenni tekshiradi;
  • foydalanuvchi tizimga kiritiladi.

Magic link token authentication jarayonida vaqtinchalik kirish ruxsatini bildiradi.

CSRF token

CSRF token — foydalanuvchi nomidan ruxsatsiz so‘rov yuborilishini oldini olish uchun ishlatiladigan token.

CSRF token quyidagi jarayonda ishlaydi:

  • server maxsus token yaratadi;
  • token forma yoki cookie orqali clientga beriladi;
  • client muhim so‘rovda tokenni yuboradi;
  • server tokenni tekshiradi;
  • token noto‘g‘ri bo‘lsa, so‘rov rad etiladi.

CSRF token session-based authentication tizimlarida keng ishlatiladi.

OAuth token

OAuth tokenOAuth protokoli orqali beriladigan access yoki refresh token. U foydalanuvchi yoki ilova nomidan tashqi resurslarga kirish uchun ishlatiladi.

OAuth token quyidagi holatlarda uchraydi:

OAuth token scope va expiration bilan bog‘liq bo‘ladi.

Scope

Scope — token qanday ruxsatlarga ega ekanini bildiradigan authorization doirasi.

Scope misollari:

  • read:profile;
  • write:profile;
  • read:email;
  • manage:users;
  • repo;
  • openid.

Masalan, token faqat email o‘qish scope’iga ega bo‘lsa, u profilni tahrirlash huquqini bermaydi.

Token va session farqi

Token va session foydalanuvchi holatini boshqarishda ishlatiladi, lekin ishlash usuli farq qiladi.

  • Session odatda server tomonda saqlanadi;
  • Token client tomonidan yuboriladigan qiymat sifatida ishlaydi;
  • session ID token sifatida ishlashi mumkin;
  • JWT token ichida ma’lumot saqlashi mumkin;
  • sessionni server storage orqali bekor qilish osonroq;
  • stateless token alohida session storage talab qilmasligi mumkin.

Har ikki yondashuv authentication jarayonlarida ishlatiladi.

Cookie tokenni saqlash yoki uzatish vositasi bo‘lishi mumkin. Token esa authentication yoki authorization qiymatidir.

Farqlar:

  • Cookie brauzer saqlash mexanizmi;
  • Token ruxsat yoki identity qiymati;
  • token cookie ichida saqlanishi mumkin;
  • cookie serverga avtomatik yuboriladi;
  • token header orqali ham yuborilishi mumkin;
  • cookie domain, path va flaglarga ega bo‘ladi.

Masalan, JWT token HttpOnly cookie ichida saqlanishi mumkin.

Token va API

API token orqali so‘rov yuborayotgan foydalanuvchi yoki service’ni aniqlaydi.

API’da token quyidagilar uchun ishlatiladi:

Masalan, GET /api/profile so‘rovi access token orqali qaysi foydalanuvchi profilini qaytarishni aniqlaydi.

Token va microservice

Microservice arxitekturasida token service’lar orasidagi ishonch va ruxsatni boshqarishda ishlatiladi.

Microservice tokenlari quyidagilar uchun ishlatiladi:

Masalan, API Gateway tokenni tekshiradi va user ma’lumotlarini ichki service’larga uzatadi.

Token va CI/CD

CI/CD tizimlarida token deployment, registry, repository va cloud service’larga kirish uchun ishlatiladi.

CI/CD tokenlari quyidagilarda uchraydi:

Bunday tokenlar maxfiy qiymat sifatida saqlanadi va pipeline ichida ishlatiladi.

Token xavfsizligi

Token maxfiy qiymat bo‘lgani uchun uning xavfsizligi muhim hisoblanadi.

Token xavfsizligida quyidagilar uchraydi:

  • tokenni kodga yozmaslik;
  • tokenni logga chiqarmaslik;
  • HTTPS orqali yuborish;
  • muddat belgilash;
  • refresh tokenni alohida himoyalash;
  • kerak bo‘lsa tokenni revoke qilish;
  • minimal scope berish;
  • secret manager ishlatish;
  • XSS va CSRF xavflarini hisobga olish.

Token tarqalib ketsa, u orqali foydalanuvchi yoki service nomidan so‘rov yuborilishi mumkin.

Token leak

Token leak — tokenning ruxsatsiz odam yoki tizim qo‘liga tushib qolishi.

Token leak quyidagi joylarda yuz berishi mumkin:

Token leak authentication va authorization tizimlariga xavf tug‘diradi.

Dasturlashdagi o‘rni

Token zamonaviy web, mobile, API va distributed tizimlarda identity va access boshqaruvi uchun ishlatiladigan muhim mexanizmdir. U authentication, authorization, session, integration va deployment jarayonlari bilan bog‘liq ishlaydi.

Token quyidagi loyihalarda uchraydi:

Token foydalanuvchi, ilova yoki service’ni tizim oldida tanitish va ruxsatlarni boshqarish uchun ishlatiladigan asosiy xavfsizlik elementlaridan biridir.

Bog‘liq tushunchalar

Authentication, Authorization, Session, Cookie, JWT, OAuth, Access token, Refresh token, API key, CSRF token, Bearer token, Security