Введение

Технический стандарт для аутентификации и авторизации

Security Assertion Markup Language (SAML, произносится SAM el, '/s//æ//m//əl/) — это открытый стандарт для обмена данными аутентификации и авторизации между сторонами, в частности, между поставщиком удостоверений и поставщиком услуг. SAML представляет собой язык разметки на основе XML для утверждений безопасности (заявлений, которые поставщики услуг используют для принятия решений о контроле доступа). SAML также включает в себя:
Набор сообщений протокола на основе XML.
Набор привязок сообщений протокола.
Набор профилей (использующих все вышеперечисленное).

Важной задачей, решаемой SAML, является единый вход в веб-браузере (SSO). Единый вход относительно легко реализовать в пределах одного домена безопасности (например, с помощью cookie), но расширение SSO на несколько доменов безопасности является более сложной задачей и привело к появлению множества несовместимых проприетарных технологий. Профиль SAML для единого входа в веб-браузере был специфицирован и стандартизирован для обеспечения совместимости.

Обзор

В спецификации SAML определены три роли: субъект (обычно пользователь), поставщик удостоверений (IdP) и поставщик услуг (SP). В основном сценарии использования, рассматриваемом SAML, субъект запрашивает услугу у поставщика услуг. Поставщик услуг запрашивает и получает утверждение об аутентификации от поставщика удостоверений. На основании этого утверждения поставщик услуг может принять решение о контроле доступа, то есть решить, предоставлять ли услугу запросившему субъекту. В основе утверждения SAML лежит субъект (субъект в контексте определенной области безопасности), в отношении которого делается утверждение. Субъект обычно (но не обязательно) является человеком. Как и в техническом обзоре SAML 2.0, в данном документе термины "субъект" и "субъект" используются как взаимозаменяемые. Прежде чем передать утверждение, основанное на субъекте, от IdP к SP, IdP может запросить у субъекта некоторую информацию, такую как имя пользователя и пароль, для аутентификации субъекта. SAML определяет содержание утверждения, передаваемого от IdP к SP. В SAML один поставщик удостоверений может предоставлять SAML-утверждения многим поставщикам услуг. Аналогично, один SP может полагаться на утверждения и доверять утверждениям от многих независимых IdP. SAML не определяет метод аутентификации в поставщике удостоверений. IdP может использовать имя пользователя и пароль или другую форму аутентификации, включая многофакторную аутентификацию. Каталог, такой как RADIUS, LDAP или Active Directory, позволяющий пользователям входить в систему с именем пользователя и паролем, является типичным источником токенов аутентификации у поставщика удостоверений. Популярные интернет-сервисы социальных сетей также предоставляют услуги идентификации, которые теоретически могут быть использованы для поддержки обмена SAML.