Справка

Настройка SAML SSO интеграции с ADFS

Облачный Pyrus
Безоблачный Pyrus

Общая информация

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

  1. Откройте раздел Организация в левом нижнем углу экрана.

  2. Внизу страницы в разделе Настройка SAML нажмите кнопку Настроить. Откроется окно настроек SAML-провайдера.

  3. В поле Вход в Pyrus выберите одно из предложенных значений:

    • Pyrus + SAML — включает одновременный вход через стандартные механизмы Pyrus (одноразовый код, пароль и т.п.) и SAML;
    • SAML — включает вход только через SAML;
    • Вход через SAML отключен — отключает возможность входа через SAML.

  4. В поле URL IdP провайдера введите URL вашего ADFS сервера (например, https://your-domain.com/adfs/ls/ ).

  5. В поле Сертификат провайдера введите строковое представление сертификата для проверки цифровой подписи в формате BASE64 (требуется выгрузить сертификат из ADFS с типом Для подписи маркера). Нажмите кнопку Сохранить.

  6. Скопируйте и затем перейдите по ссылке 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 для аутентификации.

Чтобы создать отношение доверия с проверяющей стороной для федерации, выполните следующие действия.

  1. Войдите на ваш сервер ADFS и откройте Server Manager.
  2. Откройте консоль управления ADFS: Tools > AD FS Management.
  3. В списке действий выберите Add Relying Party Trust.
  4. Откроется окно помощника. На первой странице выберите Claims aware и нажмите Start.
  5. Выберите Import data about the relying party from a file и укажите файл метаданных, полученный на предыдущем шаге при конфигурировании настроек интеграции SAML в Pyrus, нажмите Next.
  6. Задайте имя, например «Pyrus», и нажмите Next.
  7. На следующей странице можно выбрать, кому будет доступна аутентификация с помощью этой федерации. По умолчанию выбрана политика Permit for everyone, которая разрешает доступ для всех пользователей.
  8. На странице Ready to Add Trust проверьте введенные данные и нажмите Close.

Настройка Claims Mapping

Когда ADFS аутентифицирует пользователя, она отправляет сервис-провайдеру SAML-сообщение с подтверждением успешной аутентификации. Чтобы верно идентифицировать пользователя, настройте соответствие данных пользователя элементам SAML-сообщения.

  1. В консоли управления ADFS в блоке Relying Party Trusts нажмите правой кнопкой мыши на созданное ранее отношение доверия с проверяющей стороной и выберите Edit Claim Issuance Policy.

  2. В открывшемся окне нажмите Add Rule.

  3. Выберите Send Claims Using a Custom Rule и нажмите Next.

  4. Поле 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" являются обязательными.

  5. Нажмите OK.

Заключение

После успешной настройки входа в Pyrus с помощью SAML SSO пользователи организации смогут аутентифицироваться в Pyrus, используя уже имеющийся у них набор аутентификационных данных.

Была ли эта статья полезной?