Aller au contenu principal

Nextcloud

Ce guide vous explique comment configurer l'authentification unique (SSO) entre VaultysHub 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 VaultysHub 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ètres → Applications
  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

Configuration dans VaultysHub​

1. Créer l'application​

  1. Connectez-vous à VaultysHub en tant qu'administrateur
  2. Allez dans Applications → Ajouter
  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 VaultysHub)

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 VaultysHub.

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ètres → Administration → Social 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 VaultysHub

3. Ajouter un provider OpenID Connect personnalisé​

Cliquez sur + Custom OpenID Connect et configurez :

  • Identifiant interne : smartlink
  • Nom affiché : VaultysHub 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 VaultysHub]
  • Client Secret : [Copiez depuis VaultysHub]
  • 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 VaultysHub autorisés

Configuration avancée​

Synchronisation des groupes​

Pour synchroniser automatiquement les groupes VaultysHub avec Nextcloud :

  1. Dans VaultysHub, 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 VaultysHub (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' => 'VaultysHub 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 VaultysHub"
  3. Vous devez être redirigé vers VaultysHub
  4. Authentifiez-vous avec vos identifiants VaultysHub
  5. Vous devez être redirigé vers Nextcloud et connecté automatiquement

2. Vérification des informations utilisateur​

  1. Allez dans Paramètres → Informations 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 VaultysHub

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 VaultysHub 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 VaultysHub
  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 VaultysHub n'apparaissent pas dans Nextcloud

Solution :

  1. Vérifiez que le scope groups est activé dans VaultysHub
  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 VaultysHub

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 VaultysHub 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 VaultysHub
  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​