SECTOR NORD AG Tipp des Monats
[SNAG-View] Nextcloud + ADFS
In diesem Tipp erläutern wir Ihnen wie Sie den Zugriff auf NextCloud über AD FS (Active Directory Federation Services) konfigurieren müssen.
Durch AD FS und die Möglichkeit, sich gegenüber externen Services per Single Sign-on zu authentifizieren, ergeben sie zahlreiche Vorteile. User benötigen nur noch eine einzige Kennung und müssen sich für alle in der täglichen Arbeit benötigten Dienste nur einmalig authentifizieren.
Systemvoraussetzung
- Nextcloud
- AD FS Server
Für die Verwendung eines AD FS Servers in der Nextcloud sollte der AD FS Server und die Nextcloud bereits funktionieren.
Vorarbeit
Der mcrypt Support in php ist nicht zwingend erforderlich, aber von mir empfohlen.
php --info |grep mcrypt --> Keine Rückmeldung, mcrypt ist nicht installier. pecl install –nodeps mcrypt-snapshot |
Im PHP "conf.d" Verzeichnis muss eine mcrypt.ini mit folgendem Inhalt erstellt werden
extension=mcrypt.so |
Das Nextcloud Plugin SSO & SAML sollte in der Version >5 vorhanden sein.
DNS und Zertifikate
Der Nextcloud Server und AD FS / WAP Server sollten alle eindeutige DNS Namen und gültige Zertifikate haben.
openssl s_client -showcerts -connect adfs.sectornord.com:443 openssl s_client -showcerts -connect cloud.sectornord.com:443 curl https: //adfs.sectornord.com curl https: //cloud.sectornord.com |
AD FS
Einrichten der Authentifizierungsmethoden
Wir benötigen die Formularauthentifizierung.
Vertrauensstellung für die Nextcloud einrichten
Neue Vertrauensstellung generieren
Add -AdfsRelyingPartyTrust -Name nextcloud -Identifier nextcloud -ProtocolProfile SAML Set -AdfsRelyingPartyTrust -Targetname nextcloud -EncryptionCertificateRevocationCheck none -SigningCertificateRevocationCheck none |
Im neuen Objekt wird der Bezeichner gepflegt:
URL: https: //cloud.sectornord.com/apps/user_saml/saml/metadata |
Unter Endpunkt
Achtung die Bindung muss "POST" sein.
URL: https: //cloud.sectornord.com/apps/user_saml/saml/acs |
Mehr muss nicht in der Vertrauensstellung "nextcloud" konfiguriert werden.
Zugriffsrichtlinie
Anspruchsausstellungsrichtinie
Wir benötigen nun zwei Anspruchsausstellungsrichtlinien.
Login (SAMACCOUNTNAME)
Attribute
Given-Name | Angegebener Name |
Surname | Nachname |
SAM-Account-Name | sAMAccountName |
E-Mail-Addresses | E-Mail-Adresse |
Display-Name | Common Name |
Konfiguration Nextcloud
Anlegen einer Identität
Als Attribute für das Login sind in der Austellungstransformationsregel "SAMAAccountName" und das Feld "UID" zu hinterlegen.
In der zweiten Spalte geben wir einen passenden Namen ein SSO/SAML oder einfach die Firma. Erlauben Sie die Verwendung von mehreren Backends für die Anmeldung.
Identifikationsmerkmal URL | http://adfs.sectornord.com/adfs/services/trust |
URL zur Anmeldung ADFS | https://adfs.sectornord.com/adfs/ls/ |
Öffnen Sie jetzt den Chrome Browser und öffnen Sie ihre Nextcloud im privaten Modus mit aktivierten Developer-Tools
Aktivieren Sie unbedingt "Preserve log" und öffnen Sie ihre SAML Anmeldung ("Sector Nord AG" in unserem Fall) und melden Sie sich an.
Als nächstes kommt eine Meldung, dass das Konto nicht bereitgestellt (Account not provisioned) ist und kein Zugriff möglich ist. Das ist völlig in Ordnung, jetzt müssen wir in der Entwickler Konsole den Namen "acs" mit der URL "https://cloud.sectornord.com/apps/user_saml/saml/acs" suchen und den Payload anzeigen:
Diesen Payload ist Base64 encodiert und muss nach UTF8 konvertiert werden. z.B. bei https://www.base64decode.org/
Im konvertierten Code suchen wir das Zertifikat zwischen "<ds:X509Certificate>"xysz"</ds:X509Certificate>".
Das Zertifikat muss unter "Identitätsanbieter" eingefügt werden
Jetzt sollte die Anmeldung funktionieren.
:-)