Skip to content

OIDC vs OAuth

Что такое OAuth 2.0?

OAuth 2.0 — это протокол авторизации.

Он позволяет сторонним приложениям получать ограниченный доступ к ресурсам пользователя без передачи логина и пароля.

Пример:

Приложение получает доступ к Google-диску пользователя для чтения файлов, не зная его пароля.

Что такое OIDC (OpenID Connect)?

OIDC — это надстройка над OAuth 2.0, которая добавляет аутентификацию.

Она позволяет стороннему приложению подтвердить личность пользователя и получить его профиль.

Пример:

Войти на сайт через «Войти с Google» — это OIDC.

Приложение получает подтверждение, кто вы, и ваш email/avatar/имя.


Сравнение

OAuth 2.0 OpenID Connect (OIDC)
Тип Авторизация Аутентификация + авторизация
Цель Доступ к ресурсам Подтверждение личности
ID токен ❌ Нет ✅ Есть
Access токен ✅ Есть ✅ Есть
Протокол основан на HTTP + токены OAuth 2.0
Используется для API доступа Single Sign-On (SSO)

Пример потока OIDC (логин через Google)

  1. Пользователь нажимает «Войти с Google».

  2. Браузер перенаправляется на Google (авторизация).

  3. Пользователь логинится и подтверждает доступ.

  4. Google перенаправляет браузер обратно на сайт, передавая authorization code.

  5. Сайт отправляет code на backend и получает от Google:

ID Token → содержит информацию о пользователе (email, имя, sub — уникальный ID).

Access Token → можно использовать для доступа к API Google (если запрашивали).

  1. Сайт проверяет подпись ID токена, достаёт профиль пользователя и логинит его.

🧾 Пример ID токена (JWT)

Это обычный JWT, который можно декодировать:

{
  "iss": "https://accounts.google.com",
  "sub": "103293882193827192",
  "aud": "client-id.apps.googleusercontent.com",
  "email": "user@example.com",
  "email_verified": true,
  "exp": 1711747200
}

📌 Главное различие в одном предложении:

OAuth: «Ты можешь использовать мой доступ к ресурсу.»

OIDC: «Вот доказательство, кто я такой.»