Sécurité · 6 min read · Dec 30, 2025
Authentification à deux facteurs pour ownCloud

éclairez votre propre Cloud en utilisant deux facteurs pour authentifier
par arnobabotte @pixabay
Dans ce tutoriel, je vais vous montrer comment protéger votre installation ownCloud avec privacyIDEA, qui peut être utilisé pour gérer les deuxièmes facteurs d’authentification de vos utilisateurs.
ownCloud est un système pour stocker vos propres données ou celles de votre entreprise non pas sur l’ordinateur de quelqu’un d’autre (a.k.a “le Cloud”) mais sur votre propre ordinateur sous votre contrôle. privacyIDEA est un système pour gérer les dispositifs d’authentification pour l’authentification à deux facteurs dans votre propre réseau - pas auprès d’un fournisseur d’identité - gardant ainsi votre identité et celles de vos utilisateurs également sous votre contrôle.
Si vous voulez savoir à quoi cela ressemblera, vous pouvez jeter un œil à cette vidéo sur youtube.
Prérequis
Je suppose que vous avez déjà un système ownCloud 8 opérationnel. Il existe de très bons exemples là-bas. Vous pouvez également consulter le guide d’installation d’ownCloud 8 avec nginx ici sur ce site.
De plus, je suppose que vous exécutez un système privacyIDEA. Ce guide ne couvre pas l’installation de privacyIDEA. Vous trouverez également un guide ici sur Howtoforge pour installer privacyIDEA sur CentOS ou vous pouvez utiliser les instructions d’installation dans la documentation.
Veuillez noter : Vous n’avez pas besoin d’exécuter privacyIDEA et ownCloud sur le même serveur. Vous libérerez toute la puissance d’une telle configuration en installant privacyIDEA comme système d’authentification sur un serveur et en configurant les autres applications comme ownCloud contre ce privacyIDEA. Cela présente également l’avantage de ne pas avoir à gérer les dispositifs d’authentification pour ownCloud, les dispositifs d’authentification pour votre deuxième application et les dispositifs d’authentification pour votre troisième application, et ainsi de suite. Vous voyez que cette solution prouve ses forces si vous avez plusieurs applications et plus de deux utilisateurs. Mais cela fonctionnera bien sûr aussi dans des scénarios plus petits.
Veuillez noter : L’application ownCloud privacyIDEA est en phase de développement précoce. Tout retour que vous fournissez est grandement apprécié et aidera à améliorer cet outil. Vous pouvez donner votre avis ici sur howtoforge, via les problèmes github ou via le groupe Google.
Connecter privacyIDEA à la base de données ownCloud
Préparer la base de données
Il y a une condition pour privacyIDEA. Les utilisateurs ownCloud doivent être connus de privacyIDEA ou vice versa, les utilisateurs auxquels vous attribuez des jetons dans privacyIDEA doivent également être disponibles dans ownCloud.
Vous pourriez avoir une configuration où vos utilisateurs se trouvent dans un annuaire LDAP, mais dans cet exemple, nous utilisons simplement la table des utilisateurs SQL existante d’ownCloud.
Veuillez noter : Si vous exécutez privacyIDEA et ownCloud sur des serveurs différents, vous devez accorder l’accès à la base de données SQL. Dans le cas de MySQL/MariaDB, vous devez modifier le bind-address dans /etc/mysql/my.cnf en conséquence comme suit :
bind-address = 0.0.0.0De plus, vous devez ajouter le droit d’accès basé sur MySQL :
grant all privileges on owncloud.* to "ocuser"@"privacyIDEA-Server" identified by "password";Maintenant, l’utilisateur MySQL “ocuser” peut accéder à la base de données sur le serveur ownCloud depuis le serveur privacyIDEA.
AVERTISSEMENT : Le trafic réseau vers le serveur MySQL n’est pas chiffré. Nous recommandons fortement de configurer TLS si vous exécutez ce scénario. Vous pouvez également trouver quelques guides sur ce site pour configurer MySQL avec SSL.
Connecter privacyIDEA à ownCloud
Créer un résolveur d’utilisateur
Maintenant, nous connectons privacyIDEA à ownCloud, afin que privacyIDEA connaisse les utilisateurs. Nous créons un nouveau résolveur d’utilisateur à Config → Users.

Vous pouvez cliquer sur le bouton ownCloud qui devrait préremplir tous les champs nécessaires dans le mappage des attributs de la base de données.
Ensuite, vous pouvez cliquer sur Test SQL Resolver pour voir si tout s’est bien passé.
Créer un royaume
Maintenant, vous pouvez aller à Config → Realms pour créer un royaume par défaut à partir du résolveur.

Vous devriez maintenant voir les utilisateurs ownCloud dans l’onglet Users et être en mesure d’enrôler des jetons pour ces utilisateurs.
Enrôler un Google Authenticator
privacyIDEA prend en charge une grande variété de jetons, que vous pouvez trouver ici.
Nous allons rapidement enrôler un Google Authenticator comme exemple simple.
Allez dans la vue des utilisateurs et choisissez un utilisateur pour voir les détails de l’utilisateur. Ici, vous pouvez cliquer sur le bouton Enroll New Token.

Dans la boîte de dialogue d’enrôlement, vous pouvez choisir le type de jeton et, selon le type de jeton, vous devrez entrer différents détails. Mais dans cet exemple, nous utilisons le type de jeton par défaut HOTP. En bas de la page, vous pouvez entrer un code PIN OTP.
Cliquez sur Enroll Token.

Le jeton est enrôlé et un code QR vous est présenté, que vous pouvez scanner avec votre application Google Authenticator.

D’autres types de jetons sont enrôlés de différentes manières, ce qui est hors du champ de ce tutoriel. Pour plus d’informations, consultez la documentation de privacyIDEA.
Maintenant, nous avons terminé, car l’utilisateur ownCloud a un jeton attribué. Vous pouvez répéter ce processus pour d’autres utilisateurs ownCloud.
Obtenir l’application ownCloud
Tout d’abord, vous devez télécharger l’application ownCloud privacyIDEA.
Vous pouvez télécharger l’application ici. Vous devez copier le répertoire user_privacyidea dans votre répertoire ownCloud apps/. Supposons que vous ayez installé ownCloud dans /var/www/owncloud afin que vous vous retrouviez avec une structure comme
root@owncloud:~# ls /var/www/owncloud/apps/user_privacyidea/ -l
-rw-rw-r-- 1 root root 1671 Jun 25 15:05 adminSettings.php
drwxrwxr-x 2 root root 4096 Jun 25 15:17 appinfo
drwxrwxr-x 2 root root 4096 Jun 25 15:17 img
drwxrwxr-x 2 root root 4096 Jun 25 15:17 js
drwxrwxr-x 2 root root 4096 Jun 25 15:17 lib
drwxrwxr-x 2 root root 4096 Jun 25 15:17 templatesL’application privacyIDEA est implémentée comme un backend utilisateur ownCloud et agira comme un superposition à vos backends utilisateurs existants pour pouvoir intervenir dans la demande d’authentification, afin d’ajouter le deuxième facteur à la connexion.
Configurer l’application ownCloud
Allez à Apps → not Enabled et activez l’application.

Ensuite, vous pouvez aller à Your User → Admin pour configurer l’application privacyIDEA.

Vous devez fournir l’URL du serveur privacyIDEA. Vous devriez exécuter le serveur privacyIDEA avec un certificat de confiance. Si, pendant votre processus de configuration, vous n’avez pas de certificat de confiance, vous pouvez décocher la case Vérifier le certificat SSL du serveur privacyIDEA.
Pour éviter de vous verrouiller, vous pouvez cocher la case Autoriser également les utilisateurs à s’authentifier avec leur mot de passe normal. Dans ce cas, si l’authentification auprès de privacyIDEA échoue, l’utilisateur est authentifié contre le backend utilisateur ownCloud sous-jacent. En utilisation productive, vous devriez décocher cette case.
Les clients de bureau auront bien sûr des problèmes avec les mots de passe à usage unique. Si vous utilisez de tels clients, vous devriez cocher la case Autoriser l’accès API à remote.php avec un mot de passe statique. Dans ce cas, la demande d’authentification provenant d’un client de bureau (identifiée par remote.php) ne sera pas authentifiée contre privacyIDEA mais contre le backend utilisateur sous-jacent.
Enfin, si tout va bien, vous pouvez activer l’authentification à deux facteurs en cochant la case Utiliser privacyIDEA pour authentifier les utilisateurs.
Se connecter à ownCloud
Après avoir activé l’application privacyIDEA, l’écran de connexion d’ownCloud ne change pas.
Pour vous connecter, vous devez entrer votre nom d’utilisateur et dans le champ du mot de passe, vous devez entrer le code PIN OTP et la valeur OTP générée par votre Google Authenticator.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.