Перейти к основному содержимому

Создать SAML-федерацию для AD FS

Последнее изменение:
к сведению

Настройка AD FS в этой инструкции описана на примере ОС Windows Server 2019, для других версий шаги могут отличаться.

Настраивать Active Directory Federation Services (AD FS) нужно в соответствии с рекомендациями компании Microsoft по развертыванию кластеров и прокси-серверов AD FS.

  1. Если у вас нет сертификата, выпущенного у AD FS, выпустите его.
  2. Создайте федерацию на стороне Selectel.
  3. Настройте отношения доверия.
  4. Если при создании федерации на стороне Selectel вы отметили чекбокс Подписывать запросы аутентификации, загрузите сертификат для подписи запросов.
  5. Настройте Claims Mapping.

1. Выпустить сертификат

Выпустите сертификат у вашего поставщика удостоверений, подробнее в инструкции Сертификаты.

Вы можете создать федерацию без сертификата и добавить его позже, но без сертификата федерация работать не будет.

2. Создать федерацию на стороне Selectel

  1. В панели управления в верхнем меню нажмите Аккаунт.

  2. Перейдите в раздел Федерации.

  3. Нажмите Добавить федерацию и выберите SAML.

  4. В блоке Настройки федерации:

    4.1. Введите имя федерации.

    4.2. Опционально: введите описание федерации.

    4.3. Измените время жизни сессии, в течение которой будет авторизован пользователь без необходимости повторной аутентификации, или оставьте значение по умолчанию (24 часа). Вы можете указать значение от 1 до 720 часов.

  5. В блоке Настройки IDP:

    5.1. В поле IdP Issuer введите идентификатор поставщика удостоверений — http://<idp_url>/adfs/services/trust.

    Укажите <idp_url> — ваш URL у поставщика удостоверений.

    5.2. Укажите ссылку на страницу входа поставщика удостоверений, куда пользователи будут перенаправляться для аутентификации через SSO — https://<idp_url>/adfs/ls.

    Укажите <idp_url> — ваш URL у поставщика удостоверений.

    5.3. Чтобы пользователи создавались автоматически при первом входе в панель управления по SSO, отметьте чекбокс Автосоздание пользователей. Пользователи будут создаваться с разрешениями, которые вы указали при настройке маппинга групп пользователей. Если не настроить маппинг, пользователи будут создаваться без разрешений и не будут иметь доступа в панель управления.

    Если чекбокс Автосоздание пользователей не отмечен, пользователей потребуется добавлять вручную.

    5.3. Опционально: чтобы запросы аутентификации подписывались, отметьте чекбокс Подписывать запросы аутентификации.

    5.4. Опционально: чтобы пользователям нужно было проходить аутентификацию через SSO при каждом входе, отметьте чекбокс Принудительная аутентификация в IdP. Если чекбокс не отмечен, аутентификацию не нужно будет проходить, пока активны cookies.

  6. Нажмите Продолжить. Вы будете перенаправлены на страницу добавления сертификата.

  7. Введите имя сертификата.

  8. Вставьте сертификат, который вы выпустили на этапе 1. Он должен начинаться с -----BEGIN CERTIFICATE----- и заканчиваться -----END CERTIFICATE-----

  9. Нажмите Добавить сертификатЗавершить добавление федерации.

3. Настроить отношения доверия

  1. На сервере AD FS откройте Server Manager.

  2. В меню Tools выберите AD FS Management.

  3. В блоке Actions выберите Relying Party TrustAdd Relying Party Trust.

  4. На этапе Welcome:

    4.1. Выберите Claims aware.

    4.2. Нажмите Start.

  5. На этапе Select Data Source:

    5.1. Выберите Enter data about the relying party manually.

    5.2. Нажмите Next.

  6. На этапе Specify Display Name:

    6.1. В поле Display name введите имя для отношений доверия.

    6.2. Нажмите Next.

  7. На этапе Configure Certificate:

    7.1. Если при создании федерации на стороне Selectel вы отметили чекбокс Подписывать запросы аутентификации, скачайте сертификат для подписи запросов и вставьте его.

    7.2. Нажмите Next.

  8. На этапе Configure URL:

    8.1. Отметьте чекбокс Enable support for the SAML 2.0 WebSSO protocol.

    8.2. В поле URL введите адрес, на который будут перенаправляться пользователи после аутентификации — https://api.selectel.ru/v1/auth/federations/<federation_id>/saml/acs. Укажите <federation_id> — ID федерации на стороне Selectel, можно посмотреть в панели управления: в верхнем меню нажмите Аккаунт → раздел Федерации → строка федерации → поле ID.

    8.3. Нажмите Next.

  9. На шаге Configure Identifiers:

    9.1. В поле URL введите адрес — https://api.selectel.ru/v1/federations/saml/<federation_id>. Укажите <federation_id> — ID федерации на стороне Selectel, можно посмотреть в панели управления: в верхнем меню нажмите Аккаунт → раздел Федерации → строка федерации → поле ID.

    9.2. Нажмите Add → Next.

  10. На шаге Choose Access Control Policy:

    10.1. Опционально: укажите, кому будет доступна аутентификация с помощью этой федерации. По умолчанию выбрана политика Permit for everyone, которая разрешает доступ для всех пользователей.

    10.2. Нажмите Next.

  11. На шаге Ready to Add Trust:

    11.1. Проверьте данные.

    11.2. Нажмите Close.

4. Загрузить сертификат для подписи запросов

Сертификат для подписи запросов нужно загрузить, если при создании федерации на стороне Selectel на этапе 2 вы отметили чекбокс Подписывать запросы аутентификации.

  1. На сервере AD FS откройте папку ServiceRelaying Party Trust.
  2. Нажмите на созданный Relaying Party Trust.
  3. Справа в разделе Actions в блоке с именем созданного Relying Party Trust нажмите Properties.
  4. Откройте вкладку Signature.
  5. Нажмите Add.
  6. Загрузите сертификат для подписи запросов, который вы скачали при настройке отношений доверия на шаге 7.1.

5. Настроить Claims Mapping

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

  1. На сервере AD FS откройте папку ServiceRelying Party Trusts.

  2. Нажмите правой кнопкой мыши на ваш Relying Party Trusts и выберите Edit Claim Issuance Policy.

  3. Нажмите Add Rule.

  4. На шаге Choose Rule Type:

    4.1. В поле Claim rule template выберите Send LDAP Attributes as Claims.

    4.2. Нажмите Next.

  5. На шаге Configure Claim Rule:

    5.1. В поле Claim rule name введите имя правила.

    5.2. В поле Attribute store выберите Active Directory.

    5.3. В столбце LDAP Attribute укажите, что будет передаваться в качестве идентификатора пользователя (External ID). Можно указать:

    • User-Principal-Name — имя пользователя;
    • E-Mail-Addresses — email.

    5.4. В столбце Outgoing Claim Type выберите Name ID.

  6. Нажмите FinishOK.