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

De 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 templates

L’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.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.