SAML vs OpenID Connect
SAML
SAML (Security Assertion Markup Language) — стандарт для обмена аутентификационными и авторизационными данными. Основная цель: утверждение личности и единый вход (SSO).
Принцип работы по шагам
- Инициация аутентификации: пользователь пытается получить доступ к приложению (Service Provider, SP).
- Запрос аутентификации: SP перенаправляет пользователя к Identity Provider (IdP) с запросом аутентификации.
- Аутентификация: пользователь вводит свои учетные данные на IdP.
- Создание SAML утверждения: IdP аутентифицирует пользователя и создаёт SAML Assertion (утверждение) с информацией о пользователе.
- Ответ на аутентификацию: IdP отправляет SAML Assertion обратно SP через браузер пользователя.
- Проверка утверждения: SP проверяет SAML Assertion.
- Доступ: если проверка успешна, SP предоставляет пользователю доступ.
Примеры использования
- Для организации единого входа в корпоративные приложения и системы.
- Для предоставления доступа к образовательным ресурсам и сервисам.
- В облачных платформах для безопасного доступа к ресурсам.
OpenID Connect
OpenID Connect (OIDC) — протокол аутентификации, построенный на базе OAuth 2.0. Он добавляет аутентификацию для проверки личности пользователя и получения основных данных профиля пользователя.
Принцип работы по шагам
- Инициация аутентификации: попытка получить доступ к приложению (Client).
- Запрос аутентификации: Client перенаправляет пользователя к Authorization Server (провайдер идентификации) с запросом на аутентификацию.
- Аутентификация: пользователь вводит свои учетные данные на Authorization Server.
- Авторизация: Authorization Server аутентифицирует пользователя и спрашивает его согласие на предоставление доступа.
- Выдача токенов: Authorization Server выдает Access Token и ID Token и перенаправляет их обратно к Client через браузер пользователя.
- Проверка токенов: Client проверяет ID Token.
- Доступ к приложению: если проверка успешна, Client предоставляет пользователю доступ.
Примеры использования
- Аутентификация пользователей на сайтах.
- Безопасный вход в приложения с использованием сторонних учетных записей.
Сходства SAML и OIDC
- Централизованная аутентификация: обеспечивают централизованную проверку подлинности пользователя.
- Единый вход (SSO): используются для реализации единого входа, что позволяет аутентифицироваться один раз и получать доступ к нескольким системам.
- Безопасность: предназначены для безопасной передачи аутентификационной и авторизационной информации между различными системами.
- Провайдеры идентификации: используются для управления аутентификацией пользователей (SAML: Identity Provider (IdP), OIDC: Authorization Server).
Ключевое различие
OIDC лучше подходит для современных веб-приложений и мобильных устройств благодаря использованию JSON и REST. SAML использует XML и чаще используется в корпоративных средах.
Сравнительная таблица SAML и OIDC
| Критерий | SAML | OIDC |
|---|---|---|
| Архитектура | Тяжеловесная, на основе XML | Легковесная, на основе OAuth 2.0 |
| Протокол | SAML 2.0 | OAuth 2.0 |
| Формат данных | XML | JSON Web Token (JWT) |
| Применение | Корпоративные приложения, SSO | Веб и мобильные приложения |
| Процесс аутентификации | Перенаправление через браузер к IdP, выдача SAML Assertion | Перенаправление к Authorization Server, выдача ID Token |
| Тип использования | Аутентификация | Аутентификация и авторизация |
| Механизм обмена | REST | HTTP или SOAP |
| Примеры систем | Microsoft Active Directory Federation Services, Okta, OneLogin | Google Identity Platform, Auth0, Microsoft Azure Active Directory |
Подборка материалов по теме SAML vs OIDC
- Единый вход с использованием SAML
- Что такое SAML аутентификация и кому она нужна
- SAML простыми словами
- SAML VS OAUTH: полное сравнение
- Современные стандарты идентификации: OAuth 2.0, OpenID Connect, WebAuthn
- SAML и OIDC для интеграции единого входа с менеджером паролей
- Что такое SAML и как он работает?
- Настройка SAML-аутентификации
- Ищем баги в приложениях с SSO на базе SAML
- Настройка SAML 2.0 SSO с Microsoft Active Directory Federation Services
- Как работает OAuth 2.0 и OpenID Connect
- SSO однократная аутентификация для компании
- Корпоративная система аутентификации
- Дмитрий Фёдоров «SSO на базе OpenId Connect в корпоративной системе»
- Как организовать корпоративную аутентификацию
- OpenID Connect (OIDC): Как получить токен?
- OpenID Connect