OAuth #
OAuth придумали для одной простой, но болезненной задачи: дать одному сервису доступ к вашим данным на другом сервисе, не выкладывая ни логин, ни пароль. То есть вы вроде бы «разрешаете доступ», но свои учётные данные при этом никому не отдаёте.
Самый понятный пример — кнопка «Войти через Google» или разрешение какому-нибудь приложению постить за вас. Вы не вводите пароль от Google внутри этого приложения. Вместо этого вас перекидывают на страницу Google, вы подтверждаете вход там, а дальше Google уже выдаёт стороннему сервису временный токен доступа. Этот токен строго ограничен: у него есть срок жизни и набор прав — например, только читать профиль или публиковать посты, но не менять настройки безопасности.
Тут важный момент, который часто путают: OAuth сам по себе не занимается аутентификацией в смысле «кто вы такой». Он работает уже после того, как вы вошли. Его задача — делегировать часть ваших прав другому приложению. То есть пользователь идентифицирован и залогинен, а OAuth просто оформляет официальное «разрешаю действовать от моего имени в таких-то рамках».
В реальном мире прижилась в основном версия OAuth 2.0 — более современная и гибкая. Её используют практически все крупные игроки: Google, Facebook, Microsoft, GitHub и огромное количество других сервисов, включая мобильные приложения.
За счёт OAuth стало проще строить экосистемы, где сервисы безопасно общаются друг с другом по API, обмениваются доступами, но при этом пароли не разъезжаются по третьим системам. Пользователям тоже проще: один раз зашёл в основной аккаунт — и дальше по согласованию подключаешь к нему внешние приложения. Это сейчас базовый кирпич авторизационных схем в интернете там, где нужна интеграция и работа через доверенные каналы.
