Содержание
- Системные требования
- 1. Подготовка AD FS для настройки SSO
- 1.1. Проверьте, что ссылка на файл метаданных AD FS доступна публично.
- 1.2. Проверьте/включите проверку подлинности с помощью форм
- 1.3. Включение поддержки протокола TLS 1.2
- 1.3.1. Для того чтобы добавить AD FS в IdP в Microsoft Active Directory Federation Service на сервере Microsoft Windows Server 2019 или ниже необходимо включить поддержку протокола TLS 1.2
- 1.3.2. Затем выполните следующую команду, чтобы включить строгую аутентификацию:
- 1.3.3. (Опционально) Выполните следующие команды, чтобы отключить SSL0 на клиенте ADFS:
- 2. Настройка Корпоративный сервер 2024 (SP)
- 3. Настройка AD FS IdP
- 4. Проверка работы Р7-Диск SP и AD FS IdP
Системные требования
Требуется сертификат типа wildcard для Корпоративного сервера 2024 приобретённый в центре сертификации (например, Let’s Encrypt, GlobalSign и др.).
1. Подготовка AD FS для настройки SSO
1.1. Проверьте, что ссылка на файл метаданных AD FS доступна публично.
Для этого:
- В консоли Диспетчер сервера откройте Tools (Инструменты) -> AD FS Management (Управление AD FS),
- Перейдите в AD FS \ Service \ Endpoints (AD FS \ Служба \ Конечные точки),
- Найдите в таблице строку с типом Federation Metadata (Метаданные федерации). Ссылка на файл метаданных IdP формируется по следующей схеме:
https://{adfs-domain}/{path-to-FederationMetadata.xml}

- Можно также воспользоваться следующей командой PowerShell:
(Get-ADFSEndpoint | Where {$_.Protocol -eq "FederationMetadata" -or $_.Protocol -eq "Federation Metadata"}).FullUrl.ToString()- В результате вы должны получить ссылку следующего вида:
https://testad.devr7.ru/FederationMetadata/2007-06/FederationMetadata.xml
- Для проверки, что AD FS стартовал корректно, перейдите в браузере по ссылке, полученной ранее. Должна скачаться/отобразится xml. Скопируйте ссылку на xml-файл метаданных: она потребуется на следующем шаге.
1.2. Проверьте/включите проверку подлинности с помощью форм
- Для работы SSO из интранета потребуется включить опцию Forms Authentication (Проверка подлинности с помощью форм) в окне Edit Global Authentication Policy (Изменить глобальную политику проверки подлинности), вызываемом через контекстное меню AD FS / Authentication Policies (AD FS / Политики проверки подлинности),

1.3. Включение поддержки протокола TLS 1.2
1.3.1. Для того чтобы добавить AD FS в IdP в Microsoft Active Directory Federation Service на сервере Microsoft Windows Server 2019 или ниже необходимо включить поддержку протокола TLS 1.2
- Запустите Windows PowerShell с параметром «Запуск от имени администратора».
- Выполните следующие команды, чтобы включить TLS2 на клиенте ADFS:
New-Item ‘HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client’ -Force New-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client’ -name ‘Enabled’ -value ‘1’ –PropertyType ‘DWORD’ New-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client’ -name ‘DisabledByDefault’ -value ‘0’ –PropertyType ‘DWORD’
1.3.2. Затем выполните следующую команду, чтобы включить строгую аутентификацию:
New-ItemProperty -path ‘HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319’ -name ‘SchUseStrongCrypto’ -value ‘1’ -PropertyType ‘DWord’
1.3.3. (Опционально) Выполните следующие команды, чтобы отключить SSL0 на клиенте ADFS:
New-Item ‘HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client’ -Force | Out-Null New-ItemProperty -path ‘HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\ Protocols\SSL 3.0\Client’ -name ‘Enabled’ -value ‘0’ -PropertyType ‘DWord’ -Force | Out-Null New-ItemProperty -path ‘HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\ Protocols\SSL 3.0\Client’ -name ‘DisabledByDefault’ -value 1 -PropertyType ‘DWord’ -Force | Out-Null
- Закройте все окна управления сервером ADFS.
2. Настройка Корпоративный сервер 2024 (SP)
2.1. Настраиваем SSO аутентификацию
- Проверяем, что ссылка на файл метаданных ADFS доступна публично:
https://testad.devr7.ru/FederationMetadata/2007-06/FederationMetadata.xml ↗,
Гдеhttps://{adfs-domain}/FederationMetadata/2007-06/FederationMetadata.xml
Переходим в модуль Р7-Управление ➜ Общие настройки ➜ Настройки SSO

- И редактируем поля Настройки SSO:
Где:
- Metadata IdP (URL) — указываем ссылку на конфигурацию IdP сервера (шаг 1.1);
- Issuer (SP Entity ID) — редактируем ссылку на метаданные SP сервера по следующей схеме:
https://{r7disk-domain}/saml2/Metadata; - Файл сертификата — добавляем .pfx сертификат для подписи сообщений;
- Пароль сертификата — указываем пароль на .pfx сертификат (При загрузке нового сертификата пароль обязателен. Для существующего сертификата пароль необязателен (сохранится старый). Если указать новый пароль — он обновится.).
Нажимаем Сохранить.
2.2. Включаем SSO аутентификацию
- Открываем файл
/opt/r7-office/Api/appsettings.json
nano /opt/r7-office/Api/appsettings.json
# Меняем значение «esiaType»:
# Если параметр «esiaType» отсутствует, то вы можете добавить его самостоятельно:
"esiaType": "saml2",
"rabbitMq": {
"host": "localhost",
"username": "guest",
"password": "guest",
"timeout": 10
},- Перезапускаем службы командой:
supervisorctl restart all
3. Настройка AD FS IdP
3.1. Добавляем отношение доверия проверяющей стороны
- В консоли Диспетчер сервера откройте Tools (Инструменты) -> AD FS Management (Управление AD FS);

Консоль AD FS Management - В панели управления AD FS выберите Relying Party Trusts (Отношения доверия проверяющей стороны). Выберите команду Add Relying Party Trust… (Добавить отношение доверия проверяющей стороны…) справа:
- Откроется Мастер добавления отношений доверия проверяющей стороны;

Мастер добавления отношений доверия проверяющей стороны
- Откроется Мастер добавления отношений доверия проверяющей стороны;
- В окне мастера выберите переключатель Import data about the relying party published online or on a local network (Импорт данных о проверяющей стороне, опубликованных в Интернете или локальной сети), вставьте отредактированную ранее ссылку на файл метаданных Р7-Диск SP (шаг 2.2) в поле Federation metadata address (host name or URL) (Адрес метаданных федерации (имя узла или URL-адрес)) и нажмите кнопку Next (Далее);

Импорт данных о проверяющей стороне по ссылке на метаданные SP - В поле Display name (Отображаемое имя) укажите любое имя и нажмите кнопку Next (Далее);

Указание отображаемого имени проверяющей стороны - Выберите опцию I do not want to configure multi-factor authentication settings for this relying party trust at this time (Сейчас не настраивать параметры для этого отношения доверия с проверяющей стороной) и нажмите кнопку Next (Далее);
- Выберите опцию Permit all users to access this relying party (Разрешить доступ к этой проверяющей стороне всем пользователям) и нажмите кнопку Next (Далее);

Настройка политики доступа для проверяющей стороны - Проверьте полученные настройки и нажмите кнопку Next (Далее);

Итоговый экран проверки настроек - Оставьте опцию, выбранную по умолчанию, без изменений и нажмите кнопку Close (Закрыть).

Завершающий экран мастера с опцией по умолчанию
3.2. Добавляем правила преобразования выдачи
- Откроется новое окно. На вкладке Issuance Transform Rules (Правила преобразования выдачи) нажмите кнопку Add Rule… (Добавить правило…),

Вкладка Issuance Transform Rules
3.2.1. Добавляем отправку атрибутов LDAP как утверждений
- Выберите опцию Send LDAP Attributes as Claims (Отправка атрибутов LDAP как утверждений) из списка Claim rule template (Шаблон правила утверждения) и нажмите кнопку Next (Далее);

Выбор шаблона Send LDAP Attributes as Claims - Напишите любое имя в поле Claim rule name (Имя правила утверждения). Выберите опцию Active Directory из списка Attribute store (Хранилище атрибутов) и заполните форму Mapping of LDAP attributes to outgoing claim types (Сопоставление атрибутов LDAP типам исходящих утверждений) согласно приведенной ниже таблице. Когда все будет готово, нажмите кнопку Finish (Завершить).

Сопоставление атрибутов LDAP типам исходящих утверждений
Где:
| LDAP ATTRIBUTE (АТРИБУТ LDAP) | OUTGOING CLAIM TYPE (ТИП ИСХОДЯЩЕГО УТВЕРЖДЕНИЯ) |
|---|---|
| Given-Name | givenName[0] |
| Surname | sn |
| E-Mail-Addresses |
3.2.2. Добавляем преобразование входящего утверждения
- В окне Edit Claim Rules (Изменить правила утверждений) снова нажимите кнопку Add Rule… (Добавить правило…), выберите опцию Transform an Incoming Claim (Преобразование входящего утверждения) из списка Claim rule template (Шаблон правила утверждения) и нажмите кнопку Next (Далее);

Выбор шаблона Transform an Incoming Claim - Напишите любое имя в поле Claim rule name (Имя правила утверждения) и выберите следующие параметры из списков:

Настройка преобразования входящего утверждения
Где:
- Incoming claim type (Тип входящего утверждения): mail,
- Outgoing claim type (Тип исходящего утверждения): Name ID,
- Outgoing name ID format (Формат ИД исходящего имени): Email
Когда все будет готово, нажмите кнопку Finish (Завершить).
3.2.3. Добавляем настраиваемое правило утверждения
- Для корректной работы logout из AD FS, необходимо добавить Custom Claim Rule (настраиваемое правило утверждения), где {r7disk-domain} нужно заменить на домен своего SP, а {adfs-domain} заменить на домен IdP:
c:[Type == "mail"]
=> issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/namequalifier"] = "http://{adfs-domain}/adfs/services/trust", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/spnamequalifier"] = "https://{r7disk-domain}/saml2/Metadata");- Нажмите кнопку OK:

Окно ввода настраиваемого правила утверждения
3.2.4. Проверяем вкладку правила преобразования выдачи
- Должно получиться примерно так:

Итоговый список правил преобразования выдачи
4. Проверка работы Р7-Диск SP и AD FS IdP
- Вход в Р7-Диск на стороне SP
- Перейдите на страницу аутентификации Р7-Диск (например, https://cddisk-ldp.devr7.ru).
- Нажмите на кнопку «Войти через ССО». Если этой кнопки нет, то SSO не включен.

Кнопка «Войти через ССО» на странице аутентификации Р7-Диск
- Если всё настроено верно в SP и IdP, мы будем перенаправлены на форму логина в AD FS IdP.
- Введите логин и пароль учетной записи в AD FS IdP и нажмите кнопку «Вход».

Форма входа в AD FS IdP
- Введите логин и пароль учетной записи в AD FS IdP и нажмите кнопку «Вход».
- Если учетные данные указаны правильно, мы будем перенаправлены на страницу модуля Р7-Диск (если такого пользователя нет на портале, он будет создан автоматически, а если данные были изменены в IdP, они будут обновлены).

Страница модуля Р7-Диск после успешного входа
При внесении каких-либо изменений в разделе «Relying Party Trusts» в AD FS обходимо выполнять обновление этих данных нажатием на «Update from Federation Metadata»














