SAML
SAML 2.0 (Security Assertion Markup Language) — стандарт безопасности, который позволяет обмениваться аутентификационными и авторизационными данными в интернете. С его помощью пользователи могут получить доступ в несколько приложений с помощью единой учетной записи без необходимости каждый раз вводить свой логин и пароль. Это называется SSO (Single Sign-On) — система единого входа.
SAML SSO используется для интеграции систем управления доступом (Active Directory, Azure Active Directory, Keycloak, Avanpost FAM) с веб-приложениями и сервисами.
Как работает SSO на базе SAML 2.0
Вся информация о логинах и паролях пользователей хранится у доверенного поставщика удостоверений (Identity Provider, IdP) . В роли IdP может выступать любая система управления доступами, например Active Directory, Azure Active Directory, Keycloak, Avanpost FAM.
Вторая сторона процесса — поставщик услуг (Service Provider, SP), например, Яндекс 360 для бизнеса. В момент авторизации Service Provider отправляет пользователя проходить аутентификацию на сервере поставщика удостоверений.
SP не взаимодействует с IdP напрямую, это происходит через браузер пользователя.
Такой подход называется федерацией удостоверений.
Обмен пользовательской информацией (логины, состояние аутентификации, идентификаторы и другие данные) между системой управления доступами и поставщиком услуг происходит следующим образом:
- Пользователь открывает браузер и заходит в приложение поставщика услуг (Service Provider).
- Приложение отвечает SAML-запросом, который браузер перенаправляет системе управления доступами (IdP).
- Сервер IdP обрабатывает SAML-запрос и предлагает пользователю пройти аутентификацию, например, ввести логин и пароль. Если пользователь уже был аутентифицирован, этот и следующий шаги пропускаются.
- Пользователь вводит на сервере IdP данные, необходимые для аутентификации.
- В случае успешной аутентификации система управления доступами генерирует SAML-ответ и отправляет его через браузер пользователя в приложение поставщика услуг на проверку.
- Если проверка прошла успешно, веб-приложение предоставляет доступ пользователю.