протокол, обеспечивающий безопасный доступ разделяет аутентификацию пользователя и выдачу разрешений приложениям клиентское приложение получает токен доступа от сервера авторизации пользователь подтверждает предоставляемые приложению права на экране OAuth consent screen токен доступа применяют для обращения к защищённому API поддерживает различные grant types (authorization code, implicit, client credentials) позволяет предоставить минимальный доступ без передачи пользовательского пароля
Как проходит авторизация с помощью OAuth?
протокол, обеспечивающий безопасный доступ разделяет аутентификацию пользователя и выдачу разрешений приложениям клиентское приложение получает токен доступа от сервера авторизации пользователь подтверждает…
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Как проходит авторизация с помощью 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 доступа и мониторингом злоупотреблений.