Кнопка удобная: не надо придумывать пароль, не надо подтверждать почту, два клика — и вы внутри. Пользуются ей почти все, а вот что именно происходит при нажатии, представляют немногие. Между тем ответ на этот вопрос виден прямо в адресной строке, и посмотреть его стоит один раз, чтобы дальше решать осознанно.
Что происходит при нажатии
Сайт перенаправляет вас на страницу входа Google (или Яндекса, или кого угодно ещё) — и в этот перенаправляющий адрес он складывает свои требования. Выглядит это примерно так:
https://accounts.google.com/o/oauth2/v2/auth ?client_id=407408718192.apps.googleusercontent.com &redirect_uri=https://example-shop.ru/auth/callback &response_type=code &scope=openid email profile https://www.googleapis.com/auth/contacts.readonly &access_type=offline &prompt=consent &state=x7fa2c31b
Самый интересный параметр — scope, то есть перечень запрашиваемых прав. Здесь их четыре:
openid и profile — идентификатор пользователя, имя и аватар. email — адрес почты. А contacts.readonly — доступ к списку ваших контактов, и вот это уже совсем не то, что требуется интернет-магазину для входа.
Второй важный параметр — access_type=offline. Он означает, что сайт хочет работать с вашими данными не только пока вы на нём, но и потом, в фоне, когда вы уже ушли и забыли. Технически это запрос долгоживущего пропуска.
Вы соглашаетесь не на «вход», а на список прав, который сайт составил сам. Экран согласия его показывает, но в свёрнутом и доброжелательном виде, так что читают его единицы.
Как посмотреть, на что вы соглашаетесь
Способ работает на любом сайте и занимает секунды.
Нажмите кнопку входа и, пока грузится страница провайдера, посмотрите в адресную строку. Скопируйте адрес в блокнот и найдите в нём scope=. Всё, что там перечислено, вы отдаёте, если нажмёте «Разрешить».
Ориентир для оценки: для входа достаточно openid, profile и email. Любое право сверх этого должно быть объяснимо тем, что сайт делает. Календарю нужен доступ к календарю, почтовому клиенту — к почте. Магазину не нужно ни то ни другое.
Второй способ — постфактум, для того что уже подключено:
Google:
myaccount.google.com/permissionsЯндекс:
id.yandex.ru, раздел безопасностиMicrosoft:
account.microsoft.com/privacy/app-access
Стоит зайти туда прямо сейчас: у среднего человека там обнаруживается десяток сервисов, из которых половина забыта, а половина всё ещё имеет доступ к почте или файлам.
Чем это лучше обычной регистрации
Справедливости ради, у этого способа есть настоящие преимущества, и их стоит назвать.
Ваш пароль сайту не достаётся. Он его не видит, не хранит и не потеряет при очередной утечке базы — а утекают они регулярно.
Двухфакторная защита достаётся вам автоматически: вход защищён настройками вашего аккаунта у провайдера, а не тем, что придумал разработчик сайта.
Доступ отзывается в одном месте и мгновенно, без переписки с поддержкой сайта.
И у сайта нет вашего пароля, который вы, возможно, используете ещё где-то.
Чем это хуже
Теперь обратная сторона, ради которой всё и затевалось.
Единая точка отказа. Потеряли доступ к почтовому аккаунту — потеряли доступ ко всем сервисам, куда входили через него. И наоборот: тот, кто захватил ваш аккаунт у провайдера, автоматически получает всё, что к нему привязано, без единого пароля.
Провайдер видит, где вы регистрируетесь. Каждый вход — это обращение к нему, и список сервисов у него накапливается.
Права даются один раз, а живут долго. Тот самый access_type=offline означает, что доступ не закончится вместе с вашей сессией. Сайт может годами обращаться к вашим данным, и вы об этом не узнаете, пока не заглянете в список подключённых приложений.
Сайт может исчезнуть, а доступ остаётся. Сервис закрылся, продался, сменил владельца — выданное разрешение продолжает действовать, и теперь им распоряжается кто-то другой.
Отвязаться бывает нельзя. Часть сайтов не даёт задать обычный пароль после регистрации через провайдера. Отозвали доступ — потеряли учётную запись вместе с историей заказов.
Практические правила
Для сервисов, где лежит что-то важное, — отдельная регистрация с паролем в менеджере паролей, а не вход через провайдера. Так не появляется цепочки, где всё висит на одном аккаунте.
Для одноразовых и малозначимых сервисов вход через провайдера удобнее и безопаснее, чем очередной пароль, который вы всё равно придумаете плохо.
Перед нажатием — взгляд на scope. Если магазин просит контакты или доступ к файлам, это повод закрыть вкладку, а не думать, зачем ему.
И раз в полгода — ревизия списка подключённых приложений. Пять минут, а вычищается обычно много.
Отдельно для тех, кто такие кнопки делает
Если вы разработчик и подключаете вход через провайдера, есть две вещи, которые делают вашим пользователям заметно лучше.
Запрашивайте минимальный набор прав. Не «на будущее, вдруг пригодится», а ровно то, без чего сегодня не работает. Каждое лишнее право снижает долю тех, кто дойдёт до конца экрана согласия, — то есть вредит ещё и вам.
И оставляйте возможность задать пароль. Пользователь, который однажды потеряет доступ к почте, скажет спасибо, а вы не потеряете клиента вместе с его историей.
Пишу про такое регулярно в телеграм-канале «Бендеров решает»: разборы, практика и истории из SOC.

