Zum Hauptinhalt springen

Nextcloud

Dieser Leitfaden erklärt Ihnen, wie Sie die Single Sign-On (SSO)-Authentifizierung zwischen SmartLink und Nextcloud mithilfe des Social Login-Plugins mit OpenID Connect einrichten.

Voraussetzungen

  • Nextcloud Version 20 oder höher
  • Administratorzugriff auf Nextcloud
  • Anwendung in SmartLink mit OpenID Connect konfiguriert
  • Social Login-Plugin in Nextcloud installiert

Installation des Social Login-Plugins

Über die Nextcloud-Oberfläche

  1. Melden Sie sich als Administrator bei Nextcloud an
  2. Gehen Sie zu EinstellungenApps
  3. Suchen Sie nach "Social Login" in der Kategorie Integration
  4. Klicken Sie auf Herunterladen und aktivieren

Über die Befehlszeile

cd /var/www/nextcloud
sudo -u www-data php occ app:install sociallogin
sudo -u www-data php occ app:enable sociallogin

1. Anwendung erstellen

  1. Melden Sie sich als Administrator bei SmartLink an
  2. Gehen Sie zu AnwendungenHinzufügen
  3. Suchen Sie nach "Nextcloud" oder erstellen Sie eine benutzerdefinierte Anwendung
  4. Konfigurieren Sie die Grundinformationen:
    • Name: Nextcloud
    • URL: https://your-nextcloud.example.com
    • Symbol: Wählen Sie das Nextcloud-Symbol aus

2. OpenID Connect konfigurieren

  1. Im Authentifizierungs-Tab der Anwendung
  2. Wählen Sie OpenID Connect als Authentifizierungstyp aus
  3. Notieren Sie die folgenden Informationen:
    • Client-ID: nextcloud-xxxxxx
    • Client-Geheimnis: secret-xxxxxx
    • Issuer-URL: https://your-smartlink.link.vaultys.org/api/oidc/[appid]
    • App-ID: [appid] (eindeutige Kennung der Anwendung in SmartLink)

3. Weiterleitungs-URLs konfigurieren

Fügen Sie in den Zugelassenen Weiterleitungs-URLs-Abschnitt hinzu:

https://your-nextcloud.example.com/apps/sociallogin/custom_oidc/smartlink

Hinweis: Die [appid] wird automatisch generiert, wenn die Anwendung in SmartLink erstellt wird.

4. Scopes konfigurieren

Stellen Sie sicher, dass die folgenden Scopes aktiviert sind:

  • openid
  • profile
  • email
  • groups (optional, für die Gruppensynchronisierung)

Konfiguration in Nextcloud

1. Zugriff auf die Social Login-Einstellungen

  1. Melden Sie sich als Administrator bei Nextcloud an
  2. Gehen Sie zu EinstellungenVerwaltungSocial Login

2. Allgemeine Konfiguration

Im Abschnitt Allgemeine Einstellungen:

  • Automatische Registrierung zulassen: Aktivieren, wenn Sie Konten automatisch erstellen möchten
  • Neues Konto erstellen, wenn nicht vorhanden: Empfohlen
  • Benutzerprofil bei jeder Anmeldung aktualisieren: Zur Synchronisierung von Informationen
  • Nextcloud-Authentifizierung deaktivieren: Deaktiviert lassen, um den lokalen Adminzugriff beizubehalten
  • Anmeldung mit E-Mail zulassen: Für einen einfacheren Benutzerzugriff

Anmeldebutton: Mit SmartLink anmelden

3. Hinzufügen eines benutzerdefinierten OpenID Connect-Anbieters

Klicken Sie auf + Benutzerdefiniertes OpenID Connect und konfigurieren Sie:

  • Interne ID: smartlink
  • Angezeigter Name: SmartLink SSO
  • Autorisierungs-URL: https://your-smartlink.link.vaultys.org/api/oidc/[appid]/authorize
  • Token-URL: https://your-smartlink.link.vaultys.org/api/oidc/[appid]/token
  • Benutzerinfo-URL: https://your-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo
  • Abmelde-URL: https://your-smartlink.link.vaultys.org/logout
  • Client-ID: [Von SmartLink kopieren]
  • Client-Geheimnis: [Von SmartLink kopieren]
  • Scope: openid profile email groups

4. Zuordnung der Attribute

Konfiguration der Benutzerfeldzuordnung:

  • Benutzer-ID: sub oder email
  • Angezeigter Name: name
  • E-Mail: email
  • Quota: Leer lassen oder nach Bedarf konfigurieren
  • Gruppen: groups (bei Verwendung der Gruppensynchronisierung)

5. Erweiterte Einstellungen (optional)

  • Standardgruppen: Automatisch zugewiesene Nextcloud-Gruppen
  • Button auf Anmeldeseite: Button-Stil (0 = Standardbutton)
  • Nur bestimmte Gruppen zulassen: Liste der autorisierten SmartLink-Gruppen

Erweiterte Konfiguration

Gruppensynchronisierung

Um SmartLink-Gruppen automatisch mit Nextcloud zu synchronisieren:

  1. Aktivieren Sie im SmartLink den Scope groups für die Anwendung
  2. Konfigurieren Sie im Nextcloud Social Login das Gruppenmapping:
    Gruppenanspruch: groups
  3. Aktivieren Sie "Gruppen erstellen, wenn nicht vorhanden"

Automatische Bereitstellung mit SCIM (optional)

Für eine vollständige Bereitstellung von Benutzern und Gruppen können Sie auch SCIM konfigurieren:

  1. Installieren Sie die App Benutzerbereitstellung in Nextcloud
  2. Konfigurieren Sie SCIM in SmartLink (siehe SCIM-Anleitung)
  3. SCIM-URL für Nextcloud: https://your-nextcloud.example.com/apps/scimserviceprovider

Konfiguration über Umgebungsvariablen

Für automatisierte Bereitstellungen können Sie Social Login über config.php konfigurieren:

'sociallogin' => [
'auto_create_groups' => true,
'update_profile_on_login' => true,
'providers' => [
'smartlink' => [
'displayName' => 'SmartLink SSO',
'apiBaseUrl' => 'https://your-smartlink.link.vaultys.org',
'authorizeUrl' => 'https://your-smartlink.link.vaultys.org/api/oidc/[appid]/authorize',
'tokenUrl' => 'https://your-smartlink.link.vaultys.org/api/oidc/[appid]/token',
'userInfoUrl' => 'https://your-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo',
'logoutUrl' => 'https://your-smartlink.link.vaultys.org/logout',
'clientId' => 'nextcloud-xxxxxx',
'clientSecret' => 'secret-xxxxxx',
'scope' => 'openid profile email groups',
'userMapping' => [
'id' => 'sub',
'name' => 'name',
'email' => 'email',
'groups' => 'groups'
]
]
]
],

Konfigurationstest

1. Anmeldeüberprüfung

  1. Melden Sie sich von Nextcloud ab
  2. Klicken Sie auf der Anmeldeseite auf "Mit SmartLink anmelden"
  3. Sie sollten zu SmartLink weitergeleitet werden
  4. Melden Sie sich mit Ihren SmartLink-Anmeldeinformationen an
  5. Sie sollten zu Nextcloud weitergeleitet und automatisch angemeldet werden

2. Überprüfung der Benutzerinformationen

  1. Gehen Sie zu EinstellungenPersönliche Informationen
  2. Überprüfen Sie, ob die Informationen korrekt synchronisiert sind:
    • Anzeigename
    • E-Mail-Adresse
    • Gruppen (falls konfiguriert)

3. Abmeldeüberprüfung

  1. Klicken Sie auf Ihr Profil → Abmelden
  2. Stellen Sie sicher, dass Sie auch von SmartLink abgemeldet sind

Fehlerbehebung

Fehler "Ungültige Weiterleitungs-URI"

Problem: Die Weiterleitungs-URL ist nicht korrekt konfiguriert

Lösung:

  1. Stellen Sie sicher, dass die URL in SmartLink genau übereinstimmt:
    https://your-nextcloud.example.com/apps/sociallogin/custom_oidc/smartlink
  2. Achten Sie auf das Protokoll (http vs. https) und den abschließenden Schrägstrich

Fehler "Ungültige Client-Anmeldeinformationen"

Problem: Die Client-Anmeldeinformationen sind falsch

Lösung:

  1. Überprüfen Sie die Client-ID und das Client-Geheimnis in SmartLink
  2. Stellen Sie sicher, dass beim Kopieren keine zusätzlichen Leerzeichen vorhanden sind
  3. Generieren Sie das Geheimnis bei Bedarf neu

Gruppen werden nicht synchronisiert

Problem: Die SmartLink-Gruppen werden in Nextcloud nicht angezeigt

Lösung:

  1. Stellen Sie sicher, dass der Scope groups in SmartLink aktiviert ist
  2. Überprüfen Sie in Social Login, ob das Gruppenmapping konfiguriert ist: groups
  3. Aktivieren Sie "Gruppen erstellen, wenn nicht vorhanden"
  4. Stellen Sie sicher, dass der Benutzer in SmartLink tatsächlich Gruppen zugeordnet ist

Fehler "Benutzerinformationen konnten nicht abgerufen werden"

Problem: Nextcloud kann die Benutzerinformationen nicht abrufen

Lösung:

  1. Überprüfen Sie die UserInfo-URL: https://your-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo
  2. Testen Sie den Endpunkt mit curl:
    curl -H "Authorization: Bearer TOKEN" https://your-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo
  3. Überprüfen Sie die SmartLink-Logs auf Autorisierungsfehler

Benutzer erstellt, aber Anmeldung nicht möglich

Problem: Das Konto wurde erstellt, aber der Benutzer kann sich nicht erneut anmelden

Lösung:

  1. Überprüfen Sie die Zuordnung der Benutzer-ID (die Verwendung von sub wird empfohlen)
  2. Stellen Sie sicher, dass die ID eindeutig und stabil ist
  3. Überprüfen Sie die Nextcloud-Logs:
    tail -f /var/www/nextcloud/data/nextcloud.log | grep sociallogin

Sicherheit

Empfehlungen

  1. HTTPS erforderlich: Verwenden Sie immer HTTPS für Nextcloud und SmartLink
  2. Sichere Geheimnisse: Speichern Sie das Client-Geheimnis sicher
  3. IP-Einschränkung: Begrenzen Sie nach Möglichkeit den Zugriff auf OAuth-Endpunkte nach IP
  4. Geheimnisrotation: Ändern Sie das Client-Geheimnis regelmäßig
  5. Audit-Logs: Aktivieren und überwachen Sie die Anmelde-Logs

Lokale Authentifizierung deaktivieren

Um die ausschließliche Verwendung von SSO zu erzwingen:

  1. Aktivieren Sie in Social Login "Nextcloud-Authentifizierung deaktivieren"
  2. ⚠️ Achtung: Behalten Sie immer ein lokales Administratorkonto für Notfälle bei:
    sudo -u www-data php occ user:add admin --password-from-env

Ressourcen