Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implémenter la double authentification #255

Open
rogermaurer opened this issue Oct 28, 2022 · 8 comments
Open

Implémenter la double authentification #255

rogermaurer opened this issue Oct 28, 2022 · 8 comments
Labels
enhancement New feature or request
Milestone

Comments

@rogermaurer
Copy link

rogermaurer commented Oct 28, 2022

La sécurité d’Extract parait lacunaire au niveau de l'accès et l' implémentation d’une double authentification s'avère urgent.

Nous souhaitons donc implémenter un système de double authentification OPENSOURCE, par exemple Google Authenticator.

Mots clés : TFA / MFA / TOTP

@guillaumestark
Copy link
Contributor

guillaumestark commented Mar 15, 2023

Objectif

Renforcer la sécurité de l'application Extract en implémentant un système d'authentification à deux facteurs.

Configuration / Maquettes

Télécharger toutes les maquettes

Aperçu

Création d'un nouvel utilisateur

Lors de la création d'un nouvel utilisateur, un toggle permet d'imposer l'utilisation de l'authentification à deux facteurs.

Cela signifie qu'après leur prochaine connexion, les utilisateurs devront obligatoirement configurer le 2FA.

Création d'un opérateur

https://xd.adobe.com/view/fd7f0c68-8d03-4e45-8442-b3d473e2c219-a82c/

Création d'un administrateur

https://xd.adobe.com/view/506bb4a6-c829-41f2-9598-e4abfdcd4565-0538/

Édition d'un autre utilisateur

Un administrateur qui édite un autre utilisateur peut effectuer les actions suivantes :

  • Activer le 2FA -> Statut 2FA passe de Inactif à En attente
  • Désactiver le 2FA -> Statut 2FA passe de Actif ou En attente à Inactif
  • Réinitialiser le 2FA -> Statut passe de Actif à En attente
  • Imposer l'utilisation du 2FA -> Uniquement pour les opérateurs.

Administrateur édite un opérateur

https://xd.adobe.com/view/3610329d-f5a0-4688-ae3e-39a3e502ed69-6343/

Administrateur édite un administrateur

https://xd.adobe.com/view/af2ef184-3e79-4b8f-a473-30255f9016bd-fa7d/

Édition de son propre compte

Un utilisateur qui édite son compte peut effectuer les actions suivantes :

  • Activer le 2FA -> Lance le wizard de configuration (qui peut être annulé)
  • Désactiver le 2FA -> Statut 2FA passe de Actif à Inactif (uniquement possible si l'opérateur n'a pas le 2FA imposé par un administrateur)
  • Réinitialiser le 2FA -> Lance le wizard de configuration (qui peut être annulé). Tant que le wizard n'est pas allé jusqu'au bout, la configuration actuelle reste valide avec un statut 2FA Actif.

Administrateur édite son compte

https://xd.adobe.com/view/aef5ad25-259e-43fc-b1e6-9735cc449c23-fba6/

Opérateur édite son compte

https://xd.adobe.com/view/9ef4117a-bb6b-4d95-90e4-7d04bcba57d2-cba7/

Wizard de configuration 2FA

  • Conditions de lancement
    • Utilisateur active ou réinitialise le 2FA pour son compte dans la page Compte utilisateur
    • Utilisateur se connecte avec un statut 2FA « En attente » (Un administrateur a activé / réinitialisé le 2FA pour lui)
  • Étapes
  1. L'utilisateur scanne le code QR avec son application Google Authenticator, créant ainsi un nouveau profil dans l'application.
  2. L'utilisateur saisit le code de vérification indiqué dans Google Authenticator et clic sur continuer
  3. Le serveur marque l'activation du 2FA dans le profil de l'utilisateur et la configuration est terminée
  4. Confirmation d'activation du 2FA – Possibilité de téléchargement / impression des codes de récupération

Notes :

  • Le Wizard ne peut pas être annulé s'il s'agit de la première connexion d'un utilisateur qui a le 2FA imposé.
  • Si la personne se connecte à Extract avec un statut 2FA "En attente" mais de manière non imposée, il a la possibilité de quitter le wizard de configuration, et son statut passe de "En attente" à "Inactif"

Wizard de configuration – 2FA Imposé

https://xd.adobe.com/view/fadaf000-0802-4ae1-b183-856f980b62b8-af89/

Wizard de configuration – 2FA Non imposé

https://xd.adobe.com/view/050efcf2-f530-4aad-bd6e-4240e532d393-505d/

Vérification du code 2FA

  • Conditions de lancement
    • L'utilisateur a un compte avec un statut 2FA « Actif »
    • L'utiliser se connecte avec son identifiant et mot de passe avec succès
  • Étapes
  1. L'utilisateur saisit son code d'authentification. Il a aussi la possibilité de faire confiance à son appareil pendant 30 jours, pour lui éviter de devoir revérifier son code d'authentification à chaque connexion.
  2. L'utilisateur peut aussi utiliser un code de récupération récupéré au préalable pour vérifier sa connexion
  3. Une fois la vérification effectuée, l'utilisateur accède à la page Extract demandée.

Vérification du code 2FA

https://xd.adobe.com/view/388b1b7f-0e22-450a-871d-840aecd82d82-6dd8/

Liste des utilisateurs

Une nouvelle colonne est disponible dans la liste des utilisateurs pour mentionner le statut d'activation du 2FA.

https://xd.adobe.com/view/0c1bb0f7-6fc8-48b2-9801-fced2813542b-5948/

Flux utilisateur – Connexion à Extract

flux

Actions et changements de statut 2FA

Modification de son propre compte

modification_propre

Modification d'un utilisateur par un administrateur

modification_autre_compte

Quand le statut 2FA est en attente, cela signifie que l'utilisateur devra configurer le 2FA à sa prochaine connexion.

Critères d'acceptation

Identifiant Description
255-1 Le 2FA doit être implémenté avec Google Authenticator.
255-2 Tous les utilisateurs peuvent activer/réinitialiser le 2FA.
255-3 En tout temps, un administrateur peut activer / réinitialiser / désactiver le 2FA pour un autre utilisateur.
255-4 Les administrateurs peuvent toujours désactiver le 2FA pour leur propre compte une fois mis en place, même si le 2FA leur a été imposé.
255-5 Les opérateurs peuvent désactiver le 2FA seulement s'il n'est pas imposé pour eux.
255-6 Une fois que la configuration du 2FA est terminée, il est obligatoire de se connecter avec.
255-7 Les codes de récupération peuvent uniquement être téléchargés pendant le processus d'activation du 2FA
255-8 Lors de la vérification du code d'authentification après un login, l'utilisateur a la possibilité de faire confiance à son appareil pendant 30 jours.

@rbovard
Copy link

rbovard commented Apr 6, 2023

  1. Ne faudrait-il pas imposer le 2FA aux administrateurs ?
  2. En cas de 2FA non imposé, est-ce que l'utilisateur est sollicité à chaque connexion ou uniquement à un certain intervalle de temps ?
  3. Veut-on vraiment imposer Google Authenticator ? Ne serait-il pas plus judicieux de parler d'application de double authentification (ou autre terme), tout en mentionnant Google Authenticator comme exemple ?

@guillaumestark
Copy link
Contributor

guillaumestark commented Apr 11, 2023

Hello, merci pour tes retours!

  1. Je me suis aussi posé la question initialement, mais je pense que si l'on impose le 2FA aux administrateurs, cela pourrait engendrer certains conflits. Par exemple, nous n'avons pas de rôle "super-admin", donc n'importe quel administrateur aura dans tous les cas la possibilité de désactiver le 2FA dans les réglages de manière globale ou pour un autre utilisateur. Donc en quelques sortes l'administrateur aura toujours moyen d'opt-out s'il le souhaite. Tu pensais à ce point au niveau sécurité?
  2. C'est un bon point que je vais préciser. L'utilisateur est sollicité si quelqu'un active le 2FA pour lui, mais si il ne souhaite pas l'activer et quitte le wizard de configuration, son statut doit passer de "En attente" à "Inactif" et il ne sera plus sollicité à l'avenir.
  3. Je pense que Google Authenticator est un choix pertinent, car c'est une application très répandue qui répond à nos besoins et j'imagine que certains des utilisateurs l'ont déjà installées pour d'autres services sur leur téléphone.

@yblatti
Copy link
Contributor

yblatti commented Apr 11, 2023

Je me permets d'ajouter une remarque sur le point 3 :
Google Authenticator est souvent utilisé comme terme générique pour "Application d'authentification à deux facteur TOTP (Time-based One-Time Passwords) selon la RFC 6238".
C'est plus court :)

Mais cela signifie que toute application qui suit la RFC sera compatible, par exemple : Microsoft Authenticator, Authy, Duo Mobile (avec third-party passcode), LastPass Authenticator, Step Two, etc.

@rbovard
Copy link

rbovard commented Apr 18, 2023

  1. Oui, étant donné que c'est un utilisateur critique, l'idée était de sécuriser au maximum ce compte. Après s'il peut sciemment désactiver le 2FA pour lui c'est autre chose, mais au moins par défaut c'est une configuration sécurisée qui est proposée.
  2. Ok, parfait
  3. Oui, l'idée était de ne pas "obliger" une certaine application, ce que des personnes novices pourraient comprendre en lisant les textes actuels.

@rogermaurer
Copy link
Author

Je suis entièrement d'accord avec les remarques de Rémi.
De plus, pourrait-on avoir une option permettant de forcer l'activation du 2ème facteur pour tous les utilisateurs par défaut? Cela éviterait de le faire manuellement sur chaque compte et servirait d'option par défaut pour tous les nouveaux comptes.

@guillaumestark
Copy link
Contributor

Merci à vous deux pour vos remarques pertinentes. Je discuterai de l'implémentation de celles-ci avec ArxIT la semaine prochaine et vous ferai un retour ici.

@guillaumestark guillaumestark added this to the v2.1 milestone May 4, 2023
@yblatti
Copy link
Contributor

yblatti commented Nov 27, 2023

Suite aux discussion avec ArxIT nous proposons de séparer le statut (dans le formulaire), de l'action (activation, réinitialisation, suppression) dans la barre d'action afin d'éviter la confusion.

1

2

N.B. Nous pensons aussi qu'un nouveau travail sur l'ergonomie du compte et de l’édition des utilisateurs sera à prévoir dans le futur.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants