Что такое SSO
easy

Что такое SSO

Создайте учётную запись или авторизуйтесь через Гугл

Бывает, что мы заходим на какой-то сайт и для продолжения работы он предлагает нам создать новую учётную запись или авторизоваться с помощью другого сервиса — Яндекса, Эпла, Гугла и так далее. Такой вид авторизации называется SSO. Сегодня поговорим о том, что это за технология, как она работает и похоже ли это на менеджеры паролей, которые мы недавно разбирали.

Для начала вспомним, что такое авторизация и аутентификация:

  • Аутентификация проверяет, что человек, который пытается зайти в свой профиль на сайте — именно он, а не кто-то другой.
  • Авторизация устанавливает, чем этот человек может заниматься на сайте: он просто пользователь, модератор, админ или ещё кто-то? Что ему разрешено делать?

Мы будем говорить про аутентификацию — когда какой-то сайт или приложение получает подтверждение, что вы — это правда вы.

Что такое SSO и где мы его встречаем

SSO — аббревиатура Single Sign On, буквально «единое окно входа». Это такой метод идентификации, когда мы можем получить доступ к разным системам и приложениям, используя один и тот же набор учётных данных (имя пользователя и пароль). SSO ещё часто называют сквозной аутентификацией, потому что метод позволяет авторизоваться на подключённых сайтах с одной и той же учётной записью.

Самый простой пример работы SSO — доступ к разным сервисам одной компании. Если у нас есть учётная запись Яндекс ID, с её помощью мы можем пользоваться почтой Яндекса, слушать песни и подкасты в Яндекс Музыке, делать покупки на Маркете и так далее. Если у нас есть учётная запись Google, мы можем зайти по ней на YouTube и почту Gmail, пользоваться документами Google Docs и так далее.

Но если вы можете зайти на какой-то сайт, используя учётку Яндекса или Гугла, это не означает, что этот сайт тоже принадлежит им. На самом деле эти компании — поставщики SSO: они делятся учётными данными своих пользователей для входа на другие сайты:

Что такое SSO

👉 А вообще кто угодно может сделать у себя такой вход, чтобы пользователи использовали учётные записи популярных сервисов для входа на сайт. У Google есть специальная инструкция на этот счёт.

Как работает SSO

В процессе SSO-аутентификации есть три участника:

  • Пользователь.
  • Поставщик SSO.
  • Сервис-провайдер — сайт или приложение, доступ к которому хочет получить пользователь.
Что такое SSO

Получение доступа через SSO выглядит так:

  1. Пользователь заходит на сайт и выбирает авторизацию через SSO — например, с помощью учётной записи Яндекса или Гугла.
  2. Сайт (он же — сервис-провайдер) проверяет, есть ли у пользователя куки для этого сайта. Если их нет, то сайт просит пройти аутентификацию — например, ввести свой логин и пароль от выбранного SSO-сервиса в отдельном окне.
  3. Чтобы не заставлять пользователя лишний раз вводить логин и пароль от сервиса, где он уже авторизован, поставщик SSO (например, Яндекс) сначала проверяет куки пользователя для своего сервиса. Если куки говорят, что пользователь уже авторизован — у пользователя больше ничего не спрашивается, а SSO-провайдер отправляет на сайт подтверждение входа.
  4. Если пользователь не авторизован у поставщика SSO, то тут уже надо ввести логин и пароль. После этого всё происходит так же, как в п. 4 — SSO-сервис отправляет на сайт подтверждение входа через свою учётку.
  5. В итоге пользователь получает доступ к сайту.
Что такое SSO

Что такое SSO-токен

После входа в SSO-профиль поставщик SSO генерирует зашифрованный файл с информацией о пользователе: имя пользователя, его электронная почта, статус аутентификации. Это и есть SSO-токен. 

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

Токены бывают разных видов в зависимости от настройки SSO:

  • OAuth-токены используются, если единое окно входа работает по протоколу OAuth. Такой токен выглядит как набор символов, например y3_Vdheub7w9bIut67GHeL345gfb5GAnd3dZnf08FRbvjeUFvetYiohGvc.
  • SAML-токены применяются для реализации SSO по протоколу SAM. Это XML-файл длиной около сотни строк с разными данными о пользователе: идентификатор, права доступа, время выполнения проверки подлинности.
  • OpenID Connect обычно содержат информацию о пользователе в формате JSON. Это записи вида ключ-значение.

В чём плюсы SSO

Главный плюс SSO — работа с паролями. 

Без SSO есть такие варианты:

  • придумывать и хранить пароль для каждого сервиса;
  • придумать и хранить один сложный пароль для всех сервисов;
  • пользоваться менеджером паролей;
  • пользоваться только теми приложениями, где не нужна авторизация.

С единым окном входа достаточно создать один аккаунт на все поддерживаемые сайты и приложения:

Что такое SSO

Если в компании настроен SSO, сотрудникам нужно создать одну учётную запись для доступа ко всем нужным корпоративным системам. А при увольнении администратор может закрыть эту запись и отозвать все доступы разом.

В чём минусы

Единое окно входа одновременно является единой точкой уязвимости. Если злоумышленник каким-то образом получит к ней доступ, то сможет зайти на все связанные с SSO ресурсы. 

Нельзя создать аккаунт на сайте и потом привязать к нему SSO — придётся создавать новый профиль.

Не все приложения поддерживают эту технологию, поэтому это не универсальное решение в отличие от менеджера паролей. 

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

А ещё бывает так, что сайт просто не поддерживает SSO-авторизацию. И придётся регистрироваться и входить на сайт по старинке: со своим отдельным логином и паролем.

Отличия от менеджера паролей

Менеджер паролей генерирует сложные пароли и хранит их в защищённой базе данных. Когда менеджер паролей видит, что в его базе есть доступы от сайта, то предлагает их ввести:

Что такое SSO

У менеджера паролей есть такая же уязвимость, как у SSO: если другой человек получит к нему доступ, он получит доступ ко всем аккаунтам из базы. К менеджеру паролей тоже можно поставить двухфакторную аутентификацию.

Основное отличие единого окна входа в том, что с SSO вам вообще не нужны другие пароли. Нужен один аккаунт, с которым вы будете заходить на остальные ресурсы.

Ещё менеджер паролей можно использовать на любом сайте, а SSO — только на тех, которые связаны с поставщиком SSO.

Вот на что это похоже:

  • SSO — универсальный ключ, которым можно открыть те двери, которые связаны с производителем ключа.
  • Менеджер паролей — это связка ключей от всех дверей.

Когда в итоге нужно SSO и кому

Делать раздельные пароли или доверять всё SSO — личный выбор каждого, так как нельзя сказать, что какой-то способ безопаснее.

Один аккаунт SSO удобнее, чем разные пароли на всех сайтах. Но за этим аккаунтом нужно следить и обязательно установить двухфакторную аутентификацию.

Можно хранить все пароли в менеджере паролей. Но тогда снова получается один вход, через который можно зайти вообще на все ресурсы, доступ от которых хранится в базе.

Можно сделать разные надёжные пароли на каждом сайте. Это хороший вариант, но неудобный: пароли легко забыть или потерять.

Можно хранить пароли в записной книжке в сейфе. Только к сейфу всё равно нужен один пароль или ключ, которые можно потерять.

А что выбираете вы?

Редактор:

Инна Долога

Обложка:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Маша Климентьева

Соцсети:

Юлия Зубарева

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