SAML – це мова розмітки, побудована на базі XML, що лежить в основі технології Single Sign-On (SSO). Вона дає користувачам можливість перемикатися між додатками (наприклад, корпоративними) за допомогою однієї пари логін/пароль.
За допомогою протоколу SAML один з одним взаємодіють постачальники облікових записів (IdP, або identity provider) і постачальники послуг (SP, або service provider) для безпечної передачі ідентифікаційних даних користувачів додатків. Роль постачальника облікових записів може грати служба каталогів Active Directory і навіть проста SQL база даних з логінами і паролями. Сервіс провайдером може бути будь-який веб-додаток, в якому хоче авторизуватися користувач (зрозуміло, що підтримує SAML).
В цілому процес аутентифікації складається з наступних кроків:
- Користувач просить авторизувати його в додатку від SP.
- Постачальник послуг запитує підтвердження логіна у IdP.
- Постачальник облікових записів посилає спеціальне SAML-повідомлення, в якому говорить про коректність або некоректність ідентифікаційних даних.
- Якщо дані вірні, постачальник авторизує користувача.
Хто впроваджує 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 відзначають, що протокол спрощує роботу сисадмінам в великих компаніях. Їм не доводиться стежити за десятками паролів для різних корпоративних додатків у кожного співробітника. Адміністратору достатньо призначити кожному працівникові лише одну унікальну пару логін/пароль для єдиного входу в усі сервіси. Такий підхід дає ще одну перевагу: якщо співробітник йде з компанії, то досить анулювати його ідентифікаційні дані для єдиного входу. Але є і негативні сторони.
Наприклад, серед недоліків виділяють зайву складність. SAML побудований на базі XML, тому вимогливий до синтаксису. Також протокол має велику кількість опціональних компонентів, що значно ускладнює налаштування SSO.
Хоча експерти з ІБ вважають протокол SAML досить надійним, побоювання викликає наявність вразливостей в готельних бібліотеках для SSO-операцій. У минулому році інженери з Duo Labs, що займається інформаційною безпекою, знайшли баг з обробкою XML-коментарів. Модифікувавши поле username в SAML-повідомленні, зловмисник може видати себе за іншого користувача. Втім, важливою умовою для здійснення атаки є обліковий запис в мережі жертви.
У будь-якому випадку цю уразливість можна нівелювати (наприклад, використовувати білий список поштових адрес і доменів для реєстрації в мережі), тому вона не повинна вплинути на подальше поширення технології серед ІТ-компаній і хмарних провайдерів.
Джерело: habr.com