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
- 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 SmartLink
1. Créer l'application
- Connectez-vous à SmartLink 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 SmartLink)
- 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 SmartLink.
4. Configurer les scopes
Assurez-vous que les scopes suivants sont activés :
openidprofileemailgroups(optionnel, pour la synchronisation des groupes)
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 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 :
subouemail - 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 :
- Dans SmartLink, activez le scope
groupspour l'application - Dans Nextcloud Social Login, configurez le mapping des groupes :
Claim des groupes : groups - 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 :
- Installez l'app User provisioning sur Nextcloud
- Configurez SCIM dans SmartLink (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' => [
'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
- Déconnectez-vous de Nextcloud
- Sur la page de connexion, cliquez sur "Se connecter avec SmartLink"
- Vous devez être redirigé vers SmartLink
- Authentifiez-vous avec vos identifiants SmartLink
- 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
- Groupes (si configuré)
3. Test de déconnexion
- Cliquez sur votre profil → Déconnexion
- 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 :
- Vérifiez que l'URL dans SmartLink 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 SmartLink
- 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 SmartLink n'apparaissent pas dans Nextcloud
Solution :
- Vérifiez que le scope
groupsest activé dans SmartLink - Dans Social Login, assurez-vous que le mapping des groupes est configuré :
groups - Activez "Créer des groupes si non existants"
- 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 :
- 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 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 :
- 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 SmartLink
- 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