Raketa Travel поддерживает технологию единого входа (single sign-on, SSO) через SAML 2.0
. Поставщиком учётных данных (identity provider, IDP) SAML 2.0 может быть любая система, в том числе собственная инсталяция Active Directory Federation Services (ADFS) сервера. ADFS - это сервис, предоставляемый Microsoft, как стандартная роль Windows Server, которая предоставляет возможность входить в WEB-сервисы используя существующие данные аутентификации Active Directory (в большенстве случаев логин/пароль от доменной учётной записи).
1. Подготовка
Для использования ADFS необходимо иметь:
- Сервер с запущенным Microsoft Windows Server. Скриншоты в этой инструкции сделаны с использованием версии 2016.
- Инсталяию Active Directory, в которой все пользователи имеют заполненый email адрес.
- SSL сертификат для вашей страницы входа ADFS
После удовлетворения базовых требований необходимо установить ADFS. Конфигурация и установка подробно описана в базе знаний Microsoft.
После полной установки ADFS посмотрите значение "SAML 2.0/W-Federation" в разделе "Конечные точки". Если вы не меняли настройки во время установки, то значение будет "/adfs/ls/".
2. Добавление Отношения доверия проверяющей стороны
В этот момент вы уже готовы настроить связь между ADFS и Raketa Travel. Эта связь устанавливается через "Отношения доверия проверяющей стороны".
Откройте директорию "Отношения доверия проверяющей стороны" в оснастке "Управление AD FS". На панеле действий выберите "Добавить отношения доверия проверяющей стороны". Это действие запустит мастер настройки.
На шаге "Выбор источника данных" выберите "Ввод данных о проверяющей стороне вручную"
На следующем шаге укажите любое желаемое имя и примечания.
Если на следующем шаге предлогается выбрать профиль - нужно выбрать "Профиль AD FS" ("AD FS profile").
На шаге "Настройка сертификата" сертификат не указывается.
На шаге "Настройка URL-адреса" включите поддержку протокола SAML 2.0 WebSSO и введите предоставленный нами URL. Этот URL будет в формате https://raketa.travel/sso/acs?clientId=YOUR_CLIENT_ID
На шаге "Настройка идентификатора" введите "https://raketa.travel" и нажмите кнопку "Добавить"
На следующих шагах вы можете настроить дополнительные параметры, применяемые к данному отношению.
3. Настройка политики подачи запросов
После создания Отношения доверия проверяющей стороны необходимо настроить политику подачи запросов. Для этого в контекстном меню отношения необходимо выбрать "Изменить политику подачи запросов".
В открывшемся окне необходимо добавить 2 правила.
Первое правило.
- Шаблон правила: "Отправка атрибутов LDAP как утверждений".
- Хранилище атрибутов: Active Directory.
- Сопостовление: E-Mail-Addresses => Адрес электронной почты.
Второе правило.
- Шаблон правила: "Преобразование входящего утверждения"
- Тип входящего утверждения: "Адрес электронной почты"
- Тип исходящего утверждения: "ИД имени"
- Формат ИД исходящего имени: "Электронная почта"
- "Пройти по всем значениям утверждений"
4. Дополнительная настройка утверждения
После настройки политик подачи запросов необходимо дополнительно настроить отношение. Для этого в контекстном меню отношения необходимо выбрать "Свойства".
На вкладке "Дополнительно" должен быть выставлен SHA-256 в качестве алгоритма хеширования.
На вкладке "Конечные точки" необходимо добавить точку завершения сеанса. Для этого нажать кнопку "Добавить SAML", в открывшемся окне:
- Тип конечной точки: "Завершение сеанса SAML"
- Привязка: "Redirect"
- Доверенный URL-адрес: предоставленный адрес в формате https://raketa.travel/sso/slo?clientId=YOUR_CLIENT_ID
5. Получение отпечатка сертификата подписи токена
Подтверждение входящих запросов на стороне Raketa Travel с использованием отпечатка токена подписи ADFS. Для его получения необходимо открыть консоль PowerShell от имени пользователя с правами администратора и выполнить команду
Get-AdfsCertificate Token-Signing
Из вывода необходимо предоставить строчку с отпечатком (Thumbprint).