Исходные данные:
Active Directory имя test.local
AD FS сервер adfs.test.local
Сервер nextcloud https://next.test.local
включены модули: LDAP, SSO
Использованы:
https://www.virtualease.fr/nextcloud-authentication-active-directory-sso-via-adfs-saml/
1. Настраиваем модуль LDAP.
2. Разворачиваем AD FS
Включаем
Service - Authentication Methods
блоки Intranet - Extranet
Microsoft Passport Authentication
3. Открываем настройку SSO на nextcloud
Заполняем поля:
General
sAMAccountName
Identity Provider Data
http://adfs.test.local/adfs/services/trust
Эту ссылку можно посмотреть в свойствах AD FS (Federation Service Properties)
https://adfs.test.local/adfs/ls/IdPInitiatedSignon
Show optional Identity Provider settings ...
Добавляем сертификат.
Его берем с AD FS.
Просмотр - Состав - Копировать в файл (Base-64)
Открываем в тестовом редакторе этот файл, например Notepad++
Вставляем сертификат в nextcloud
4. Download metadata XML
Забираем файл на AD FS
5. Импортируем XML
на русском
на русском
на русском
на русском
на русском
Проверим свойствах
на русском
на русском
6. Изменить политику подач запроса (Edit Claim Issuance Policy)
SAM-Account-Name - sAMAccountName
Surname - Surname
Given-Name - Given Name
E-Mail-Addresses - E-mail Address
Display-Name - Common Name
на русском
на русском
на русском
на русском
на русском
7. В Internet Explorer добавить сайт adfs.test.local в Местная интрасеть.
И включить "Автоматический вход в сеть с текущим именем пользователя"
8. Для того, чтобы и в Chrome был автоматический вход, нужно на AD FS добавить user-agent
В Powershell на Ad FS сервере:
Get-ADFSProperties | Select -ExpandProperty WIASupportedUserAgents
Добавляем user-agent
Set-AdfsProperties -WIASupportedUserAgents ((Get-ADFSProperties | Select -ExpandProperty WIASupportedUserAgents) + "Chrome" + "Mozilla/5.0")
перзапускаем службу AD FS
Restart-Service adfssrv
После настроен при подключении к nextcloud и нажатии "Вход через SSO и SAML" пользователь будет авторизоваться автоматически.