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
- Connectez-vous à Nextcloud en tant qu'administrateur
- Allez dans Paramètres → Applications
- Cherchez "Social Login" dans la catégorie Intégration
- 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
- Connectez-vous à VaultysHub en tant qu'administrateur
- Allez dans Applications → Ajouter
- Recherchez "Nextcloud" ou créez une application personnalisée
- Configurez les informations de base :
- Nom : Nextcloud
- URL :
https://votre-nextcloud.example.com - Icône : Choisissez l'icône Nextcloud
2. Configurer OpenID Connect
- Dans l'onglet Authentification de l'application
- Sélectionnez OpenID Connect comme type d'authentification
- 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)
- Client ID :
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 :
openidprofileemail
Configuration dans Nextcloud
1. Accéder aux paramètres Social Login
- Connectez-vous à Nextcloud en tant qu'administrateur
- 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]/auth - 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/api/oidc/[appid]/logout - Client ID :
[Copiez depuis VaultysHub] - Client Secret :
[Copiez depuis VaultysHub] - Scope :
openid profile email
4. Mapping des attributs
Configuration du mapping des champs utilisateur :
- Identifiant utilisateur :
subouemail - Nom affiché :
name - Email :
email - Quota : Laissez vide ou configurez selon vos besoins
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)
Configuration avancée
Synchronisation des groupes
VaultysHub ne transmet pas les groupes de l'utilisateur (pas de scope ni de claim groups). Les groupes Nextcloud sont gérés directement dans Nextcloud, ou assignés automatiquement via l'option Groupes par défaut de Social Login.
Provisioning automatique avec SCIM (optionnel)
Pour un provisioning complet des utilisateurs et groupes, vous pouvez également configurer SCIM :
- Installez l'app User provisioning sur Nextcloud
- Configurez SCIM dans VaultysHub (voir guide SCIM)
- 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' => [
'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]/auth',
'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/api/oidc/[appid]/logout',
'clientId' => 'nextcloud-xxxxxx',
'clientSecret' => 'secret-xxxxxx',
'scope' => 'openid profile email',
'userMapping' => [
'id' => 'sub',
'name' => 'name',
'email' => 'email'
]
]
]
],
Test de la configuration
1. Test de connexion
- Déconnectez-vous de Nextcloud
- Sur la page de connexion, cliquez sur "Se connecter avec VaultysHub"
- Vous devez être redirigé vers VaultysHub
- Authentifiez-vous avec vos identifiants VaultysHub
- Vous devez être redirigé vers Nextcloud et connecté automatiquement
2. Vérification des informations utilisateur
- Allez dans Paramètres → Informations personnelles
- Vérifiez que les informations sont correctement synchronisées :
- Nom d'affichage
- Adresse email
3. Test de déconnexion
- Cliquez sur votre profil → Déconnexion
- 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 :
- Vérifiez que l'URL dans VaultysHub correspond exactement :
https://votre-nextcloud.example.com/apps/sociallogin/custom_oidc/smartlink
- Attention au protocole (http vs https) et au trailing slash
Erreur "Invalid client credentials"
Problème : Les identifiants client sont incorrects
Solution :
- Vérifiez le Client ID et Client Secret dans VaultysHub
- Assurez-vous qu'il n'y a pas d'espaces supplémentaires lors du copier-coller
- 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 : c'est le comportement attendu. VaultysHub ne transmet pas les groupes : gérez-les directement dans Nextcloud ou utilisez l'option Groupes par défaut de Social Login.
Erreur "Could not fetch user info"
Problème : Nextcloud ne peut pas récupérer les informations utilisateur
Solution :
- Vérifiez l'URL UserInfo :
https://votre-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo - Testez l'endpoint avec curl :
curl -H "Authorization: Bearer TOKEN" https://votre-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo
- 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 :
- Vérifiez le mapping de l'identifiant utilisateur (utiliser
subest recommandé) - Assurez-vous que l'identifiant est unique et stable
- Vérifiez les logs Nextcloud :
tail -f /var/www/nextcloud/data/nextcloud.log | grep sociallogin
Sécurité
Recommandations
- HTTPS obligatoire : Utilisez toujours HTTPS pour Nextcloud et VaultysHub
- Secrets sécurisés : Stockez le Client Secret de manière sécurisée
- Restriction IP : Si possible, limitez l'accès aux endpoints OAuth par IP
- Rotation des secrets : Changez régulièrement le Client Secret
- Logs d'audit : Activez et surveillez les logs d'authentification
Désactiver l'authentification locale
Pour forcer l'utilisation du SSO uniquement :
- Dans Social Login, activez "Désactiver l'authentification Nextcloud"
- ⚠️ Attention : Gardez toujours un compte administrateur local pour les urgences :
sudo -u www-data php occ user:add admin --password-from-env