У себя в блоге мы часто затрагиваем вопросы защиты данных и авторизации. Например, мы рассказывали о новом стандарте для беспарольной авторизации WebAuthn и даже брали интервью у одного из его разработчиков. Также обсуждали технологию DANE для аутентификации доменных имен по DNS. Сегодня поговорим о протоколе SAML 2.0 и о тех, кто его использует.

Фото — Marco Verch — CC BY — Фото изменено
SAML — это язык разметки, построенный на базе XML, который лежит в основе технологии Single Sign-On (SSO). Она дает пользователям возможность переключаться между приложениями (например, корпоративными) с помощью одной пары логин/пароль.
С помощью протокола SAML друг с другом взаимодействуют поставщики учетных записей (IdP, или identity provider) и поставщики услуг (SP, или service provider) для безопасной передачи идентификационных данных пользователей приложений. Роль поставщика учетных записей может играть служба каталогов Active Directory и даже простая SQL база данных с логинами и паролями. Сервис провайдером может быть любое веб-приложение, в котором хочет авторизоваться пользователь (разумеется, поддерживающее SAML).
В целом процесс аутентификации состоит из следующих шагов:

Последнее крупное обновление для SAML — SAML 2.0 — было опубликовано в 2005 году. И с тех пор протокол получил довольно широкое распространение. Работу с ним поддерживают такие сервисы, как Salesforce, Slack и GitHub. Его использует даже информационная система ЕСИА для авторизации на Госуслугах.
Например, месяц назад SAML внедрили в Azure Active Directory Proxy Service — инструмент для получения удаленного доступа к веб-приложениям. По мнению ряда экспертов, компания-разработчик сервиса решила использовать этот протокол, так как он обеспечивает более надежную защиту SSO-логинов для крупных компаний, чем альтернативы вроде OAuth.
В конце июля также стало известно, что SAML появился в облаке AWS. В компании надеются, что так клиенты будут тратить меньше времени на авторизацию и смогут сфокусироваться на решении бизнес-критических задач.
Внимание протоколу уделяют не только облачные провайдеры, но и некоммерческие организации. Пару недель назад в Public Safety Technology Alliance (PSTA), которая занимается продвижением технологий для обеспечения общественной безопасности, рекомендовали своим партнерам внедрить авторизацию на базе SAML 2.0 и OpenID. Среди причин были выделены: зрелость технологий, их распространенность и надежность.
В первую очередь интеграторы решений на базе SAML отмечают, что протокол упрощает работу сисадминам в крупных компаниях. Им не приходится следить за десятками паролей для разных корпоративных приложений у каждого сотрудника. Администратору достаточно назначить каждому работнику лишь одну уникальную пару логин/пароль для единого входа во все сервисы. Такой подход дает еще одно преимущество: если сотрудник уходит из компании, то достаточно аннулировать его идентификационные данные для единого входа. Но есть и негативные стороны.

Фото — Matthew Brodeur — Unsplash
Например, среди недостатков выделяют излишнюю сложность. SAML построен на базе XML, поэтому требователен к синтаксису. Плюс протокол имеет большое количество опциональных компонентов, что значительно усложняет настройку SSO.
Хотя эксперты по ИБ считают протокол SAML довольно надежным, опасения вызывает наличие уязвимостей в отельных библиотеках для SSO-операций. В прошлом году инженеры из Duo Labs, занимающейся информационной безопасностью, нашли баг с обработкой XML-комментариев. Модифицировав поле username в SAML-сообщении, злоумышленник может выдать себя за другого пользователя. Впрочем, важным условием для осуществления атаки является наличие учетной записи в сети жертвы.
В любом случае эту уязвимость можно нивелировать (например, использовать белый список почтовых адресов и доменов для регистрации в сети), поэтому она не должна повлиять на дальнейшее распространение технологии среди ИТ-компаний и облачных провайдеров.
Мы в 1cloud.ru предлагаем услугу «Облачное объектное хранилище». Она позволяет хранить резервные копии и работать с архивными данными.

Фото — Marco Verch — CC BY — Фото изменено
Что такое SAML
SAML — это язык разметки, построенный на базе XML, который лежит в основе технологии Single Sign-On (SSO). Она дает пользователям возможность переключаться между приложениями (например, корпоративными) с помощью одной пары логин/пароль.
С помощью протокола SAML друг с другом взаимодействуют поставщики учетных записей (IdP, или identity provider) и поставщики услуг (SP, или service provider) для безопасной передачи идентификационных данных пользователей приложений. Роль поставщика учетных записей может играть служба каталогов Active Directory и даже простая SQL база данных с логинами и паролями. Сервис провайдером может быть любое веб-приложение, в котором хочет авторизоваться пользователь (разумеется, поддерживающее SAML).
В целом процесс аутентификации состоит из следующих шагов:
- Пользователь просит авторизовать его в приложении от SP.
- Поставщик услуг запрашивает подтверждение логина у IdP.
- Поставщик учетных записей посылает специальное SAML-сообщение, в котором говорит о корректности или некорректности идентификационных данных.
- Если данные верны, поставщик авторизует пользователя.

Кто его внедряет
Последнее крупное обновление для SAML — SAML 2.0 — было опубликовано в 2005 году. И с тех пор протокол получил довольно широкое распространение. Работу с ним поддерживают такие сервисы, как Salesforce, Slack и GitHub. Его использует даже информационная система ЕСИА для авторизации на Госуслугах.
Казалось бы, за такой долгий срок протокол должен был стать чем-то обыденным, однако в последнее время он вновь вызывает повышенный интерес — по теме выходит большое количество статей (вот и вот), а в социальных сетях ведется активное обсуждение. Использовать SAML также начали IaaS-провайдеры.
Например, месяц назад SAML внедрили в Azure Active Directory Proxy Service — инструмент для получения удаленного доступа к веб-приложениям. По мнению ряда экспертов, компания-разработчик сервиса решила использовать этот протокол, так как он обеспечивает более надежную защиту SSO-логинов для крупных компаний, чем альтернативы вроде OAuth.
В конце июля также стало известно, что SAML появился в облаке AWS. В компании надеются, что так клиенты будут тратить меньше времени на авторизацию и смогут сфокусироваться на решении бизнес-критических задач.
Внимание протоколу уделяют не только облачные провайдеры, но и некоммерческие организации. Пару недель назад в Public Safety Technology Alliance (PSTA), которая занимается продвижением технологий для обеспечения общественной безопасности, рекомендовали своим партнерам внедрить авторизацию на базе SAML 2.0 и OpenID. Среди причин были выделены: зрелость технологий, их распространенность и надежность.
Мнения о протоколе
В первую очередь интеграторы решений на базе SAML отмечают, что протокол упрощает работу сисадминам в крупных компаниях. Им не приходится следить за десятками паролей для разных корпоративных приложений у каждого сотрудника. Администратору достаточно назначить каждому работнику лишь одну уникальную пару логин/пароль для единого входа во все сервисы. Такой подход дает еще одно преимущество: если сотрудник уходит из компании, то достаточно аннулировать его идентификационные данные для единого входа. Но есть и негативные стороны.

Фото — Matthew Brodeur — Unsplash
Например, среди недостатков выделяют излишнюю сложность. SAML построен на базе XML, поэтому требователен к синтаксису. Плюс протокол имеет большое количество опциональных компонентов, что значительно усложняет настройку SSO.
Хотя эксперты по ИБ считают протокол SAML довольно надежным, опасения вызывает наличие уязвимостей в отельных библиотеках для SSO-операций. В прошлом году инженеры из Duo Labs, занимающейся информационной безопасностью, нашли баг с обработкой XML-комментариев. Модифицировав поле username в SAML-сообщении, злоумышленник может выдать себя за другого пользователя. Впрочем, важным условием для осуществления атаки является наличие учетной записи в сети жертвы.
В любом случае эту уязвимость можно нивелировать (например, использовать белый список почтовых адресов и доменов для регистрации в сети), поэтому она не должна повлиять на дальнейшее распространение технологии среди ИТ-компаний и облачных провайдеров.
О чем мы пишем в наших блогах и социальных сетях:
Новые лицензии для открытого ПО, кто ими занимается
В Open Invention Network больше трех тысяч лицензиатов — что это значит для открытого ПО
Как защитить виртуальный сервер в интернете
Как сэкономить с помощью API
Дайджест: 5 книг и один курс по сетям
Подборка книг для тех, кто уже занимается системным администрированием или планирует начать
