Skip to main content

Nextcloud

Ce guide vous explique comment configurer l'authentification unique (SSO) entre SmartLink et Nextcloud en utilisant le plugin Social Login avec OpenID Connect.

Prérequis

  • Nextcloud version 20 ou supérieure
  • Accès administrateur à Nextcloud
  • Application configurée dans SmartLink avec OpenID Connect
  • Plugin Social Login installé sur Nextcloud

Installation du plugin Social Login

Via l'interface Nextcloud

  1. Connectez-vous à Nextcloud en tant qu'administrateur
  2. Allez dans ParamètresApplications
  3. Cherchez "Social Login" dans la catégorie Intégration
  4. Cliquez sur Télécharger et activer

Via la ligne de commande

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

1. Créer l'application

  1. Connectez-vous à SmartLink en tant qu'administrateur
  2. Allez dans ApplicationsAjouter
  3. Recherchez "Nextcloud" ou créez une application personnalisée
  4. Configurez les informations de base :
    • Nom : Nextcloud
    • URL : https://votre-nextcloud.example.com
    • Icône : Choisissez l'icône Nextcloud

2. Configurer OpenID Connect

  1. Dans l'onglet Authentification de l'application
  2. Sélectionnez OpenID Connect comme type d'authentification
  3. Notez les informations suivantes :
    • Client ID : nextcloud-xxxxxx
    • Client Secret : secret-xxxxxx
    • Issuer URL : https://votre-smartlink.link.vaultys.org/api/oidc/[appid]
    • App ID : [appid] (identifiant unique de l'application dans SmartLink)

3. Configurer les URLs de redirection

Dans la section URLs de redirection autorisées, ajoutez :

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

Note: L'[appid] sera automatiquement généré lors de la création de l'application dans SmartLink.

4. Configurer les scopes

Assurez-vous que les scopes suivants sont activés :

  • openid
  • profile
  • email
  • groups (optionnel, pour la synchronisation des groupes)

Configuration dans Nextcloud

1. Accéder aux paramètres Social Login

  1. Connectez-vous à Nextcloud en tant qu'administrateur
  2. Allez dans ParamètresAdministrationSocial login

2. Configuration générale

Dans la section Paramètres généraux :

  • Autoriser l'auto-inscription : Activez si vous voulez créer automatiquement les comptes
  • Créer un nouveau compte si non existant : Recommandé
  • Mettre à jour le profil utilisateur à chaque connexion : Pour synchroniser les informations
  • Désactiver l'authentification Nextcloud : Gardez désactivé pour conserver l'accès admin local
  • Autoriser la connexion avec email : Pour faciliter l'accès utilisateur

Bouton de connexion : Se connecter avec SmartLink

3. Ajouter un provider OpenID Connect personnalisé

Cliquez sur + Custom OpenID Connect et configurez :

  • Identifiant interne : smartlink
  • Nom affiché : SmartLink SSO
  • URL d'autorisation : https://votre-smartlink.link.vaultys.org/api/oidc/[appid]/authorize
  • URL du token : https://votre-smartlink.link.vaultys.org/api/oidc/[appid]/token
  • URL des informations utilisateur : https://votre-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo
  • URL de déconnexion : https://votre-smartlink.link.vaultys.org/logout
  • Client ID : [Copiez depuis SmartLink]
  • Client Secret : [Copiez depuis SmartLink]
  • Scope : openid profile email groups

4. Mapping des attributs

Configuration du mapping des champs utilisateur :

  • Identifiant utilisateur : sub ou email
  • Nom affiché : name
  • Email : email
  • Quota : Laissez vide ou configurez selon vos besoins
  • Groupes : groups (si vous utilisez la synchronisation des groupes)

5. Paramètres avancés (optionnel)

  • Groupes par défaut : Groupes Nextcloud assignés automatiquement
  • Bouton sur la page de connexion : Style du bouton (0 = bouton standard)
  • Autoriser uniquement les groupes : Liste des groupes SmartLink autorisés

Configuration avancée

Synchronisation des groupes

Pour synchroniser automatiquement les groupes SmartLink avec Nextcloud :

  1. Dans SmartLink, activez le scope groups pour l'application
  2. Dans Nextcloud Social Login, configurez le mapping des groupes :
    Claim des groupes : groups
  3. Activez "Créer des groupes si non existants"

Provisioning automatique avec SCIM (optionnel)

Pour un provisioning complet des utilisateurs et groupes, vous pouvez également configurer SCIM :

  1. Installez l'app User provisioning sur Nextcloud
  2. Configurez SCIM dans SmartLink (voir guide SCIM)
  3. URL SCIM Nextcloud : https://votre-nextcloud.example.com/apps/scimserviceprovider

Configuration par variables d'environnement

Pour les déploiements automatisés, vous pouvez configurer Social Login via config.php :

'sociallogin' => [
'auto_create_groups' => true,
'update_profile_on_login' => true,
'providers' => [
'smartlink' => [
'displayName' => 'SmartLink SSO',
'apiBaseUrl' => 'https://votre-smartlink.link.vaultys.org',
'authorizeUrl' => 'https://votre-smartlink.link.vaultys.org/api/oidc/[appid]/authorize',
'tokenUrl' => 'https://votre-smartlink.link.vaultys.org/api/oidc/[appid]/token',
'userInfoUrl' => 'https://votre-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo',
'logoutUrl' => 'https://votre-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'
]
]
]
],

Test de la configuration

1. Test de connexion

  1. Déconnectez-vous de Nextcloud
  2. Sur la page de connexion, cliquez sur "Se connecter avec SmartLink"
  3. Vous devez être redirigé vers SmartLink
  4. Authentifiez-vous avec vos identifiants SmartLink
  5. Vous devez être redirigé vers Nextcloud et connecté automatiquement

2. Vérification des informations utilisateur

  1. Allez dans ParamètresInformations personnelles
  2. Vérifiez que les informations sont correctement synchronisées :
    • Nom d'affichage
    • Adresse email
    • Groupes (si configuré)

3. Test de déconnexion

  1. Cliquez sur votre profil → Déconnexion
  2. Vérifiez que vous êtes également déconnecté de SmartLink

Dépannage

Erreur "Invalid redirect URI"

Problème : L'URL de redirection n'est pas correctement configurée

Solution :

  1. Vérifiez que l'URL dans SmartLink correspond exactement :
    https://votre-nextcloud.example.com/apps/sociallogin/custom_oidc/smartlink
  2. Attention au protocole (http vs https) et au trailing slash

Erreur "Invalid client credentials"

Problème : Les identifiants client sont incorrects

Solution :

  1. Vérifiez le Client ID et Client Secret dans SmartLink
  2. Assurez-vous qu'il n'y a pas d'espaces supplémentaires lors du copier-coller
  3. Régénérez le secret si nécessaire

Les groupes ne sont pas synchronisés

Problème : Les groupes SmartLink n'apparaissent pas dans Nextcloud

Solution :

  1. Vérifiez que le scope groups est activé dans SmartLink
  2. Dans Social Login, assurez-vous que le mapping des groupes est configuré : groups
  3. Activez "Créer des groupes si non existants"
  4. Vérifiez que l'utilisateur appartient bien à des groupes dans SmartLink

Erreur "Could not fetch user info"

Problème : Nextcloud ne peut pas récupérer les informations utilisateur

Solution :

  1. Vérifiez l'URL UserInfo : https://votre-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo
  2. Testez l'endpoint avec curl :
    curl -H "Authorization: Bearer TOKEN" https://votre-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo
  3. Vérifiez les logs SmartLink pour les erreurs d'autorisation

Utilisateur créé mais connexion impossible

Problème : Le compte est créé mais l'utilisateur ne peut pas se reconnecter

Solution :

  1. Vérifiez le mapping de l'identifiant utilisateur (utiliser sub est recommandé)
  2. Assurez-vous que l'identifiant est unique et stable
  3. Vérifiez les logs Nextcloud :
    tail -f /var/www/nextcloud/data/nextcloud.log | grep sociallogin

Sécurité

Recommandations

  1. HTTPS obligatoire : Utilisez toujours HTTPS pour Nextcloud et SmartLink
  2. Secrets sécurisés : Stockez le Client Secret de manière sécurisée
  3. Restriction IP : Si possible, limitez l'accès aux endpoints OAuth par IP
  4. Rotation des secrets : Changez régulièrement le Client Secret
  5. Logs d'audit : Activez et surveillez les logs d'authentification

Désactiver l'authentification locale

Pour forcer l'utilisation du SSO uniquement :

  1. Dans Social Login, activez "Désactiver l'authentification Nextcloud"
  2. ⚠️ Attention : Gardez toujours un compte administrateur local pour les urgences :
    sudo -u www-data php occ user:add admin --password-from-env

Ressources