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 Einstellungen → Apps
  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 Anwendungen → Hinzufü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 Einstellungen → Verwaltung → Social 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 Einstellungen → Persö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​