Единый вход
Единый вход (англ. Single Sign-On, SSO) — это механизм аутентификации, позволяющий пользователю получить доступ к нескольким независимым программным системам или сервисам после однократного ввода учётных данных (логина и пароля). В основе технологии лежит принцип централизованного управления идентификацией: единый сеанс аутентификации создаётся на одном сервере (провайдере идентификации) и затем доверяется другим сервисам (сервис-провайдерам) без повторного запроса пароля.
Принцип работы
Архитектура единого входа основана на модели «доверенного посредника». Пользователь взаимодействует с системой через три ключевых компонента:
- Провайдер идентификации (IdP) — центральный сервер, который хранит учётные записи, проверяет подлинность пользователя и выдаёт токен (цифровое удостоверение) о успешной аутентификации.
- Сервис-провайдер (SP) — приложение или веб-сайт, к которому пользователь хочет получить доступ. Он не хранит пароли, а полагается на проверку со стороны IdP.
- Токен аутентификации — временный или постоянный цифровой ключ (например, JSON Web Token, SAML-утверждение или билет Kerberos), который содержит информацию о пользователе и времени сеанса.
Процесс типичного сценария SSO выглядит следующим образом:
- Пользователь открывает браузер и переходит на сайт сервис-провайдера (например, корпоративный портал).
- Сервис-провайдер обнаруживает отсутствие сеанса и перенаправляет пользователя на страницу входа провайдера идентификации.
- Пользователь вводит свои учётные данные (логин и пароль) на странице IdP.
- IdP проверяет данные, создаёт сеанс и генерирует токен, который отправляется обратно сервис-провайдеру.
- Сервис-провайдер проверяет токен (подпись, срок действия) и предоставляет доступ к запрашиваемому ресурсу.
- При последующем переходе на другой сервис-провайдер (в пределах той же зоны доверия) браузер автоматически предъявляет существующий токен или cookie, и пользователь не видит форму входа повторно.
История
Концепция единого входа возникла в 1970-х годах в академической среде. Одной из первых реализаций стала система Kerberos, разработанная в Массачусетском технологическом институте (MIT) в 1983 году. Она предназначалась для аутентификации пользователей в распределённых компьютерных сетях и до сих пор используется в операционных системах Windows (Active Directory) и Unix-подобных системах.
В 1990-х годах, с ростом числа корпоративных приложений, потребность в SSO усилилась. Появились коммерческие продукты, такие как Tivoli Access Manager (IBM) и Netegrity SiteMinder (ныне CA Single Sign-On). Параллельно развивались открытые протоколы: в 2002 году консорциум OASIS опубликовал стандарт SAML (Security Assertion Markup Language), ставший основой для федеративной аутентификации в веб-среде.
В 2010-х годах массовое распространение получили протоколы OAuth 2.0 и OpenID Connect, которые легли в основу современных решений SSO для потребительских интернет-сервисов — например, «Войти через Google», «Войти через VK ID» или «Войти через Яндекс ID». В России крупные платформы (Сбер, Mail.ru, Т-Банк) также внедрили собственные системы единого входа.
Виды и реализации
По типу управления
- Корпоративное SSO — развёртывается внутри организации для доступа к внутренним ресурсам (CRM, ERP, почта, файловые хранилища). Примеры: Microsoft Entra ID (ранее Azure Active Directory), FreeIPA, Keycloak.
- Федеративное SSO — объединяет несколько организаций или доменов. Пользователь одной компании может получить доступ к ресурсам другой компании без создания отдельной учётной записи. Реализуется через SAML, OpenID Connect или ADFS (Active Directory Federation Services).
- Социальное SSO — используется для входа на сторонние сайты через учётные записи социальных сетей или мессенджеров (VK ID, Яндекс ID, Apple ID, Google Account). Пользователь не передаёт пароль стороннему сайту — аутентификация происходит через API провайдера.
По способу хранения сеанса
- На основе cookie — после входа браузер сохраняет зашифрованную cookie-сессию, которая предъявляется всем сервисам в пределах одного домена. Недостаток: уязвимость для XSS-атак.
- На основе токенов — используется JWT (JSON Web Token) или SAML-утверждение. Токен может храниться в localStorage, sessionStorage или передаваться в HTTP-заголовке. Более безопасен, чем cookie, но требует управления сроком действия.
- На основе Kerberos — применяется в локальных сетях Windows. Пользователь получает билет от контроллера домена и предъявляет его серверам без ввода пароля.
Преимущества
- Удобство для пользователя — запоминается только один пароль, снижается количество попыток восстановления доступа.
- Снижение нагрузки на IT-поддержку — уменьшается число обращений по поводу забытых паролей.
- Повышение безопасности — централизованное управление учётными записями позволяет быстрее блокировать доступ при увольнении сотрудника или компрометации пароля.
- Единая политика паролей — администратор может задать требования к сложности пароля и частоту смены для всех систем одновременно.
Недостатки и риски
- Единая точка отказа — если провайдер идентификации недоступен, пользователь теряет доступ ко всем связанным сервисам. Для снижения риска применяют кластеризацию IdP.
- Компрометация одного пароля — злоумышленник, получив доступ к учётной записи IdP, может проникнуть во все системы, подключённые к SSO. Для защиты требуется обязательное использование многофакторной аутентификации (MFA).
- Сложность внедрения — интеграция с устаревшими приложениями, не поддерживающими современные протоколы (SAML, OIDC), требует дополнительных шлюзов или адаптеров.
- Приватность — провайдер идентификации получает информацию о том, какие сервисы посещает пользователь. В корпоративной среде это может быть оправдано, но в потребительских сценариях вызывает вопросы.
Протоколы и стандарты
- SAML 2.0 (Security Assertion Markup Language) — основан на XML, ориентирован на корпоративные веб-приложения. Широко используется в государственных и банковских системах.
- OAuth 2.0 — протокол делегирования доступа, не предназначенный для аутентификации напрямую. На его основе построены OpenID Connect и многие социальные SSO.
- OpenID Connect (OIDC) — надстройка над OAuth 2.0, добавляющая стандартизированный способ получения информации о пользователе. Используется в современных веб- и мобильных приложениях.
- Kerberos — сетевой протокол аутентификации, работающий на основе билетов. Применяется в Microsoft Active Directory и некоторых Unix-средах.
- LDAP (Lightweight Directory Access Protocol) — протокол для доступа к каталогам пользователей. Часто используется как бэкенд для хранения учётных записей в SSO-системах.
Примеры в России
- VK ID — единая система аутентификации экосистемы VK (организация признана в РФ иностранным агентом), позволяющая входить на все сервисы компании (VK, Почта Mail.ru, Облако, Карты) с одним паролем.
- Яндекс ID — централизованный аккаунт для сервисов Яндекса (Поиск, Почта, Диск, Музыка). Поддерживает вход по номеру телефона, QR-коду и биометрии.
- Сбер ID — единый профиль для доступа к сервисам Сбера (СберБанк, СберМаркет, СберЗдоровье). Использует OAuth 2.0 и OpenID Connect.
- Госуслуги — единая система идентификации и аутентификации (ЕСИА) для доступа к государственным и муниципальным услугам. Поддерживает федеративное SSO для ведомственных порталов.
- Keycloak — открытое решение для управления доступом и единым входом, активно применяется в российских компаниях для внутренних корпоративных систем.
Критика
Основная критика SSO связана с безопасностью: компрометация одного пароля ставит под удар все связанные сервисы. В ответ на это многие провайдеры (Яндекс, VK, Сбер) ввели обязательное использование двухфакторной аутентификации (одноразовые коды, Push-уведомления, биометрия). Также отмечается, что централизация данных о поведении пользователей создаёт риски для приватности: провайдер идентификации может отслеживать, какие ресурсы посещает человек. В России этот вопрос регулируется Федеральным законом «О персональных данных» (152-ФЗ) и требованиями к операторам идентификационных систем.
Источники
- Федеральный закон «О персональных данных» от 27.07.2006 № 152-ФЗ.
- Стандарт OASIS SAML 2.0, 2005.
- RFC 6749 — The OAuth 2.0 Authorization Framework, 2012.
- RFC 7519 — JSON Web Token (JWT), 2015.
- OpenID Connect Core 1.0 Specification, 2014.
- Документация Microsoft Entra ID (Azure Active Directory).
- Документация Keycloak (JBoss/Red Hat).
- Материалы сайтов VK ID, Яндекс ID, Сбер ID, ЕСИА (Госуслуги).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →