Эти термины часто путают, хотя решают разные задачи. Разобраться в них важно всем, кто работает с веб‑сервисами, API, мобильными приложениями и SSO.
Определения
Аутентификация — подтверждение личности пользователя.
Пример: вы ввели логин и пароль, система поняла, что это именно вы.
Авторизация — проверка, что вам разрешено делать.
Пример: после входа обычный пользователь видит свой профиль, а администратор — панель управления.
Технологии
Теперь к технологиям:
JWT (JSON Web Token) — это формат токена, а не протокол входа.
JWT содержит данные в виде JSON и подписывается сервером. Обычно используется для передачи информации о пользователе и правах доступа между клиентом и сервером.
Плюсы JWT:
не требует хранения сессии на сервере
удобен для API и микросервисов
легко масштабируется
Минусы:
токен сложно отозвать до истечения срока
при ошибках настройки возможны риски безопасности
нельзя хранить чувствительные данные в открытом виде внутри payload
OAuth 2.0 — протокол делегированной авторизации.
Он позволяет одному сервису дать другому ограниченный доступ к данным пользователя без передачи пароля.
Пример: вы входите в приложение через Google, и оно получает доступ только к вашему email или календарю — в рамках выданных разрешений.
Важно: OAuth 2.0 сам по себе не отвечает за идентификацию пользователя, он про доступ к ресурсам.
OpenID Connect (OIDC) — это слой аутентификации поверх OAuth 2.0.
Если OAuth 2.0 говорит: «этому приложению можно дать доступ», то OpenID Connect отвечает: «вот кто именно вошёл в систему».
OIDC добавляет:
ID Token — обычно в формате JWT
стандартный способ получения информации о пользователе
сценарии единого входа (SSO)
Краткая схема
JWT — формат токена
OAuth 2.0 — авторизация и делегирование доступа
OpenID Connect — аутентификация поверх OAuth 2.0
Где что использовать
JWT — для API, access token, stateless-сценариев
OAuth 2.0 — когда нужно безопасно выдать доступ стороннему приложению
OpenID Connect — когда нужен вход через Google, Microsoft, Keycloak, Auth0 и другие identity-платформы
⚠️ Частая ошибка — говорить «авторизация через JWT». Корректнее: JWT используется как токен в механизме аутентификации или авторизации, но сам по себе ничего не «авторизует».
Итог
нужен формат токена — JWT
нужен доступ к API от имени пользователя — OAuth 2.0
нужен логин и подтверждение личности — OpenID Connect
Полезно сохранить, если работаете с backend, frontend, мобильной разработкой или DevOps 🧠
Заодно загляните в подборку каналов про IT — там много полезного по архитектуре, безопасности, разработке и карьере.