OpenID Connect — bu OAuth 2.0 ustiga qurilgan autentifikatsiya protokoli boʻlib, standart avtorizatsiyaga foydalanuvchi shaxsini tekshirish qatlamini qoʻshadi. Sof OAuth 2.0 dan farqli oʻlaroq, access token foydalanuvchi haqida maʼlumotsiz resurslarga kirishni taʼminlaydi, OpenID Connect esa ID Token — tasdiqlangan profil maʼlumotlari bilan JWT qaytaradi. OpenID Foundation, 2026 maʼlumotlariga koʻra, protokol barcha yirik Identity Provider lar — Google, Apple, Microsoft va Auth0 tomonidan qoʻllab-quvvatlanadi.
Asosiy
OpenID Connect (OIDC) — OAuth 2.0 ustiga qatlam sifatida qurilgan ochiq autentifikatsiya protokoli. U OAuth 2.0 da yetishmagan narsani standartlashtiradi: foydalanuvchi shaxsini tekshirish. Agar OAuth 2.0 “qaysi ilova kirish huquqiga ega?” degan savolga javob bersa, OIDC “aynan shu foydalanuvchi kim?” degan savolga javob beradi.
Protokol ID Token — JSON Web Token (JWT) dan foydalanadi, u claims lar toʻplamini oʻz ichiga oladi: subyektning noyob identifikatori, email, ism, avatar, chiqarish va muddat tugash vaqtlari. Mijoz ilovasi ID Token ni kriptografik tekshirishi mumkin — server token ni RS256 yoki ES256 bilan imzolaydi, mijoz esa JWKS endpoint orqali olingan ochiq kalit bilan imzoni tekshiradi.
Auth0, 2025 maʼlumotlariga koʻra, uchinchi tomon autentifikatsiyasidan foydalanadigan mobil ilovalarning 78% dan ortigʻi Google Sign-In yoki Sign in with Apple orqali OIDC ni qoʻllaydi. Bu protokolni social login va korporativ autentifikatsiya uchun de-fakto standartga aylantiradi.
OpenID Connect mijoz turiga qarab bir necha oqim (flow) larni belgilaydi. Mobil ilovalar uchun standart Proof Key for Code Exchange (PKCE) bilan Authorisation Code Flow hisoblanadi — qurilmada client secret boʻlmasa ham himoyani taʼminlaydi.
Identity Provider (IdP) — foydalanuvchi autentifikatsiyasini amalga oshiradigan va tokenlarni chiqaradigan server. OIDC ekotizimida IdP ikkita asosiy endpoint ni taqdim etadi: foydalanuvchi kirishi uchun Authorisation Endpoint va kodni tokenlarga almashtirish uchun Token Endpoint. Mijoz bu endpoint larning manzillarini Discovery URL — provayderning barcha konfiguratsiyasini qaytaradigan JSON hujjat boʻlgan standart yoʻl /.well-known/openid-configuration orqali bilib oladi.
Har bir IdP oʻzining JWKS (JSON Web Key Set) — ID Token imzosini tekshirish uchun ochiq kalitlar toʻplamini nashr etadi. Mijoz bu kalitlarni keshlaydi va serverga murojaat qilmasdan har bir olingan token ni tekshirish uchun foydalanadi.
Authorisation Code Flow — uch bosqichli jarayon. Avval mobil ilova code verifier (43–128 belgidan iborat tasodifiy satr) va uning hash i — code challenge ni yaratadi. Ilova client_id, redirect_uri, scope (openid profile email) va code challenge ni oʻz ichiga olgan URL bilan brauzer yoki WebView ochadi. Foydalanuvchi IdP sahifasida kirish maʼlumotlarini kiritadi va rozilikni tasdiqlaydi. IdP brauzerni authorisation code bilan ilovaga qayta yoʻnaltiradi.
Ikkinchi bosqichda ilova serverning Token Endpoint iga authorisation code, code verifier va client_id ni yuboradi. Server code verifier ni saqlangan code challenge ga nisbatan tekshiradi va ID Token, Access Token hamda ixtiyoriy Refresh Token ni qaytaradi. Uchinchi bosqichda ilova ID Token ni tekshiradi: JWKS orqali imzoni tasdiqlaydi, issuer (iss), audience (aud) va muddat tugashini (exp) tekshiradi. Agar tekshiruv muvaffaqiyatli boʻlsa — foydalanuvchi autentifikatsiya qilingan hisoblanadi.
PKCE (Proof Key for Code Exchange) ochiq mijozlardagi standart Authorisation Code Flow ga xos zaiflikni bartaraf qiladi. Mobil ilova client secret ni xavfsiz saqlay olmagani uchun, authorisation code ni ushlab qolgan tajovuzkor uni tokenlarga almashtirishi mumkin edi. Code verifier bu muammoni hal qiladi: kod ushlab qolinsa ham, original code verifier boʻlmasa almashtirish mumkin emas. OAuth Security Best Practices (RFC 9700) mobil ilovalarni ham oʻz ichiga olgan barcha ochiq mijozlar uchun PKCE ni talab qiladi.
OpenID Connect ikkita tubdan farqli token qaytaradi: ID Token va Access Token. ID Token — har doim JWT, mijoz uni mustaqil oʻqishi va tekshirishi mumkin. U foydalanuvchi haqida maʼlumotni oʻz ichiga oladi va API ga kirish uchun emas, balki autentifikatsiya uchun ishlatiladi.
ID Token Base64 da kodlangan va nuqtalar bilan ajratilgan header, payload va signature dan iborat. Header alg (imzo algoritmi) va kid (kalit identifikatori) ni oʻz ichiga oladi. Payload majburiy claims larni oʻz ichiga oladi: iss (issuer — token chiqaruvchi), sub (subject — foydalanuvchining noyob ID si), aud (audience — mijoz identifikatori), exp (expiration), iat (issued at). Ixtiyoriy — name, email, picture, locale.
Google dan ID Token ning dekodlangan payload namunasi:
{
"iss": "https://accounts.google.com",
"sub": "1234567890",
"aud": "my-app-123.apps.googleusercontent.com",
"exp": 1812345678,
"iat": 1812342078,
"name": "Ivan Petrov",
"email": "ivan@example.com"
}
Access Token — mijoz API soʻrovlarida uzatadigan opaque token (ixtiyoriy satr) yoki JWT. ID Token dan farqli oʻlaroq, access token mijoz tomonidan oʻqish uchun moʻljallanmagan — uning formati va mazmuni faqat resurs serveri va avtorizatsiya serveriga maʼlum. Access Token scope ga — kirish huquqlari cheklanishiga — va qisqa umrga ega, odatda 15–60 daqiqa.
OAuth 2.0 — ilovaning foydalanuvchi resurslariga qanday kirishini belgilaydigan avtorizatsiya ramkasidir. OpenID Connect — bu jarayonga autentifikatsiya qoʻshadigan qatlam. Asosiy farq: OAuth 2.0 token formatini belgilamaydi va ilovaga soʻrovni aynan kim qilganini bilish imkonini bermaydi.
| Parametr | OAuth 2.0 | OpenID Connect |
|---|---|---|
| Maqsad | Resurslarga kirish avtorizatsiyasi | Autentifikatsiya + avtorizatsiya |
| Shaxsiy tokeni | Yoʻq | ID Token (JWT) |
| Scope | api:read, api:write | openid, profile, email |
| UserInfo endpoint | Ixtiyoriy | Standartlashtirilgan |
| Single Logout | Yoʻq | OpenID Connect Session Management spetsifikatsiyasi |
OpenID Connect ilova foydalanuvchini tanib olishi kerak boʻlganda zarur, shunchaki uning maʼlumotlariga kirish olish uchun emas. Agar “Google bilan kirish” yoki “Sign in with Apple” dan foydalansangiz — bu OIDC. Agar ilovangiz foydalanuvchi nomidan uchinchi tomon API sini chaqirsa va uning shaxsini bilish shart boʻlmasa — sof OAuth 2.0 yetarli. Korporativ tizimlar uchun Single Sign-On (SSO) bilan tanlov aniq: faqat OpenID Connect, chunki u standartlashtirilgan chiqish va seans boshqaruvini taʼminlaydi.
OpenID Connect ni mobil ilovaga integratsiya qilish mos kutubxonani tanlash va oqimni toʻgʻri konfiguratsiya qilishni talab qiladi. Android uchun credential manager (AndroidX Credentials) yoki AppAuth kutubxonasi ishlatiladi. iOS uchun — ASWebAuthenticationSession bilan AuthenticationServices framework i.
Quyida AppAuth-Android kutubxonasi yordamida Authorisation Code Flow ni ishga tushirish namunasi keltirilgan. Ilova avtorizatsiya soʻrovini yaratadi, foydalanuvchi kirishi uchun brauzer ochadi va tokenlar bilan callback ni qayta ishlaydi.
val authRequest = AuthorizationRequest.Builder(
serviceConfig,
clientId,
"code",
Uri.parse("com.example.app:/oauth")
)
.setScope("openid profile email")
.build()
val authService = AuthorizationService(this)
val intent = authService.getAuthorizationRequestIntent(authRequest)
startActivityForResult(intent, REQUEST_CODE)
override fun onActivityResult(
requestCode: Int,
resultCode: Int,
data: Intent?
) {
if (requestCode == REQUEST_CODE) {
val response = AuthorizationResponse.fromIntent(data)
if (response?.authorizationCode != null) {
exchangeCodeForTokens(response.authorizationCode)
}
}
}
Apple dan ASWebAuthenticationSession iCloud Keychain orqali SSO qoʻllab-quvvatlashi bilan OIDC oqimi uchun oʻrnatilgan brauzer taqdim etadi. Sessiya avtorizatsiya URL i bilan ishga tushiriladi, callback completion handler orqali qayta ishlanadi.
OpenID Connect uchun kutubxona tanlashda PKCE ni qutidan chiqqanday qoʻllab-quvvatlashini hisobga oling: AppAuth-Android va AppAuth-iOS PKCE ni standart sifatida qoʻllab-quvvatlaydi. Firebase Authentication Google Sign-In, Sign in with Apple va Microsoft uchun OIDC dan foydalanadi — ishlab chiqaruvchi oqimni qoʻlda amalga oshirishi shart emas. Oʻz IdP si boʻlgan korporativ tizimlar uchun (masalan, Keycloak yoki Okta) AppAuth konfiguratsiya va xatolarni boshqarish ustidan toʻliq nazorat bilan standart tanlov boʻlib qoladi.
let authURL = URL("https://accounts.google.com/o/oauth2/v2/auth")!
let callbackURL = URL("com.example.app://oauth")!
let session = ASWebAuthenticationSession(
url: authURL,
callbackURLScheme: callbackURL.scheme!
) { url, error in
guard let url = url else { return }
let components = URLComponents(url: url)
let code = components?.queryItems?.first(where: { $0.name == "code" })?.value
if let code = code { exchangeCode(code) }
}
session.start()
Koʻp beriladigan savollar
OpenID Connect — OAuth 2.0 ustidagi autentifikatsiya qoʻshadigan qatlamdir. OAuth 2.0 faqat resurslarga kirish avtorizatsiyasi uchun javobgardir. OIDC ID Token — foydalanuvchi maʼlumotlari bilan JWT ni joriy qiladi, UserInfo endpoint ini standartlashtiradi va Single Sign-On va chiqish imkoniyatlarini qoʻshadi.
Mobil ilovalar uchun PKCE bilan Authorisation Code Flow tavsiya etiladi. Client secret talab qilmaydi, authorisation code ni ushlab qolishdan himoya qiladi va barcha yirik Identity Provider lar tomonidan qoʻllab-quvvatlanadi. Implicit Flow eskirgan va yangi loyihalarda ishlatilmasligi kerak.
ID Token uch bosqichda tekshiriladi: JWKS endpoint dan ochiq kalit bilan imzoni tasdiqlash, claims larni (iss, aud, exp) tekshirish va payload ni dekodlash. Koʻpchilik SDK lar — AppAuth, MSAL, Google Sign-In — token olingandan soʻng bu tekshirishni avtomatik bajaradi.
Openid scope i — OIDC soʻrovini oddiy OAuth 2.0 dan farqlaydigan majburiy parametrdir. Usiz server ID Token qaytarmaydi. Qoʻshimcha scope lar — profile, email, address — token tarkibiga foydalanuvchi haqidagi qaysi aniq claims lar kiritilishini belgilaydi.
Texnik jihatdan — ha, Resource Owner Password Credentials oqimi orqali, lekin tavsiya etilmaydi. Brauzer oqimi hisob maʼlumotlarining izolyatsiyasini taʼminlaydi — ilova foydalanuvchi parolini hech qachon koʻrmaydi. Apple va Google oʻz xizmatlari uchun brauzer autentifikatsiyasini talab qiladi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.