Перейти к основному содержимому

SAML vs OpenID Connect

SAML

SAML (Security Assertion Markup Language) — стандарт для обмена аутентификационными и авторизационными данными. Основная цель: утверждение личности и единый вход (SSO).

Принцип работы по шагам

  1. Инициация аутентификации: пользователь пытается получить доступ к приложению (Service Provider, SP).
  2. Запрос аутентификации: SP перенаправляет пользователя к Identity Provider (IdP) с запросом аутентификации.
  3. Аутентификация: пользователь вводит свои учетные данные на IdP.
  4. Создание SAML утверждения: IdP аутентифицирует пользователя и создаёт SAML Assertion (утверждение) с информацией о пользователе.
  5. Ответ на аутентификацию: IdP отправляет SAML Assertion обратно SP через браузер пользователя.
  6. Проверка утверждения: SP проверяет SAML Assertion.
  7. Доступ: если проверка успешна, SP предоставляет пользователю доступ.

Примеры использования

  • Для организации единого входа в корпоративные приложения и системы.
  • Для предоставления доступа к образовательным ресурсам и сервисам.
  • В облачных платформах для безопасного доступа к ресурсам.

OpenID Connect

OpenID Connect (OIDC) — протокол аутентификации, построенный на базе OAuth 2.0. Он добавляет аутентификацию для проверки личности пользователя и получения основных данных профиля пользователя.

Принцип работы по шагам

  1. Инициация аутентификации: попытка получить доступ к приложению (Client).
  2. Запрос аутентификации: Client перенаправляет пользователя к Authorization Server (провайдер идентификации) с запросом на аутентификацию.
  3. Аутентификация: пользователь вводит свои учетные данные на Authorization Server.
  4. Авторизация: Authorization Server аутентифицирует пользователя и спрашивает его согласие на предоставление доступа.
  5. Выдача токенов: Authorization Server выдает Access Token и ID Token и перенаправляет их обратно к Client через браузер пользователя.
  6. Проверка токенов: Client проверяет ID Token.
  7. Доступ к приложению: если проверка успешна, Client предоставляет пользователю доступ.

Примеры использования

  • Аутентификация пользователей на сайтах.
  • Безопасный вход в приложения с использованием сторонних учетных записей.

Сходства SAML и OIDC

  • Централизованная аутентификация: обеспечивают централизованную проверку подлинности пользователя.
  • Единый вход (SSO): используются для реализации единого входа, что позволяет аутентифицироваться один раз и получать доступ к нескольким системам.
  • Безопасность: предназначены для безопасной передачи аутентификационной и авторизационной информации между различными системами.
  • Провайдеры идентификации: используются для управления аутентификацией пользователей (SAML: Identity Provider (IdP), OIDC: Authorization Server).

Ключевое различие

OIDC лучше подходит для современных веб-приложений и мобильных устройств благодаря использованию JSON и REST. SAML использует XML и чаще используется в корпоративных средах.

Сравнительная таблица SAML и OIDC

КритерийSAMLOIDC
АрхитектураТяжеловесная, на основе XMLЛегковесная, на основе OAuth 2.0
ПротоколSAML 2.0OAuth 2.0
Формат данныхXMLJSON Web Token (JWT)
ПрименениеКорпоративные приложения, SSOВеб и мобильные приложения
Процесс аутентификацииПеренаправление через браузер к IdP, выдача SAML AssertionПеренаправление к Authorization Server, выдача ID Token
Тип использованияАутентификацияАутентификация и авторизация
Механизм обменаRESTHTTP или SOAP
Примеры системMicrosoft Active Directory Federation Services, Okta, OneLoginGoogle Identity Platform, Auth0, Microsoft Azure Active Directory

Подборка материалов по теме SAML vs OIDC

  1. Единый вход с использованием SAML
  2. Что такое SAML аутентификация и кому она нужна
  3. SAML простыми словами
  4. SAML VS OAUTH: полное сравнение
  5. Современные стандарты идентификации: OAuth 2.0, OpenID Connect, WebAuthn
  6. SAML и OIDC для интеграции единого входа с менеджером паролей
  7. Что такое SAML и как он работает?
  8. Настройка SAML-аутентификации
  9. Ищем баги в приложениях с SSO на базе SAML
  10. Настройка SAML 2.0 SSO с Microsoft Active Directory Federation Services
  11. Как работает OAuth 2.0 и OpenID Connect
  12. SSO однократная аутентификация для компании
  13. Корпоративная система аутентификации
  14. Дмитрий Фёдоров «SSO на базе OpenId Connect в корпоративной системе»
  15. Как организовать корпоративную аутентификацию
  16. OpenID Connect (OIDC): Как получить токен?
  17. OpenID Connect

Видео

  1. Что такое SAML за 12 минут: Объясняем на пальцах
  2. Что такое OAuth 2.0 и OpenID0 Connect за 15 минут
  3. SAML vs. OpenID (OIDC) (англ)
  4. Технология единого входа (SSO) на примере SAML
  5. OpenID Connect. Теория
  6. Когда использовать OAuth и OIDC и причем тут JWT