Ente Auth, un authentificateur 2FA auto-hébergé
Dans un monde où les piratages se multiplient, il est de plus en plus important de protéger nos données personnelles, et cela passe notamment par l'authentification à deux facteurs (2FA) qui devient essentielle.
J'utilise déjà Vaultwarden pour gérer mes mots de passe et j'en suis très satisfait. En revanche, je préfère éviter de stocker mes codes 2FA au même endroit que mes mots de passe. Si mon instance Vaultwarden était compromise, un attaquant aurait accès à la fois aux mots de passe ET aux codes 2FA, rendant la double authentification complètement inutile. Séparer les deux rend l’usage un peu moins pratique, mais offre un gain de sécurité non négligeable : il faudrait alors compromettre deux systèmes distincts. Je suis donc parti à la recherche d'une solution 2FA que je peux héberger moi-même.
C'est là qu'intervient Ente Auth, une application open source dédiée à la gestion des codes 2FA, que l'on peut héberger indépendamment de son gestionnaire de mots de passe, avec une synchronisation fluide et une confidentialité totale.
Ente est une suite d'applications pensée pour protéger votre vie privée : la gestion des codes 2FA avec Auth comme on l'a évoqué, mais aussi Photos pour gérer vos photos sans dépendre d'un service tiers, et d'autres applications sont prévues pour le futur. Après avoir ouvert le code de leurs applications clientes, l'équipe a franchi une étape supplémentaire en février 2024 en rendant également leur serveur open source. Cela signifie que vous pouvez maintenant héberger l'intégralité de la solution sur votre propre infrastructure.
Dans cet article, je vais vous montrer comment installer Ente dans le but d'utiliser Ente Auth. D'abord avec une méthode rapide pour tester, puis via une configuration avancée adaptée à un usage quotidien ou en production.
Installation rapide
Ente propose un script d'installation qui permet de démarrer en quelques minutes seulement. C'est la méthode idéale pour tester la solution et voir si elle correspond à vos besoins.
Connectez vous à votre serveur en SSH, placez vous dans le dossier où sont stockées vos stacks Docker et exécutez la commande suivante :
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ente-io/ente/main/server/quickstart.sh)"
Ce script, non invasif, va automatiquement :
- Générer les clés de chiffrement
- Créer un répertoire
my-entedans le dossier courant - Configurer et démarrer l'ensemble des conteneurs (serveur Ente, base de données PostgreSQL, stockage MinIO, applications web)

Une fois le script exécuté, il vous proposera de démarrer le cluster. Acceptez et laissez Docker télécharger et lancer tous les conteneurs nécessaires. Cela peut prendre quelques minutes selon votre connexion Internet.
Une fois le cluster démarré, vous pouvez accéder à Ente Photos depuis l'adresse http://<IP-de-votre-serveur>:3000 ou à Ente Auth depuis l'adresse http://<IP-de-votre-serveur>:3003 .
Pour créer votre premier compte, cliquez sur "Je n'ai pas de compte" et suivez les étapes d'inscription.
Pour le récupérer, consultez les logs du cluster avec la commande suivante. Cherchez dans les logs le code de vérification et saisissez le dans l'interface web pour finaliser la création de votre compte.
cd my-ente
docker compose logs
Configuration avancée
L'installation rapide est parfaite pour découvrir Ente, mais pour une utilisation quotidienne ou en production, vous voudrez probablement personnaliser certains aspects de la configuration.
Vous trouverez dans le répertoire my-ente créé par le script d'installation 2 fichiers permettant de personnaliser votre installation : le fichier compose.yaml que vous connaissez bien et avec les définitions des conteneurs et le fichier museum.yaml qui contient la configuration du serveur Ente, appelé "Museum". Il contient les paramètres de connexion à la base de données, la configuration S3, les points d'entrée des applications web, ...
Dans mon cas d'usage, je n'utiliserais pas la partie Ente Photo, donc il n'est pas utile de garde l'ensemble des conteneurs et nous pouvons alléger la stack. Editez le fichier museum.yaml et retirez l'ensemble de la partie S3, éditez également le fichier compose.yaml et supprimez les services MinIO et Socat ainsi que leurs volumes associés. Voici ce que ça donne :
db:
host: postgres
port: 5432
name: ente_db
user: pguser
password: FVt************
key:
encryption: Zf/**************
hash: ********
jwt:
secret: **************museum.yaml
services:
museum:
image: ghcr.io/ente-io/server
ports:
- 8080:8080 # API
volumes:
- ./museum.yaml:/museum.yaml:ro
- ./data:/data:ro
environment:
TRUSTED_PROXIES: 0.0.0.0/0
depends_on:
postgres:
condition: service_healthy
web:
image: ghcr.io/ente-io/web
# Uncomment what you need to tweak.
ports:
- 3003:3003 # Auth
environment:
ENTE_API_ORIGIN: https://ente-api.NDD.ovh
postgres:
image: postgres:15
environment:
POSTGRES_USER: pguser
POSTGRES_PASSWORD: FVt**********
POSTGRES_DB: ente_db
healthcheck:
test: pg_isready -q -d ente_db -U pguser
start_period: 40s
start_interval: 1s
volumes:
- postgres-data:/var/lib/postgresql/data
volumes:
postgres-data: nullcompose.yaml
Configuration SMTP pour les emails
Si vous souhaitez recevoir les codes de vérification par email plutôt que dans les logs, vous devez configurer un serveur SMTP dans le fichier museum.yaml :
smtp:
host: smtp.example.com
port: 587
username: votre-email@example.com
password: votre-mot-de-passe
email: votre-email@example.com
sender-name: Ente Auth
encryption: tls
Vous pouvez utiliser des services comme Gmail, Proton ou tout autre service SMTP. Je n'ai pas configuré cette partie, car mon besoin se limite à la création d'un seul et unique compte.
Ouvrez Ente vers l'extérieur
Il faudra également créer 2 entrées dans votre reverse proxy, la première pour l'interface web avec le port 3003, la deuxième avec le port 8080 pour l'API.
Modifiez également le fichier compose.yaml pour indiquer le chemin du serveur API avec la variable d'environnement ENTE_API_ORIGIN au conteneur WEB, ainsi que la variable TRUSTED_PROXIES pour le conteneur MUSEUM afin de lui indiquer le réseau qui à le droit d'accéder à l'API. 0.0.0.0/0 permet d'accepter l'ensemble des adresses IP donc n'impose aucune restriction, mais vous pouvez limiter la connexion / synchronisation uniquement depuis votre réseau local et ou VPN, comme je l'ai fait dans l'exemple suivant :
# Dans le service web:
environment:
ENTE_API_ORIGIN: https://ente-api.NDD.ovh
# Dans le service museum:
environment:
TRUSTED_PROXIES: 172.18.0.0/16,192.168.1.0/24Configurer les applications mobiles
Une fois votre serveur en place, vous voudrez certainement utiliser Ente Auth depuis votre smartphone. Cela tombe bien, l'application Ente Auth est disponible aussi bien pour les smartphone iOS sur l'App Store que pour ceux tournant sur Android sur le Google Play Store et peuvent être configurées pour utiliser votre propre serveur fraichement installé plutôt que celui d'Ente.

Pour vous connecter à votre instance personnelle d'Ente, vous devez suivre les quelques étapes suivantes au lancement de l'application :
- Sur l'écran d'accueil, tapez 7 fois consécutifs sur le logo ou l'écran pour activer les paramètres développeur.
- Une fois le menu activé, entrez l'URL de l'API de votre serveur (par exemple
https://ente-api.NDD.ovhouhttp://192.168.1.100:8080pour un accès local). - Validez et poursuivez la configuration normalement, en vous connectant avec vos identifiants créés précédemment.
L'application se connectera désormais à votre propre instance au lieu des serveurs d'Ente.

Utiliser Ente Auth au quotidien
Maintenant que votre instance est configurée, voyons comment utiliser Ente Auth pour sécuriser vos comptes en ligne.
Ajouter un premier code 2FA
- Ouvrez l'application Ente Auth depuis votre mobile ou un navigateur web.
- Cliquez sur le bouton "+" pour ajouter un nouveau code.
- Vous pouvez scanner un QR code ou entrer manuellement la clé secrète fournie par le service que vous souhaitez sécuriser.
- Donnez un nom à ce code (par exemple "Gmail", "GitHub", ...).
- Votre code 2FA apparaît et se régénère automatiquement toutes les 30 secondes.
Synchronisation entre appareils
L'un des grands avantages d'Ente Auth par rapport à Google Authenticator ou d'autres solutions, c'est que vos codes sont automatiquement synchronisés sur tous vos appareils connectés au même compte. Si vous configurez votre compte sur votre smartphone et votre ordinateur, vous retrouverez tous vos codes sur les deux appareils.
Export et import
Ente Auth permet d'exporter vos codes pour les sauvegarder ou les migrer vers un autre service. Cette fonctionnalité est accessible dans les paramètres de l'application. Il est également possible d'importer des codes d'un autre service.
Si vous souhaitez gérer vos photos avec un autre service que Google Photos ou Apple iCloud, vous pouvez regarder Ente Photos, qui vous permettra de reprendre votre indépendance face aux GAFAM.
Conclusion
Voilà, vous disposez maintenant d'une solution d'authentification à deux facteurs complètement sous votre contrôle. L'installation d'Ente Auth demande certes un peu de temps pour la mise en place initiale, mais le jeu en vaut la chandelle pour ceux qui souhaitent reprendre le contrôle de leurs données sensibles.
Avec cette solution, vous bénéficiez du même niveau de confort qu'avec des services cloud propriétaires, mais sans jamais compromettre votre vie privée. Vos codes 2FA restent chiffrés et sous votre contrôle total, que ce soit sur votre serveur local ou synchronisés sur vos différents appareils.
Et vous, avez-vous déjà testé des solutions d'authentification auto-hébergées ? Quelles sont vos pratiques pour sécuriser vos comptes en ligne ?
Si vous avez des questions ou rencontrez des difficultés lors de l'installation ou l'utilisation d'Ente Auth, n'hésitez pas à laisser un commentaire ou à venir échanger avec la communauté sur notre groupe Telegram, nous serons ravis de vous aider !
