Общие сведения
SAML 2.0 (Security Assertion Markup Language) — это язык разметки для обмена данными аутентификации и авторизации между сторонами. SAML позволяет реализовать систему единого входа (Single Sign-On, SSO), с помощью которой можно переключаться между приложениями без повторной аутентификации. Avanpost FAM реализует функциональность SAML Identity Provider и предоставляет для приложений и систем набор HTTP-методов в соответствии с протоколом SAML 2.0.
SAML 2.0 может использоваться для подключения следующих типов приложений:
- Корпоративные системы с поддержкой SAML 2.0 (Atlassian Jira, Confluence и т.д.).
- SaaS-решения (Slack, GitHub и т.д.).
- Другие Identity Provider с поддержкой аутентификации SAML 2.0 через сторонние провайдеры аутентификации (ADFS, собственные встроенные провайдеры аутентификации, доверенные провайдеры партнёров и т.д.).
Приложение, подключенное по SAML, может пользоваться следующими функциями Системы:
- Централизованная аутентификация в приложение через единое удостоверение пользователя в Системе.
- Многофакторная аутентификация в приложение с использованием:
- Пароля;
- Внешних провайдеров аутентификации (Google, Яндекс, ЕСИА);
- Одноразового кода, доставляемого через SMS и E-mail;
- Одноразовых кодов, формируемых программными TOTP-генераторами (Google Authenticator, Microsoft Authenticator, Яндекс.Ключ и других);
- Мессенджера Telegram;
- Биометрии FIDO2 WebAuthn и токенов FIDO U2F;
- Мобильного приложения PayControl;
- Сертификатов;
- Других факторов, подключенных к Системе.
- Управление доступом пользователей в приложение на этапе аутентификации через Систему.
В Систему встроен сервер SAML 2.0, функционирующий в роли Identity Provider. Для подключения приложения к Системе по SAML 2.0 требуется:
- Зарегистрировать и настроить приложение в Системе. На каждое SAML-приложение требуется создать отдельное приложение через административную консоль Системы.
- Выполнить настройку параметров SAML IDP в приложении.
Система не поддерживает устаревшие версии SAML 1.0/SAML 1.1. Поставщики услуг после настройки будут перенаправлены на URL-адрес считывателя службы обнаружения IDP SAML во время единого входа.
Настройка
- Создать SAML-приложение в Системе:
- После создания приложения настроить параметры в соответствии с таблицей (Приложение В. Таблица настраиваемых атрибутов).
Можно также произвести настройку Discovery-методом. При загрузке файла по адресу https://${baseUrl}/.well-known/samlidp.xml
, где ${baseURL}
базовый адрес сервера Системы, нужно получить файл SAML IdP Metadata XML следующего вида:
<?xml version="1.0" encoding="UTF-8"?> <md:EntityDescriptor validUntil="2024-08-13T07:37:40.675Z" entityID="https://test.my.company.com" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"> <md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol" WantAuthnRequestsSigned="false"> <md:KeyDescriptor use="signing"> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>encoded_certificate</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </md:KeyDescriptor> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat> <md:SingleLogoutService Location="https://test.my.company.com/adfs/ls/IDPLogout" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"/> <md:SingleSignOnService Location="https://test.my.company.com/idp/endpoint/HttpRedirect" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"/> </md:IDPSSODescriptor> </md:EntityDescriptor>
После этого приложение должно автоматически настроить параметры интеграции.
Приложение А. Endpoint'ы SAML 2.0
Доступные IdP endpoint'ы протокола SAML 2.0, предоставляемые Avanpost FAM:
Параметр | Описание | Значение |
---|---|---|
SAML 2.0 Discovery | Указывает расположение XML-документа с параметрами | Адрес /.well-known/samlidp.xml |
Адрес сервера аутентификации (SingleSignOnService в SAML 2.0) | Указывается адрес сервера аутентификации Системы SingleSignOnService | Адрес |
Адрес завершения сессии (SingleLogoutService в SAML 2.0) | Указать адрес сервера аутентификации Системы SingleLogoutService | Адрес /saml2/logout на сервере Системы в виде https://${baseUrl}/saml2/logout , где ${baseURL} - базовый адрес сервера Системы. |
Проверка работы
После выполнения настройки можно выполнить проверку интеграции путём прохождения аутентификации в приложение.
Для этого пользователь должен иметь доступ к приложению (доступ к приложениям в Системе выдаётся посредством групп) и у него должны быть указаны корректные значения атрибутов профиля пользователя в соответствии с требованиями подключаемого приложения и выполненными интеграционными настройками.
Приложение В. Таблица настраиваемых атрибутов
Атрибут | Описание | Обязательность |
---|---|---|
Logout | Адрес сервиса на стороне приложения, отвечающего за прекращение сессий в запросе формата SAML LogoutRequest . | Нет |
ACS | Assertion Consumer Service (Assertion Consumert Service URL в соответствии со спецификацией SAML Core 2.0) – адрес сервиса на стороне приложения, на который должен быть отправлен ответ. | Да |
Базовый URL | Адрес, на который пользователь будет перенаправляться при переходе из личного кабинета. | Нет |
Значение NameID | Передаваемое значение в идентификатор имени (NameID в SAMLResponse ) в соответствии с требованиями целевого приложения. Выбирается из основного или дополнительного атрибута. | Да |
Issuer | Уникальный идентификатор приложения (Issuer в соответствии со спецификацией SAML 2.0) | Да |
NameID Format | Формат передачи формата идентификатора имени (
| Да |