Битлента
Словарь терминов3 мин чтения·

OAuth 2.0: как приложение получает доступ к данным без вашего пароля

Как работает OAuth 2.0: роли, потоки авторизации, токены доступа и области прав. Что показывает экран согласия и как отозвать выданный доступ.

Ключ от одной комнаты вместо ключа от дома

OAuth 2.0 это протокол, позволяющий приложению получить ограниченный доступ к вашим данным в другом сервисе, не зная вашего пароля. Классический пример: программа для резервного копирования просит доступ к файлам в облачном хранилище. Без OAuth пришлось бы отдать ей логин и пароль, а значит, полный доступ навсегда. С OAuth вы выдаёте ей временный ключ, который открывает только нужную комнату.

Важно, что OAuth это про авторизацию, то есть про права, а не про подтверждение личности. Для входа существует надстройка OpenID Connect.

Роли и шаги

В схеме четыре роли. Владелец ресурса, то есть вы. Клиент, приложение, которое просит доступ. Сервер авторизации, который проверяет вас и выдаёт токены. Сервер ресурсов, где лежат данные и который принимает токены.

В основном потоке, называемом кодом авторизации, приложение перенаправляет вас на страницу сервиса. Вы входите там, видите экран согласия со списком запрашиваемых прав и разрешаете. Сервис возвращает приложению короткоживущий код, который приложение обменивает на токен доступа, обращаясь напрямую к серверу авторизации. Современные рекомендации дополняют поток механизмом PKCE, защищающим код от перехвата, особенно для мобильных и браузерных приложений.

Токены и области прав

Токен доступа это строка, которую приложение прикладывает к запросам к API. Живёт он недолго, обычно от минут до часа. Для продления работы выдаётся токен обновления, который позволяет получать новые токены доступа без повторного согласия, и потому охраняется строже.

Области прав, scopes, ограничивают полномочия: «чтение календаря», «отправка писем» или «доступ к профилю». Смысл в принципе минимальных прав. Если фонарик просит доступ ко всей почте, это повод отказаться. Формат токена бывает разным, иногда это JWT, иногда непрозрачная строка, и об этом рассказано на отдельной странице.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Типичные проблемы: OAuth 2.0

Источники ошибок связаны с реализацией и с людьми. Приложения с неправильной проверкой адреса возврата позволяют перехватить код. Утёкший токен работает как ключ до истечения срока или отзыва. Пользователи привыкают нажимать «разрешить» не читая, и фишинговые кампании используют это: вредоносное приложение просит права на вашу почту, а вход происходит на настоящей странице сервиса, потому что пароль здесь и не крадут.

Такие приложения получили название согласия-ловушки, и защита от них состоит в внимательном чтении запрашиваемых прав и проверке названия приложения и издателя.

Как проверить и отозвать доступ

В настройках безопасности большинства крупных сервисов есть раздел «приложения с доступом к аккаунту» или «сторонние подключения». В нём видны приложения, дата выдачи и права. Отзыв доступа немедленно делает токены недействительными.

Проведите ревизию: удалите то, что не помните или не используете, обратите внимание на широкие права вроде полного доступа к почте и файлам. Смена пароля отзыв токенов не всегда включает, так что пройдитесь по списку вручную, если подозреваете компрометацию.

Разница между потоками

Помимо основного потока с кодом авторизации, существуют другие. Поток для устройств без клавиатуры, например телевизора, показывает короткий код, который вводят на телефоне. Поток клиентских учётных данных применяется между серверами без участия человека. Устаревший неявный поток, при котором токен возвращался прямо в адресную строку браузера, сегодня не рекомендуется из-за рисков утечки.

Выбор потока зависит от типа приложения. Для мобильных и одностраничных приложений практика склоняется к коду авторизации с PKCE. Для пользователя различия скрыты: он видит знакомый экран согласия. Но именно правильный выбор потока определяет, насколько легко будет перехватить выданный доступ.

Если сомневаетесь в приложении, посмотрите, какого издателя указывает экран согласия и совпадает ли название с тем, чем вы собирались пользоваться. Лишний запрос прав на чтение почты у простого редактора картинок это повод нажать «отклонить».

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
oauthавторизациятокеныкибербезопасность

Часто задаваемые вопросы

Читайте также