Что такое OAuth 2.0

«Что такое OAuth 2.0» — вопрос из категории Безопасность, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

OAuth 2.0 — это протокол авторизации, позволяющий приложениям получать ограниченный доступ к пользовательским данным на других сервисах без раскрытия пароля.

Ключевые компоненты:

  • Resource Owner (пользователь)
  • Client (приложение, запрашивающее доступ)
  • Authorization Server (выдает токены)
  • Resource Server (API, защищенное OAuth)

Типы потоков (Grant Types):

  1. Authorization Code (веб-приложения)
  2. Implicit (упрощенный, но менее безопасный)
  3. Client Credentials (для сервис-сервисной аутентификации)
  4. Password (редко используется, требует доверия)

Пример запроса Authorization Code:

GET /authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=CALLBACK_URL&scope=read

После подтверждения пользователь перенаправляется с code, который обменивается на токен доступа.