Как проходит авторизация с помощью OAuth?

протокол, обеспечивающий безопасный доступ разделяет аутентификацию пользователя и выдачу разрешений приложениям клиентское приложение получает токен доступа от сервера авторизации пользователь подтверждает…

Короткий ответ

Что ответить на собеседовании

протокол, обеспечивающий безопасный доступ разделяет аутентификацию пользователя и выдачу разрешений приложениям клиентское приложение получает токен доступа от сервера авторизации пользователь подтверждает предоставляемые приложению права на экране OAuth consent screen токен доступа применяют для обращения к защищённому API поддерживает различные grant types (authorization code, implicit, client credentials) позволяет предоставить минимальный доступ без передачи пользовательского пароля

Подробный разбор

Ответ с пояснениями

Как проходит авторизация с помощью OAuth?

  • протокол, обеспечивающий безопасный доступ
  • разделяет аутентификацию пользователя и выдачу разрешений приложениям
  • клиентское приложение получает токен доступа от сервера авторизации
  • пользователь подтверждает предоставляемые приложению права на экране OAuth consent screen
  • токен доступа применяют для обращения к защищённому API
  • поддерживает различные grant types (authorization code, implicit, client credentials)
  • позволяет предоставить минимальный доступ без передачи пользовательского пароля

Развёрнутый ответ

Основной ответ

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

Ключевые моменты

  • Взаимодействуют три участника: ресурсный сервер, на котором находятся данные, сервер авторизации, выдающий токены, и клиентское приложение, запрашивающее доступ.
  • Сначала клиент перенаправляет пользователя на сервер авторизации. Там пользователь выполняет вход и подтверждает предоставление прав. После этого сервер возвращает authorization code, который клиент обменивает на access token — краткоживущий ключ для выполнения API-запросов.
  • OAuth поддерживает несколько потоков (grant types): Authorization Code применяется серверными приложениями, Implicit — SPA, Client Credentials — для серверного взаимодействия без участия пользователя, а Refresh Token позволяет получить новый access token без повторной авторизации.
  • OAuth 2.0 сам по себе не выполняет аутентификацию. Для подтверждения личности пользователя применяют OpenID Connect — расширение OAuth.

Практический контекст

OAuth часто используют, когда приложению нужно, например, публиковать фотографии или читать почту пользователя в Google, но при этом нельзя требовать пароль внутри приложения. В крупных системах, таких как Facebook Login и Google Sign-In, используется OAuth 2.0 с дополнительными мерами защиты: PKCE для SPA, HTTPS для защиты token, ограничением scope доступа и мониторингом злоупотреблений.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку