Authentification
L'authentification vérifie qui vous êtes avant d'accorder l'accès à Aptli. Cette section couvre les méthodes de connexion, la sécurité des comptes, la validation par e-mail et la configuration des fournisseurs OAuth.
Méthodes de connexion actives
Page de connexion montrant les méthodes d'authentification disponibles incluant les fournisseurs OAuth
Configurez quelles méthodes d'authentification sont disponibles :
Nom d'utilisateur/Mot de passe (Par défaut) :
- Combinaison e-mail + mot de passe
- Exigences de mot de passe : minimum 8 caractères, règles de complexité
- Déconnexion automatique après inactivité (configurable, par défaut 1 jour)
Fournisseurs OAuth :
- OAuth GitHub
- OAuth Google
- Fournisseurs supplémentaires configurables (contacter le support)
Configuration : Naviguez vers Paramètres d'application → Authentification → Méthodes de connexion actives
- Au moins une méthode doit être activée
- Plusieurs méthodes peuvent être actives simultanément
- Les utilisateurs choisissent la méthode préférée à l'écran de connexion
Authentification à deux facteurs (2FA)
Profil utilisateur montrant les paramètres 2FA et la configuration de sécurité
Activation de la 2FA :
- Naviguez vers le profil utilisateur
- Cliquez sur "Activer l'authentification à deux facteurs"
- Scannez le code QR avec une application d'authentification (Google Authenticator, Authy, etc.)
- Saisissez le code à 6 chiffres pour confirmer
- Sauvegardez les codes de récupération (au cas où le téléphone serait perdu)
Connexion avec 2FA :
- Saisissez l'e-mail et le mot de passe (ou OAuth)
- Le système demande un code à 6 chiffres
- Ouvrez l'application d'authentification
- Saisissez le code actuel (se rafraîchit toutes les 30 secondes)
- Accès accordé
Codes de récupération :
- 10 codes à usage unique générés lors de la configuration 2FA
- Stockez-les en sécurité (gestionnaire de mots de passe, copie imprimée)
- Utilisez si l'authentificateur n'est pas disponible
- Chaque code valide une fois
Désactivation de la 2FA :
- Naviguez vers le profil utilisateur
- Cliquez sur "Désactiver l'authentification à deux facteurs"
- Saisissez le code à 6 chiffres actuel (ou code de récupération)
- Confirmez la désactivation
Repérer les utilisateurs sans 2FA
Vue administrateur :
- Naviguez vers Admin → Utilisateurs
- Ajoutez la colonne : "2FA activé" (booléen)
- Filtrez : "2FA activé = faux"
- Exportez la liste pour suivi
Application : Paramètres d'application → Authentification → Exiger 2FA
- Activez pour forcer tous les utilisateurs à configurer la 2FA
- Période de grâce configurable (ex. 30 jours)
- Après la période de grâce, les utilisateurs ne peuvent pas se connecter sans 2FA
Campagne de notification :
- E-mail en masse aux utilisateurs sans 2FA
- Incluez les instructions de configuration
- Soulignez les avantages de sécurité
- Fixez une échéance de conformité
Configuration du fournisseur OAuth
OAuth GitHub
Créer une application OAuth GitHub :
- Allez dans Paramètres GitHub → Paramètres développeur → Applications OAuth
- Cliquez sur "Nouvelle application OAuth"
- Nom de l'application : "Aptli"
- URL de la page d'accueil :
https://votre-domaine.com - URL de rappel d'autorisation :
https://votre-domaine.com/api/auth/github/callback - Cliquez sur "Enregistrer l'application"
- Copiez l'ID client et le secret client
Configurer Aptli :
- Ajoutez à
.env:NUXT_OAUTH_GITHUB_CLIENT_ID=votre_client_id NUXT_OAUTH_GITHUB_CLIENT_SECRET=votre_client_secret - Redémarrez le serveur
- Testez : La page de connexion affiche le bouton "Se connecter avec GitHub"
OAuth Google
Créer une application OAuth Google :
- Allez dans Google Cloud Console → APIs & Services → Identifiants
- Cliquez sur "Créer des identifiants" → ID client OAuth
- Type d'application : Application web
- Nom : "Aptli"
- URI de redirection autorisées :
https://votre-domaine.com/api/auth/google/callback - Cliquez sur "Créer"
- Copiez l'ID client et le secret client
Configurer Aptli :
- Ajoutez à
.env:NUXT_OAUTH_GOOGLE_CLIENT_ID=votre_client_id.apps.googleusercontent.com NUXT_OAUTH_GOOGLE_CLIENT_SECRET=votre_client_secret - Redémarrez le serveur
- Testez : La page de connexion affiche le bouton "Se connecter avec Google"
Ajouter OAuth au compte utilisateur
Pour les utilisateurs existants nom d'utilisateur/mot de passe :
- Connectez-vous avec e-mail et mot de passe
- Naviguez vers le profil utilisateur
- Cliquez sur "Lier le compte OAuth"
- Choisissez le fournisseur (GitHub ou Google)
- Autorisez avec le fournisseur
- Compte OAuth lié (peut maintenant se connecter avec l'une ou l'autre méthode)
Pour les nouveaux utilisateurs :
- Première connexion avec OAuth crée automatiquement le compte
- L'e-mail du fournisseur OAuth doit être dans les domaines autorisés
- Compte créé avec connexion OAuth uniquement (aucun mot de passe défini)
- Peut ajouter un mot de passe plus tard depuis le profil
Validation par e-mail
Flux pour nouveau utilisateur :
- L'utilisateur s'inscrit (ou l'admin crée le compte)
- E-mail de validation envoyé à l'adresse e-mail de l'utilisateur
- L'e-mail contient un jeton d'expiration de 10 minutes
- L'utilisateur clique sur le lien dans l'e-mail
- Compte validé (peut maintenant se connecter)
Validation requise :
- Ne peut pas se connecter (toute méthode) tant que l'e-mail n'est pas validé
- Inclut les utilisateurs OAuth (l'e-mail doit être validé même si le fournisseur a vérifié)
Renvoyer l'e-mail de validation : L'admin peut renvoyer depuis le profil utilisateur :
- Naviguez vers Admin → Utilisateurs
- Ouvrez le profil utilisateur
- Cliquez sur "Renvoyer l'e-mail de validation"
- Nouveau jeton de 10 minutes envoyé
Validation manuelle :
L'admin avec usersUpdate peut valider manuellement :
- Naviguez vers le profil utilisateur
- Définissez la date "E-mail validé" à la date actuelle
- Sauvegardez (l'utilisateur peut maintenant se connecter)
Sécurité de connexion
Nombre maximum de tentatives de connexion :
- Par défaut : 5 tentatives échouées
- Configurable dans les paramètres d'application
- Après le maximum de tentatives : compte verrouillé en dur
- Déverrouillage nécessite un admin avec permission
usersUpdate
Verrouillage en dur :
- Le compte ne peut pas se connecter (toute méthode)
- Visible dans le profil utilisateur : badge "Verrouillage en dur"
- Déverrouillage : L'admin clique sur l'action "Déverrouiller le compte"
- Réinitialisation : Le compteur de tentatives échouées réinitialisé à 0
Expiration de session :
- Déconnexion automatique : Délai d'inactivité (par défaut 1 jour)
- La lecture ou l'écriture de données réinitialise le compte à rebours
- Configurable par paramètres d'application
- Expiration du jeton CSRF : Délai d'expiration de session serveur (par défaut 1 semaine)
- Force la reconnexion indépendamment de l'activité
- Mesure de sécurité pour les sessions longues
- Expiration de session : Durée maximale absolue de session (par défaut 1 semaine)
- Empêche les sessions indéfinies
Session active unique :
- Aptli n'autorise qu'une seule session active par compte à la fois
- Se connecter sur un nouvel appareil vous déconnecte des autres appareils
- Vous verrez un avis et serez invité à vous reconnecter sur l'appareil déconnecté
- Deux onglets ou fenêtres dans le même profil de navigateur partagent une session — ils ne se déconnectent pas mutuellement
Déconnexion forcée
Action administrateur :
- Naviguez vers Admin → Utilisateurs
- Ouvrez le profil utilisateur
- Actions → Déconnexion forcée
- La session de l'utilisateur est terminée immédiatement
- L'utilisateur doit se reconnecter
Cas d'utilisation :
- Incident de sécurité (compte compromis)
- L'utilisateur a laissé la session ouverte sur un ordinateur public
- Verrouillage administratif (en attente d'investigation)
Dépannage de connexion
L'utilisateur ne trouve pas son compte
Vérifiez :
- Naviguez vers Admin → Utilisateurs
- Filtrez par e-mail (sensible à la casse)
- Si non trouvé : Le compte peut être supprimé
- Cliquez sur le bouton "Voir supprimés" (nécessite la permission
viewDeleted) - Si trouvé dans supprimés : Annulez la suppression (nécessite la permission
usersCreate)
Verrouillage en dur
Vérifiez :
- Naviguez vers le profil utilisateur
- Cherchez le badge "Verrouillage en dur"
- Si présent : Cliquez sur "Déverrouiller le compte" (nécessite la permission
usersUpdate) - L'utilisateur peut maintenant se connecter
E-mail non validé
Vérifiez :
- Naviguez vers le profil utilisateur
- Le champ "E-mail validé" devrait avoir une date
- Si vide : Renvoyez l'e-mail de validation OU définissez manuellement la date
- L'utilisateur ne peut pas se connecter via aucune méthode sans validation
Mauvais domaine
Vérifiez :
- Naviguez vers Paramètres d'application → Authentification
- Liste "Domaines autorisés"
- Vérifiez que le domaine e-mail de l'utilisateur est inclus
- Si manquant : Ajoutez le domaine OU créez le compte manuellement (contourne la vérification de domaine)
OAuth ne fonctionne pas
Vérifiez :
- Vérifiez que les variables d'environnement sont définies (CLIENT_ID, CLIENT_SECRET)
- Vérifiez que l'URL de rappel correspond à la configuration du fournisseur
- Testez : Déconnectez-vous, cliquez sur "Se connecter avec Fournisseur"
- Messages d'erreur dans la console du navigateur
- Vérifiez le tableau de bord du fournisseur pour les tentatives d'authentification
Réinitialisation de mot de passe
Initiée par l'utilisateur :
- Cliquez sur "Mot de passe oublié" sur la page de connexion
- Saisissez l'adresse e-mail
- E-mail de réinitialisation envoyé (jeton de 10 minutes)
- Cliquez sur le lien dans l'e-mail
- Saisissez le nouveau mot de passe
- Mot de passe réinitialisé (peut maintenant se connecter)
Initiée par l'admin :
L'admin avec usersUpdate peut réinitialiser :
- Naviguez vers le profil utilisateur
- Actions → Réinitialiser le mot de passe
- Mot de passe temporaire généré
- E-mail envoyé à l'utilisateur avec mot de passe temporaire
- L'utilisateur doit changer le mot de passe à la première connexion
Meilleures pratiques
Activez la 2FA :
- Exigez pour tous les comptes admin
- Encouragez pour tous les utilisateurs
- Fixez une échéance de conformité
Utilisez OAuth quand possible :
- Réduit la fatigue des mots de passe
- Tire parti de la sécurité du fournisseur
- Récupération de compte plus facile
Surveillez les connexions échouées :
- Examinez les comptes verrouillés en dur hebdomadairement
- Modèle de verrouillages = attaque de devinette de mot de passe
- Activez l'application 2FA
Expiration régulière de session :
- Ne définissez pas le délai d'inactivité trop long (24 heures raisonnable)
- L'expiration CSRF empêche les sessions indéfinies
- Équilibrez sécurité vs. commodité utilisateur
Domaines autorisés :
- Gardez la liste serrée (seulement domaines org)
- Entrepreneurs externes = créez manuellement (contournez la vérification de domaine)
- Examinez trimestriellement (supprimez les domaines inutilisés)