Руслан Рахметов, Security Vision
Мы уже рассказывали про авторизацию, какие бывают способы и как далее выстраивается работа пользователей с данными. Сегодня пришло время разобраться в технологии Single Sign-On (SSO). Это технология, позволяющая пользователям аутентифицироваться один раз для получения доступа ко множеству приложений или сервисов без необходимости повторно вводить свои учетные данные для каждого из них. Это очень удобно как для пользователей, так и для администраторов системы, так как позволяет упростить процесс входа и улучшить безопасность.
SSO напрямую связан и с аутентификацией, и с авторизацией, но выполняет разные роли на обоих этапах:
1) SSO позволяет один раз аутентифицироваться (доказать, кто ты), и потом этот факт подтверждённой личности использовать для входа в другие сервисы. Технология не определяет, что пользователю разрешено делать — она просто говорит: «Да, этот человек — Иван Иванов».
2) После того как SSO подтвердил личность, каждое отдельное приложение или система проводит авторизацию — проверяет, какие права у этого пользователя. SSO подтверждает, например, что пользователь – админ, но уже сама система управления проектами решает: «Админам можно менять настройки, а обычным пользователям – нельзя».
SSO — это как один пропуск, с которым вы заходите и в офис, и в столовую, и в переговорку (один раз показал — дальше ходишь без проверок) или как ключ, который открывает сразу все двери в доме: квартиру, кладовку, почтовый ящик и гараж (как в фильме «Ключ от всех дверей» вместо связки ключей Николь Кидман в другом триллере «Другие»).
Для пользователей все очень просто, можно провести однократный вход в систему, без необходимости запоминать множество паролей для разных сервисов. Для сотрудников ИБ и ИТ технология упрощает управление учетными записями и паролями, позволяет централизованно контролировать доступ. Поскольку пароли вводятся реже, вероятность того, что пользователь попадется на фишинговую атаку уменьшается, а учетными записями пользователей и их доступами можно централизованно управлять и отслеживать.
SSO активно используется в корпоративных системах и для интеграции различных сервисов и приложений, таких как Google Workspace, Microsoft 365 и других.
Тем не менее у технологии SSO есть и пара недостатков: если система выйдет из строя, пользователь потеряет доступ ко всем сервисам сразу, да и настройка SSO может быть сложной, особенно в больших организациях с множеством различных приложений.
Принцип работы SSO можно описать несколькими шагами:
- Аутентификация
Пользователь вводит свои учетные данные (логин и пароль) на одном из приложений или сервисов, который поддерживает SSO.
- Токен аутентификации
После успешной аутентификации сервис создает специальный токен (например, JWT — JSON Web Token), который подтверждает личность пользователя (этот токен можно использовать для доступа к другим сервисам).
- Перенаправление
Когда пользователь пытается зайти в другое приложение, это приложение проверяет наличие действительного токена. Если токен есть и он действителен, пользователь автоматически получает доступ без необходимости вводить пароль снова.
Система единого входа – это не единственный способ управлять доступом, поэтому мы разберем и другие технологии.
Множественные логины (обычные учётные записи), когда пользователь создаёт отдельный логин и пароль для каждого сайта или приложения. Это не так удобно, как SSO, ведь нужно помнить кучу паролей, избегать их повторения, да и управление доступами будет весить разрозненно. С другой стороны, такая методика поддерживает независимость систем.
Пассворд-менеджеры (например, 1Password, Bitwarden, Kaspersky Password Manager), т.е. приложение, которое хранит все ваши логины и автоматически вводит их при входе. Как и в случае SSO, пароль вводится автоматически, обеспечивается шифрование и работает в любых системах, не обязательно поддерживающих SSO. С другой стороны, пользователь сам управляет паролями и нет возможности облегчения работы ИТ-специалистам для корпоративных периметров.
Федеративная идентификация (Federated Identity), когда пользователь входит в систему через внешний доверенный сервис (например, университет заходит через Google Workspace). Это похожая на SSO концепция, только между организациями: так, например, работает вход через VK ID, T-ID и др.
Многофакторная аутентификация (MFA), когда пользователь входит с логином и паролем, а потом ещё подтверждает вход через телефон, код или биометрию. Но это даже не альтернатива, а дополнение к SSO и обычным логинам, перечисленным выше
SSO же работает как карточка в отеле, после получения её при заселении можно открыть номер, зайти в спортзал, использовать в лифте. Один вход = доступ ко всему. Для такого можно представить технологию как коктейль, главные «ингредиенты» которого:
1. Протоколы аутентификации
Это языки общения между системами. Например, OAuth 2.0 (используется для доступа к ресурсам от имени пользователя), OpenID Connect (OIDC), это расширение OAuth, которое используется именно для входа в систему и SAML (Security Assertion Markup Language, XML-основанный протокол, часто используется в корпоративных системах).
2. Identity Provider (IdP)
Это «центр контроля», который проверяет, кто ты такой. Он аутентифицирует пользователя и выдаёт подтверждение. Подобные центры есть у Google (вход через Google), Microsoft Entra ID, Okta, Keycloak и Auth0.
3. Service Provider (SP)
Это приложения, которые хотят знать, кто ты, и доверяют IdP. Например, когда при входе в корпоративную CRM провайдер перенаправляет вас на IdP, а после возвращает в CRM уже с подтверждением.
4. Токены и утверждения (assertions)
После входа IdP создаёт «бумажку», на которой написано: «Это Иван Иванов, он вошёл в 12:32, его роль — администратор». Встречаются разные форматы токенов, например, JWT (JSON Web Token, лёгкий, читаемый, удобен в OAuth / OIDC) и SAML Assertions (XML-документ, используется в SAML).
5. Redirect flow
Этот компонент обеспечивает «прыжки» между сайтами и приложениями, как в примере с CRM в пункте выше.
6. Session / Cookie Management
После успешной аутентификации создаётся сессия в двух источниках: на стороне IdP, чтобы не входить снова, и на стороне SP, чтобы не проверять токен каждый раз.
7. Single Logout (SLO)
Некоторые SSO-системы умеют не только входить сразу везде, но и выходить из всех систем при одном выходе. Но работает не всегда и не везде.
Вместо того чтобы каждый день входить отдельно в почту, CRM, облачное хранилище и внутренний портал, сотрудник входит в систему один раз — и получает доступ ко всем необходимым ресурсам. SSO — это ключ к удобству, безопасности и эффективности. Единая авторизация помогает бизнесу минимизировать риски, упростить жизнь пользователям и сократить затраты на поддержку.