Единый вход (SSO) — отличный способ упростить аутентификацию и авторизацию пользователей. Но какой метод SSO вам выбрать? В этом посте мы предлагаем вам краткий обзор двух популярных методов SSO: SAML и OpenID Connect.
SimengDeveloper
Хватит тратить недели на аутентификацию пользователей
Запускайте безопасные приложения быстрее с Logto. Интегрируйте аутентификацию пользователей за считанные минуты и сосредоточьтесь на вашем основном продукте.
В современном мире, управляемом облачными технологиями, единый вход (SSO) — отличный способ упростить аутентификацию и авторизацию пользователей. Вместо того чтобы заставлять пользователей запоминать несколько имен пользователей и паролей для разных приложений, SSO позволяет им войти один раз и получить доступ к нескольким приложениям без проблем.
Большинство крупных поставщиков удостоверений (IdP), таких как Microsoft Entra, предлагают двух основных претендентов на роль SSO: язык разметки утверждений безопасности (SAML) и OpenID Connect (OIDC). Хотя оба протокола безопасны и хорошо зарекомендовали себя, выбор правильного протокола для вашей организации зависит от множества факторов. Давайте углубимся в их сильные и слабые стороны, чтобы помочь вам выбрать победителя SSO.
OpenID Connect (OIDC): Легкий выбор для современных приложений#
OIDC — это простой и легкий протокол, построенный поверх OAuth 2.0. Он превосходит в обеспечении простоты настройки, что делает его популярным выбором для современных приложений.
Простота: OIDC обеспечивает более простую настройку по сравнению с SAML. Это означает более быструю реализацию и легкое текущее обслуживание. Он был разработан на основе OAuth 2.0, который уже широко используется для целей авторизации.
Современный дизайн: Построенный для современной веб-среды, он хорошо интегрируется с современными приложениями и фреймворками. OIDC является RESTful и базируется на JSON, что облегчает работу с ним в современных средах разработки и обеспечивает более плавный пользовательский опыт.
Масштабируемость: OIDC разработан для масштабируемости, что делает его хорошим выбором для крупных организаций со сложными требованиями.
Эффективность: OIDC использует JSON Web Tokens (JWTs) для обмена данными. Эти компактные токены легковесны и эффективны по сравнению с более громоздкими XML-сообщениями, используемыми SAML. Это означает более быстрое время аутентификации.
Ограниченный контроль атрибутов: По умолчанию OIDC предлагает ограниченную информацию о базовых атрибутах пользователя, это может не обеспечивать тот же уровень детализированного контроля, который предоставляет SAML. Это может вызывать беспокойство у организаций с жесткими требованиями к контролю доступа. Для более продвинутого контроля атрибутов, возможно, потребуется дополнить протокол дополнительными механизмами авторизации, например, роль-ориентированным контролем доступа (RBAC) или контролем доступа на основе атрибутов (ABAC).
Ограниченная поддержка устаревших приложений: Поскольку OIDC является более новым протоколом, он может быть не так широко принят старыми корпоративными приложениями по сравнению с устоявшимся стандартом SAML.
Язык разметки утверждений безопасности (SAML): Корпоративный стандарт с детализированным контролем#
SAML долгое время был основным протоколом для SSO в корпоративном мире. Его широкое распространение и богатый набор функциональных возможностей делают его надежным выбором для организаций со сложными требованиями.
Широкое распространение: SAML существует уже долгое время и широко принят во многих корпоративных приложениях. Это обеспечивает высокую степень совместимости с вашей существующей IT-инфраструктурой.
Детализированный контроль атрибутов: SAML предоставляет богатый набор атрибутов, которые могут обмениваться между IdP и поставщиком услуг (SP). Это позволяет осуществлять детализированный контроль доступа и настройку атрибутов пользователя.
Сложность: Настройка и конфигурация SAML может быть более сложным процессом по сравнению с OIDC. XML-сообщения, используемые SAML, более громоздки и многословны по сравнению с JSON-сообщениями, используемыми OIDC. Это требует более глубокого понимания протокола и, возможно, больше инженерных ресурсов.
Более громоздкие сообщения: Сообщения SAML основаны на XML, что делает их более громоздкими и менее эффективными по сравнению с JSON-сообщениями, используемыми OIDC. Это может привести к более медленному времени аутентификации, особенно для крупных нагрузок.
При выборе между SAML и OIDC рассмотрите следующие факторы:
Фактор
SAML
OIDC
Сложность настройки
Высокая
Низкая
Совместимость (современные)
Низкая
Высокая
Совместимость (устаревшие)
Высокая
Низкая
Пользовательский опыт
Сложный
Простой
Контроль атрибутов
Детализированный
Ограниченный
Эффективность обмена данными
Низкая
Высокая
Не просто бинарный выбор: соединение SAML и OIDC для гибридного подхода#
В некоторых случаях вам не нужно будет выбирать между SAML и OIDC. Некоторые поставщики удостоверений предлагают возможность поддержки обоих протоколов, что позволяет использовать сильные стороны каждого там, где это наиболее необходимо. Например, если у вашей организации есть сочетание современных и устаревших приложений, но они используют общую IdP, вы можете использовать как OIDC, так и SAML для комплексного решения SSO. Например, вы можете использовать OIDC для своих веб- и мобильных приложений, оставив SAML для своих устаревших корпоративных систем.
Заключение: Выбрать правильный инструмент для работы#
Лучший протокол SSO для вашей организации зависит от вашего конкретного ландшафта приложений, требований безопасности и целей пользовательского опыта. Поняв сильные и слабые стороны как OIDC, так и SAML, вы будете хорошо подготовлены для выбора наиболее подходящего решения для вашей организации.
В Logto мы поддерживаем как SAML, так и OIDC как часть нашего комплексного решения SSO. Независимо от того, подключаетесь ли вы к современному веб-приложению или устаревшей корпоративной системе, мы вас поддержим. Зарегистрируйтесь для бесплатной учетной записи и начинайте упрощать ваши потоки аутентификации и авторизации уже сегодня.