Как это работает: вход на сайты через соцсети

Как это работает: вход на сайты через соцсети

Всё дело в единой авторизации.

Часто на сайтах вам могут предложить войти с помощью Google, Facebook или ВКонтакте. Если у вас есть аккаунт в одном из этих сервисов, вам не нужно будет регистрироваться с нуля: заполнять имя, почту и ставить свою фотографию — всё это будет сделано автоматически. Разберёмся, как это работает и насколько это безопасно.

Это история о технологии OAuth2.

Как это работает: вход на сайты через соцсети
В Яндекс можно войти через Гугл. Как тебе такое, юзернейм?

Для чего это нужно

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

Параллельно с этим в интернете есть сервисы, которыми пользуются все: Яндекс, Гугл, фейсбук или Вконтакте. Почему бы не брать данные о пользователе с этих сервисов?

Для этого и придумали OAuth.

OAuth — это как договор между сайтами

Яндекс, Гугл или любой другой сервис, который разрешает пользоваться своим пропуском, должны принять единый протокол обмена данных. Если по-простому, то они должны договориться: 

«Мы даём друг другу данные вот в таком формате, мы принимаем их в этом формате, мы друг другу доверяем».

Эти договорённости закрепили в едином стандарте авторизации — OAuth. В нём написано, как выдавать пропуска, как их проверять и что делать в разных случаях.

Как работает единая авторизация

Для пользователя всё выглядит просто: нажал «Войти через Яндекс», подтвердил Яндексу своё желание войти на нужный сайт, и всё — вы уже зарегистрировались на новом сайте и можете им пользоваться. Но что происходит под капотом?

Как это работает: вход на сайты через соцсети

Когда посетитель, например, сайта о программировании, нажимает «Войти через Яндекс», этот сайт отправляет в Яндекс запрос и говорит: «Тут кто-то хочет войти на мой сайт через ваш сервис, можете разобраться?»:

Как это работает: вход на сайты через соцсети

Когда Яндекс получает такой запрос, ему нужно понять, что за посетитель пришёл на сайт и есть ли у него аккаунт Яндекса. Для этого он показывает всплывающее окно, где посетитель может войти в свой Яндекс-аккаунт. Это нужно, чтобы сервис понимал, на чьё имя выдавать пропуск для сайта. Если пользователь уже залогинен в Яндексе, его сразу узнают. 

Как это работает: вход на сайты через соцсети

Как только посетитель вводит свой логин и пароль, Яндекс узнаёт его и спрашивает, доверяет ли он этому сайту о программировании и может ли Яндекс поделиться с сайтом данными о его имени и почте:

Как это работает: вход на сайты через соцсети

Дальше Яндекс отдаёт ваши данные сайту, он вас узнаёт, и готово:

Как это работает: вход на сайты через соцсети

Насколько это безопасно

Каждый сайт, который использует OAuth, сам определяет, какие данные о пользователе они хотят увидеть. Например, одному сайту достаточно знать ваше имя и почту, а другому хочется скачать вашу фотографию и узнать дату рождения. 

Когда вы будете входить через OAuth, сервис вам скажет: «Вот какие данные у меня запрашивают. Давать доступ?». Когда вы разрешите доступ, эти данные перейдут на сайт. Откажетесь — не перейдут. 

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

✅ Через OAuth нельзя отправить сообщения от вашего имени или сделать пост в вашей ленте новостей. Но, опять же, если это не OAuth, а отдельное приложение для фейсбука или VK, то возможно и такое. Помните все эти игры, которые постят от имени игроков «Я собрал капусту на своей ферме»? Вот это они.

✅ Через OAuth точно не передаётся ваш пароль от Яндекса, Гугла и других сервисов. Сервисы хранят пароли в зашифрованном виде, поэтому даже при всём желании не смогли бы его передать. 

Можно ли этому доверять?

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

⚠️ Во всех важных сервисах включайте двухфакторную авторизацию: чтобы не только вводить пароль, но и получать СМС.

⚠️ Если сервис поддерживает приложение-аутентификатор — используйте его. Например, в Яндексе есть «Ключ», а в Гугле — Authenticator. Это специальные приложения, которые создают дополнительный слой защиты поверх вашего логина и пароля. 

⚠️ Если вы только что пользовались сервисами Яндекса или Гугла и тут вас просят вновь ввести логин и пароль — закройте эту страницу. Яндекс и Гугл помнят вас и не попросят пароль лишний раз. 

Текст и иллюстрации

Миша Полянин


Редактор

Максим Ильяхов


Корректор

Ира Михеева


Иллюстратор

Даня Берковский


Вёрстка

Маша Дронова


Доставка

Олег Вешкурцев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
easy