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, в которой все пользователи имеют заполненный e-mail адрес.
- SSL сертификат для вашей страницы входа ADFS.
Мы предоставляем:
- URL логина в формате https://raketa.travel/sso/acs?clientId=YOUR_CLIENT_ID.
- URL логаута в формате https://raketa.travel/sso/slo?clientId=YOUR_CLIENT_ID.
После всех необходимых настроек вам следует предоставить:
Заполните и отправьте нам файл.xlsx для настройки следующими значениями:
- Entity ID – URL вашего внутреннего корпоративного портала.
- SALM SSO URL – URL вашей страницы авторизации, который мы будем использовать для перенаправления пользователей в вашу систему идентификации.
- Remote logout URL – ваш URL, который мы будем использовать для перенаправления пользователей после их выхода из системы.
- X509 Certificate – автоматически сгенерированный файл сертификата. После установки нужно скачать, см. пункт 5.
После удовлетворения базовых требований установите ADFS. Конфигурация и установка подробно описаны в базе знаний Microsoft:
https://docs.microsoft.com/ru-ru/windows-server/identity/ad-fs/deployment/deploying-a-federation-server-farm
После полной установки 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 логина в формате 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-адрес: предоставленный нами URL логаута в формате https://raketa.travel/sso/slo?clientId=YOUR_CLIENT_ID
5. Получение X509 сертификата
Экспорт сертификата поставщика удостоверений.
1.Откройте панель управления ADFS, выберите ADFS > Служба > Сертификаты, затем дважды щелкните сертификат в разделе «Подписание токена» (Token-signing на примере) . Вы также можете щелкнуть поле правой кнопкой мыши и выбрать «Просмотреть сертификат» (View Certificate на примере) в контекстном меню. См. пример:
2. На экране «Сертификат» откройте вкладку «Сведения» (Details на примере), выберите « Копировать в файл» (Copy to File на примере) , затем выберите «ОК» . См. пример:
3. На экране Certificate Export Wizard выберите Далее (Next на примере). См. пример:
4. Выберите Base-64 encoded X.509 (.CER), затем снова нажмите «Далее». См. пример:
5. На экране Certificate Export Wizard выберите «Обзор» (кнопка Browse на примере) , чтобы указать место, куда вы хотите экспортировать сертификат поставщика удостоверений, а затем укажите имя файла. См. пример:
6. Выберите Сохранить . На экране Certificate Export Wizard убедитесь, что путь к файлу указан правильно, затем нажмите «Далее» .
7. В окне «Завершение работы мастера экспорта сертификатов» (Completing the Certificate Export Wizard на примере) выберите «Готово» (кнопка Finish на примере) , затем нажмите «ОК» , чтобы подтвердить успешный экспорт. См. пример: