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 напрямую, это происходит через браузер пользователя.

Такой подход называется федерацией удостоверений.

Обмен пользовательской информацией (логины, состояние аутентификации, идентификаторы и другие данные) между системой управления доступами и поставщиком услуг происходит следующим образом:

  1. Пользователь открывает браузер и заходит в приложение поставщика услуг (Service Provider).
  2. Приложение отвечает SAML-запросом, который браузер перенаправляет системе управления доступами (IdP).
  3. Сервер IdP обрабатывает SAML-запрос и предлагает пользователю пройти аутентификацию, например, ввести логин и пароль. Если пользователь уже был аутентифицирован, этот и следующий шаги пропускаются.
  4. Пользователь вводит на сервере IdP данные, необходимые для аутентификации.
  5. В случае успешной аутентификации система управления доступами генерирует SAML-ответ и отправляет его через браузер пользователя в приложение поставщика услуг на проверку.
  6. Если проверка прошла успешно, веб-приложение предоставляет доступ пользователю.