Настройка SAML SSO интеграции с ADFS
Общая информация
SSO (Single Sign-On) — технология единого входа, благодаря которой пользователи могут авторизоваться в нескольких приложениях с помощью одного набора учетных данных.
Security Assertion Markup Language (SAML) — открытый стандарт передачи идентификационных данных между облачными системами. Как правило, его используют в больших организациях, где есть актуальная база пользователей, работают политики безопасности и т. п., что делает доступ к контенту в сервисе более безопасным и контролируемым.
ADFS (Active Directory Federation Services) — компонент Windows Server, обеспечивающий функционал провайдера аутентификации для веб-приложений. ADFS расширяет возможности использования технологии единого входа, доступной в пределах одной границы безопасности или организации, в веб-приложениях. Службы ADFS тесно интегрированы с Active Directory. ADFS извлекает атрибуты пользователей из Active Directory, а также проверяет подлинность пользователей в этой системе.
Интеграция Pyrus со службами ADFS SAML позволяет незарегистрированным пользователям авторизоваться в Pyrus, используя логин и пароль от вашей корпоративной системы.
Предварительные требования
Чтобы настроить интеграцию Pyrus c ADFS с помощью SAML, вам потребуется:
- установленный и настроенный сервер ADFS (поддерживаемые версии ADFS 2.0, 2.1, 3.0, 4.0, 5.0);
- организация в Pyrus c возможностью входа с помощью технологии SAML.
Обратите внимание: данная инструкция предназначена для ОС Windows Server 2016. Для других версий Windows шаги могут отличаться.
Настройка интеграции с SAML в Pyrus
Откройте раздел Организация в левом нижнем углу экрана.
Внизу страницы в разделе Настройка SAML нажмите кнопку Настроить. Откроется окно настроек SAML-провайдера.
В поле Вход в Pyrus выберите одно из предложенных значений:
- Pyrus + SAML — включает одновременный вход через стандартные механизмы Pyrus (одноразовый код, пароль и т.п.) и SAML;
- SAML — включает вход только через SAML;
- Вход через SAML отключен — отключает возможность входа через SAML.
В поле URL IdP провайдера введите URL вашего ADFS сервера (например, https://your-domain.com/adfs/ls/ ).
В поле Сертификат провайдера введите строковое представление сертификата для проверки цифровой подписи в формате BASE64 (требуется выгрузить сертификат из ADFS с типом Для подписи маркера). Нажмите кнопку Сохранить.
Скопируйте и затем перейдите по ссылке Metadata URL, сохраните файл метаданных Service Provider`а в .xml-формате. Он потребуется при настройке ADFS сервера.
Поведение системы после настройки SAML
Примечание: SAML не предусматривает механизма автоматического удаления или блокировки пользователей на стороне конечного приложения при удалении или блокировке пользователя на стороне Identity Provider. В случае удаления или блокировки пользователя в Active Directory его также следует вручную заблокировать или удалить в Pyrus.
Также можно рассмотреть альтернативные механизмы синхронизации пользователей в Pyrus для Active Directory и G Suite.
Настройка аутентификации на сервере ADFS
После того, как вы настроили интеграцию с SAML-провайдером и получили файл метаданных, вам необходимо настроить сервер ADFS.
Чтобы настроить аутентификацию на сервере ADFS выполните следующие действия.
Создание отношения доверия с проверяющей стороной
ADFS требует создавать отношение доверия с проверяющей стороной (relying party trust) для каждого поставщика услуг (Service Provider, SP), который будет использовать ADFS для аутентификации.
Чтобы создать отношение доверия с проверяющей стороной для федерации, выполните следующие действия.
- Войдите на ваш сервер ADFS и откройте Server Manager.
- Откройте консоль управления ADFS: Tools > AD FS Management.
- В списке действий выберите Add Relying Party Trust.
- Откроется окно помощника. На первой странице выберите Claims aware и нажмите Start.
- Выберите Import data about the relying party from a file и укажите файл метаданных, полученный на предыдущем шаге при конфигурировании настроек интеграции SAML в Pyrus, нажмите Next.
- Задайте имя, например «Pyrus», и нажмите Next.
- На следующей странице можно выбрать, кому будет доступна аутентификация с помощью этой федерации. По умолчанию выбрана политика Permit for everyone, которая разрешает доступ для всех пользователей.
- На странице Ready to Add Trust проверьте введенные данные и нажмите Close.
Настройка Claims Mapping
Когда ADFS аутентифицирует пользователя, она отправляет сервис-провайдеру SAML-сообщение с подтверждением успешной аутентификации. Чтобы верно идентифицировать пользователя, настройте соответствие данных пользователя элементам SAML-сообщения.
В консоли управления ADFS в блоке Relying Party Trusts нажмите правой кнопкой мыши на созданное ранее отношение доверия с проверяющей стороной и выберите Edit Claim Issuance Policy.
В открывшемся окне нажмите Add Rule.
Выберите Send Claims Using a Custom Rule и нажмите Next.
Поле Claim Rule Name введите имя правила, например «CustomRule». В поле Custom Rule укажите правило:
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/otherphone"), query = ";userPrincipalName,mail,givenName,sn,telephoneNumber;{0}", param = c.Value);
Нажмите Finish.
Примечание: поля "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" и "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" являются обязательными.
Нажмите OK.
Заключение
После успешной настройки входа в Pyrus с помощью SAML SSO пользователи организации смогут аутентифицироваться в Pyrus, используя уже имеющийся у них набор аутентификационных данных.