Технология единого входа, или Single Sign-On (SSO), — метод аутентификации, позволяющий пользователям безопасно получать доступ к нескольким приложениям, используя один набор учетных данных.
Как работает SSO?
SSO базируется на настройке доверительных отношений между приложением (провайдером услуг) и системой управления доступом (например, OneLogin). Эти отношения часто устанавливаются через обмен сертификатами. Сертификат подтверждает идентификационную информацию, передаваемую от системы управления доступом провайдеру услуг, гарантируя надежность источника.
В SSO идентификационные данные представлены в виде токенов, содержащих информацию о пользователе (например, email или имя). Процесс авторизации обычно выглядит так:
- Пользователь заходит в приложение (провайдер услуг). Например, это может быть социальная сеть.
- Провайдер услуг отправляет токен (с информацией о пользователе, например, email) в систему SSO (систему управления доступом). Это запрос на аутентификацию пользователя. Важно различать аутентификацию (проверка личности пользователя) и авторизацию (определение прав доступа).
- Система управления доступом проверяет, был ли пользователь уже аутентифицирован в данном приложении.
- Если пользователь не аутентифицирован, ему необходимо пройти аутентификацию, предоставив свои учетные данные (логин и пароль, одноразовый пароль и т.д.).
- После успешной аутентификации система управления доступом возвращает токен провайдеру услуг. Токен проходит через браузер пользователя.
- Провайдер услуг подтверждает токен, основываясь на доверительных отношениях, установленных между ним и системой управления доступом.
- Пользователю предоставляется доступ к приложению.
Для доступа к другому сайту потребуется настройка аналогичных доверительных отношений в рамках SSO. Порядок аутентификации останется тем же.
Токен в контексте SSO — это набор данных, передающийся между системами. Это может быть просто email пользователя и информация о системе-отправителе, подтверждающая надежность источника. Сертификат электронной подписи используется на этапе начальной настройки.
Преимущества и недостатки SSO
Преимущества:
- Упрощение работы с логинами и паролями: пользователям нужно запомнить только один, более сложный пароль.
- Быстрый доступ к приложениям.
- Сокращение времени на восстановление паролей.
- Быстрое отзывание доступа для уволенных сотрудников.
Недостатки:
- Единая точка отказа: сбой центрального сервера SSO приводит к потере доступа ко всем приложениям.
- Повышенные риски безопасности: компрометация одной учетной записи SSO дает злоумышленнику доступ ко всем ресурсам пользователя.
- Сложность реализации: внедрение SSO может потребовать значительных ресурсов, особенно в крупных организациях.
- Совместимость приложений: некоторые приложения могут не поддерживать SSO.
- Зависимость от протоколов: SSO использует различные протоколы (например, SAML или OAuth), и несовместимость может создавать трудности.
Внедрение SSO
Особенности внедрения зависят от выбранного решения, но необходимо определить:
- Типы пользователей и их требования.
- Тип решения (локальное или облачное).
- Возможность масштабирования.
- Необходимые функции безопасности (многофакторная аутентификация, adaptive authentication и т.д.).
- Системы для интеграции.
- Необходимость доступа к программному интерфейсу приложения.
SSO и менеджеры паролей
Менеджеры паролей хранят учетные данные и вводят их автоматически, но не устанавливают доверительных отношений между приложениями. SSO же предоставляет доступ ко всем одобренным приложениям после единого входа, включая облачные и локальные.
Термины и платформы SSO
SSO — это часть более широкой концепции Federated Identity Management (FIM). Основные связанные термины и платформы:
- OAuth 2.0: Протокол авторизации, позволяющий приложениям получать доступ к ресурсам от имени пользователя без передачи учетных данных.
- OpenID Connect (OIDC): Уровень аутентификации, построенный на OAuth 2.0, обеспечивающий функциональность SSO.
- Security Assertion Markup Language (SAML): Открытый стандарт для обеспечения функциональности SSO.
- Same Sign-On (SSO): Использование одного логина и пароля без доверительных отношений между системами. В отличие от Single Sign-On, менее безопасный метод.
- Active Directory (AD): Централизованная служба каталогов Microsoft.
- Active Directory Federation Services (ADFS): Используется для установления доверительных отношений между AD и другими системами.
- Lightweight Directory Access Protocol (LDAP): Стандарт для запроса и организации информации в каталоге.
- OpenUP: Платформа, обеспечивающая аутентификацию App-to-App SSO.
Несмотря на некоторые недостатки, SSO остается эффективным инструментом управления доступом. Многие проблемы могут быть решены с помощью соответствующих мер безопасности и правильной конфигурации.