Русский
  • sso
  • аутентификация
  • OIDC
  • SAML

Выбор метода SSO: SAML против OpenID Connect

Единый вход (SSO) — отличный способ упростить аутентификацию и авторизацию пользователей. Но какой метод SSO вам выбрать? В этом посте мы предлагаем вам краткий обзор двух популярных методов SSO: SAML и OpenID Connect.

Simeng
Simeng
Developer

Введение

В современном мире, управляемом облачными технологиями, единый вход (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. Это может привести к более медленному времени аутентификации, особенно для крупных нагрузок.

Ваша собственная победа в SSO

При выборе между SAML и OIDC рассмотрите следующие факторы:

ФакторSAMLOIDC
Сложность настройкиВысокаяНизкая
Совместимость (современные)НизкаяВысокая
Совместимость (устаревшие)ВысокаяНизкая
Пользовательский опытСложныйПростой
Контроль атрибутовДетализированныйОграниченный
Эффективность обмена даннымиНизкаяВысокая

Не просто бинарный выбор: соединение SAML и OIDC для гибридного подхода

В некоторых случаях вам не нужно будет выбирать между SAML и OIDC. Некоторые поставщики удостоверений предлагают возможность поддержки обоих протоколов, что позволяет использовать сильные стороны каждого там, где это наиболее необходимо. Например, если у вашей организации есть сочетание современных и устаревших приложений, но они используют общую IdP, вы можете использовать как OIDC, так и SAML для комплексного решения SSO. Например, вы можете использовать OIDC для своих веб- и мобильных приложений, оставив SAML для своих устаревших корпоративных систем.

Заключение: Выбрать правильный инструмент для работы

Лучший протокол SSO для вашей организации зависит от вашего конкретного ландшафта приложений, требований безопасности и целей пользовательского опыта. Поняв сильные и слабые стороны как OIDC, так и SAML, вы будете хорошо подготовлены для выбора наиболее подходящего решения для вашей организации.

В Logto мы поддерживаем как SAML, так и OIDC как часть нашего комплексного решения SSO. Независимо от того, подключаетесь ли вы к современному веб-приложению или устаревшей корпоративной системе, мы вас поддержим. Зарегистрируйтесь для бесплатной учетной записи и начинайте упрощать ваши потоки аутентификации и авторизации уже сегодня.