Создать SAML-федерацию для AD FS
Настройка AD FS в этой инструкции описана на примере ОС Windows Server 2019, для других версий шаги могут отличаться.
Настраивать Active Directory Federation Services (AD FS) нужно в соответствии с рекомендациями компании Microsoft по развертыванию кластеров и прокси-серверов AD FS.
- Если у вас нет сертификата, выпущенного у AD FS, выпустите его.
- Создайте федерацию на стороне Selectel.
- Настройте отношения доверия.
- Если при создании федерации на стороне Selectel вы отметили чекбокс Подписывать запросы аутентификации, загрузите сертификат для подписи запросов.
- Настройте Claims Mapping.
1. Выпустить сертификат
Выпустите сертификат у вашего поставщика удостоверений, подробнее в инструкции Сертификаты.
Вы можете создать федерацию без сертификата и добавить его позже, но без сертификата федерация работать не будет.
2. Создать федерацию на стороне Selectel
-
В панели управления в верхнем меню нажмите Аккаунт.
-
Перейдите в раздел Федерации.
-
Нажмите Добавить федерацию и выберите SAML.
-
В блоке Настройки федерации:
4.1. Введите имя федерации.
4.2. Опционально: введите описание федерации.
4.3. Измените время жизни сессии, в течение которой будет авторизован пользователь без необходимости повторной аутентификации, или оставьте значение по умолчанию (24 часа). Вы можете указать значение от 1 до 720 часов.
-
В блоке Настройки 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.
-
Нажмите Продолжить. Вы будете перенаправлены на страницу добавления сертификата.
-
Введите имя сертификата.
-
Вставьте сертификат, который вы выпустили на этапе 1. Он должен начинаться с
-----BEGIN CERTIFICATE-----и заканчиваться-----END CERTIFICATE----- -
Нажмите Добавить сертификат → Завершить добавление федерации.
3. Настроить отношения доверия
-
На сервере AD FS откройте Server Manager.
-
В меню Tools выберите AD FS Management.
-
В блоке Actions выберите Relying Party Trust → Add Relying Party Trust.
-
На этапе Welcome:
4.1. Выберите Claims aware.
4.2. Нажмите Start.
-
На этапе Select Data Source:
5.1. Выберите Enter data about the relying party manually.
5.2. Нажмите Next.
-
На этапе Specify Display Name:
6.1. В поле Display name введите имя для отношений доверия.
6.2. Нажмите Next.
-
На этапе Configure Certificate:
7.1. Если при создании федерации на стороне Selectel вы отметили чекбокс Подписывать запросы аутентификации, скачайте сертификат для подписи запросов и вставьте его.
7.2. Нажмите Next.
-
На этапе 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.
-
На шаге Configure Identifiers:
9.1. В поле URL введите адрес —
https://api.selectel.ru/v1/federations/saml/<federation_id>. Укажите<federation_id>— ID федерации на стороне Selectel, можно посмотреть в панели управления: в верхнем меню нажмите Аккаунт → раздел Федерации → строка федерации → поле ID.9.2. Нажмите Add → Next.
-
На шаге Choose Access Control Policy:
10.1. Опционально: укажите, кому будет доступна аутентификация с помощью этой федерации. По умолчанию выбрана политика Permit for everyone, которая разрешает доступ для всех пользователей.
10.2. Нажмите Next.
-
На шаге Ready to Add Trust:
11.1. Проверьте данные.
11.2. Нажмите Close.
4. Загрузить сертификат для подписи запросов
Сертификат для подписи запросов нужно загрузить, если при создании федерации на стороне Selectel на этапе 2 вы отметили чекбокс Подписывать запросы аутентификации.
- На сервере AD FS откройте папку Service → Relaying Party Trust.
- Нажмите на созданный Relaying Party Trust.
- Справа в разделе Actions в блоке с именем созданного Relying Party Trust нажмите Properties.
- Откройте вкладку Signature.
- Нажмите Add.
- Загрузите сертификат для подписи запросов, который вы скачали при настройке отношений доверия на шаге 7.1.
5. Настроить Claims Mapping
После успешной аутентификации в AD FS в Selectel придет SAML-сообщение. Чтобы верно идентифицировать пользователя, необходимо настроить соответствие данных пользователя элементам SAML-сообщения.
-
На сервере AD FS откройте папку Service → Relying Party Trusts.
-
Нажмите правой кнопкой мыши на ваш Relying Party Trusts и выберите Edit Claim Issuance Policy.
-
Нажмите Add Rule.
-
На шаге Choose Rule Type:
4.1. В поле Claim rule template выберите Send LDAP Attributes as Claims.
4.2. Нажмите Next.
-
На шаге 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.
-
Нажмите Finish → OK.