Différences entre les versions de « Authentification à deux facteurs (A2F) via Python »

(refonte section macOS pour passer de Espanso à Hammerspoon)
Ligne 1 : Ligne 1 :
Il est possible d'utiliser un script Python pour générer les codes d'authentification à deux facteurs (A2F) demandé par l'Université.  Combiné avec le logiciel d'expansion de texte [https://espanso.org/ Espanso], vous pourrez facilement fournir un code A2F lorsque demandé sans avoir à ouvrir un autre logiciel ou envoyer le code sur votre téléphone.  La procédure ci-dessous vous donnera les grandes étapes pour configurer le tout sur votre ordinateur Windows, Mac ou Linux.
+
Il est possible d'utiliser un script Python pour générer les codes d'authentification à deux facteurs (A2F) demandé par l'Université.  Combiné avec le logiciel d'expansion de texte [https://espanso.org/ Espanso] (pour Windows) ou [https://www.hammerspoon.org Hammerspoon] (pour macOS), vous pourrez facilement fournir un code A2F lorsque demandé sans avoir à ouvrir un autre logiciel ou envoyer le code sur votre téléphone.  La procédure ci-dessous vous donnera les grandes étapes pour configurer le tout sur votre ordinateur Windows, Mac ou Linux.
  
 
== Pré-requis ==
 
== Pré-requis ==
  
 
Notez qu'il nous est impossible de tester toutes les versions existantes des divers systèmes d'opération, vous devez donc avoir sur votre ordinateur:
 
Notez qu'il nous est impossible de tester toutes les versions existantes des divers systèmes d'opération, vous devez donc avoir sur votre ordinateur:
* une version à jours de Windows 10, ou
+
* une version à jours de Windows 10/11, ou
* une version récente de macOS 10/11/12, ou
+
* macOS 10.14 ou plus récente, ou
* une version récente et mise à jours de Linux
+
* une version récente de Linux
  
Peu importe la plateforme que vous utilisez, vous devez pouvoir exécuter les logiciels suivants pour faire fonctionner cette solution:
+
Vous devez pouvoir exécuter les logiciels suivants pour faire fonctionner cette solution:
* [https://www.python.org/ Python version 3]
+
* [https://www.python.org/ Python version 3] (toutes plateformes)
* [https://espanso.org/ Espanso]
+
* [https://espanso.org/ Espanso] (pour Windows)
 
+
* [https://www.hammerspoon.org Hammerspoon] (pour macOS)
== Fichiers d'installation pour Windows, Mac et Linux ==
 
 
 
Voici les fichiers pour automatiser l'installation
 
 
 
{|style="text-align: center;width: 100%;"
 
|[[Image:Installing-100.png|50px|link=https://dms.umontreal.ca/downloads/a2f/GetTotp_Setup.exe]]
 
|
 
|[[Image:Installing-100.png|50px|link=https://dms.umontreal.ca/downloads/a2f/installGetTotp.sh]]
 
|
 
|[[Image:Installing-100.png|50px|link=https://dms.umontreal.ca/downloads/a2f/getTotp.py]]
 
|-
 
|Installation
 
Windows
 
|
 
|Installation
 
MAC et Linux
 
|
 
|Script
 
python3
 
|}
 
  
 
En bas vous trouverez l'explication détaillé
 
En bas vous trouverez l'explication détaillé
Ligne 57 : Ligne 37 :
 
<pre>python --version</pre>
 
<pre>python --version</pre>
  
Si la version commence par 3 vous n'avez rien à faire. Cependant si la version commence par 2, vous devrez télécharger et installer la version 3 de Python.  Consultez la [https://www.python.org/downloads/ page de téléchargement de Python] pour obtenir le fichier d'installation pour macOS puis installez-le.  Notez que cette version de Python sera installé dans un répertoire différent pour ne pas entrer en conflit avec la version de Python qui est installée par défaut sur macOS.  Une fois l'installation complétée, ouvrez une fenêtre de commande et entrez la commande suivante (notez le 3 à la fin de python):
+
* Si la version commence par 3 vous n'avez rien à faire.
 +
* Si vous recevez une erreur ''command not found: python'', ré-essayez avec la commande ''python3 --version'' à la place et assurez-vous d'avoir une version de Python 3 (les dernières versions de macOS n'incluent plus la commande ''python'' par défaut, seul ''python3'' est présent)
 +
* Si la version commence par 2 ou qu'il n'y a aucun python d'installé, vous devrez télécharger et installer la version 3 de Python.  Consultez la [https://www.python.org/downloads/ page de téléchargement de Python] pour obtenir le fichier d'installation pour macOS puis installez-le.  Si vous êtes utilisateur de [https://brew.sh/ Homebrew] vous pouvez aussi l'installer avec la commande ''brew install python''.  Notez que cette version de Python sera installé dans un répertoire différent pour ne pas entrer en conflit avec la version de Python qui est installée par défaut sur macOS.  Une fois l'installation complétée, ouvrez une fenêtre de commande et entrez la commande suivante (notez le 3 à la fin de python):
  
 
<pre>python3 --version</pre>
 
<pre>python3 --version</pre>
Ligne 65 : Ligne 47 :
 
=== Modules Python ===
 
=== Modules Python ===
  
Le script a besoin de deux modules python supplémentaires pour fonctionner.  Ouvrez une fenêtre de commande puis entrez la commande suivante pour les installer:
+
Le script a besoin de trois modules python supplémentaires pour fonctionner.  Ouvrez une fenêtre de commande puis entrez la commande suivante pour les installer:
  
<pre>pip3 install --user pyotp keyring</pre>
+
<pre>pip3 install --user pyotp keyring pyperclip</pre>
  
 
=== Installation du script ===
 
=== Installation du script ===
Ligne 75 : Ligne 57 :
 
<pre>python3 $HOME/getTotp.py</pre>
 
<pre>python3 $HOME/getTotp.py</pre>
  
Si vous ne savez pas où obtenir votre clé TOTP, consultez la [[Authentification_à_deux_facteurs_(A2F)_sous_Linux#Obtenir_votre_cl.C3.A9_TOTP|mini-procédure suivante.]]  Une fois votre clé sauvegardée, vous n'aurez plus à exécuter le script manuellement.
+
Si vous ne savez pas où obtenir votre clé TOTP, consultez la [[Authentification_à_deux_facteurs_(A2F)_sous_Linux#Obtenir_votre_cl.C3.A9_TOTP|mini-procédure suivante.]]  Une fois votre clé sauvegardée, vous n'aurez plus à exécuter le script manuellement.  On vous recommande fortement de sauvegarder votre clé TOTP dans un endroit sécuritaire (une gestionnaire de mot de passe ou autre logiciel similaire) au cas où il faudrait réinstaller votre ordinateur ou si vous voulez utiliser le script sur plusieurs ordinateurs.
 
 
=== Installation d'Espanso ===
 
 
 
La façon la plus facile d'installer Espanso est via le logiciel ''brew''Si vous n'avez pas déjà brew d'installé sur votre ordinateur, ouvrez une fenêtre de commande puis entrez la commande suivante:
 
 
 
<pre>/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"</pre>
 
  
Suivez les instructions fournies par le script d'installation (si nécessaire).
+
=== Installation de Hammerspoon ===
  
Une fois brew installé, entrez les commandes suivantes pour installer Espanso:
+
Téléchargez la dernière version de Hammerspoon directement de leur site web:
  
<pre>
+
https://github.com/Hammerspoon/hammerspoon/releases/latest
brew tap federico-terzi/espanso
 
brew install espanso
 
espanso --version
 
</pre>
 
  
La dernière commande vous indiquera si Espanso a bien été installé en vous donnant la version du programme.
+
puis décompressez le fichier .zip et déplacez l'application décompressée dans votre dossier ''Applications''.
  
Si vous préférez ne pas utiliser brew, notez qu'il y a [https://espanso.org/docs/install/mac#manually des instructions sur le site d'Espanso] pour effectuer une installation manuelle.
+
Alternativement installez-le via [https://brew.sh/ Homebrew] avec la commande ''brew install --cask hammerspoon''.
  
Suite à l'installation, vous devez activer les options d'accessibilité de macOS [https://espanso.org/docs/install/mac#enabling-accessibility tel qu'expliqué ici]Voici un résumé rapide des étapes, consultez le lien précédent pour plus de détails:
+
Une fois installé exécutez l'application Hammerspoon pour la première fois et suivez les instruction pour lui donner accès aux fonctions d'Accessibilité de macOS.  Ceci est nécessaire au bon fonctionnement de l'application.
* entrez la commande ''espanso register'' dans une fenêtre de commandes
 
* cliquez sur ''Open System Preferences'' dans la fenêtre qui apparaîtra
 
* cliquez sur le cadenas pour débarrer les préférences de sécurité
 
* dans la catégorie Accessibility, cochez Espanso puis fermez la fenêtre
 
* de retour dans la fenêtre de commande, tapez ''espanso start''
 
  
Espanso devrait maintenant être installé et actif.  Un petit icône "e" devrait être visible dans la barre en haut de votre écran.
+
L'icône de Hammerspoon devrait maintenant apparaître en haut de votre écran. Cliquez dessus et choisissez l'option ''Preferences''. Assurez-vous que ''Launch Hammerspoon at login'' est bien coché, ajustez les autres préférences selon vos goûts. Fermez les préférences puis cliquez à nouveau sur l'icône de Hammerspoon et choisissez l'option ''Open config''. Dans la fenêtre qui va apparaître, entrez le script suivant:
 
 
=== Configuration d'Espanso ===
 
 
 
Téléchargez ce [https://dms.umontreal.ca/downloads/a2f/configEspanso.sh script de configuration] dans votre répertoire maison puis dans une fenêtre de commande exécutez ceci:
 
  
 
<pre>
 
<pre>
chmod +x configEspanso.sh
+
hs.hotkey.bind({"alt" }, "4", function()
./configEspanso.sh
+
hs.alert.closeAll()
 +
  hs.alert.show("OTP UdeM Copiée en mémoire!")
 +
ok,result = hs.applescript('do shell script "/usr/bin/python3 ~/getTotp.py -c"')
 +
ok,result = hs.applescript('do shell script "/usr/bin/python3 ~/getTotp.py"')
 +
    hs.alert.show(result,hs.styledtext,hs.screen.mainScreen(),10 )
 +
end)
 
</pre>
 
</pre>
  
Ceci ajoutera les configuration nécessaire à Espanso pour vous fournir un code TOTP sur demandeLorsqu'une invite vous demandera votre code, vous n'aurez qu'à entrer:
+
'''Note importante:''' si vous avez installé Python manuellement ou via Homebrew, il se peut que votre Python se trouve ailleur que dans /usr/binSi vous recevez des erreurs, ouvrez une fenêtre de commande et entrez la commande ''which python3''.  Ajustez les deux lignes du script ci-haut qui contiennent ''/usr/bin/python3'' en conséquence d'où votre python3 se trouve sur votre système.
 
 
<pre>:code</pre>
 
 
 
dans le champ et il sera automatiquement remplacé par un code d'authentification.
 
 
 
=== Produit alternatif: Hammerspoon ===
 
  
Si la solution ci-haut ne vous convient pas, il existe aussi le produit [https://www.hammerspoon.org/ Hammerspoon] qui peut être installé sur MacOS.  Il s'agit d'un logiciel d'automatisation qui utilise le langage Lua pour interagir avec les diverses composantes de MacOSConsultez sa [https://www.hammerspoon.org/go/ documentation officielle] pour plus de détails ou encore ce [https://zzamboni.org/post/getting-started-with-hammerspoon/ guide de démarrage]Plus d'information à venir.
+
Sauvegardez le script et quittez l'éditeur, puis cliquez à nouveau sur l'icône de Hammerspoon en haut de votre écran et choisissez l'option ''Reload config''.  Vous devriez maintenant pouvoir faire la combinaison de touches ''Option-4'' sur votre clavier et vous recevrez 2 messages, un vous disant que la clé OTP a été copiée en mémoire et un deuxième message vous affichant la clé courantevous pourrez alors utiliser la fonction ''Coller'' dans n'importe quelle application qui vous demande votre code d'authentification.
  
 
== Installation sous Linux ==
 
== Installation sous Linux ==

Version du 24 novembre 2022 à 11:35

Il est possible d'utiliser un script Python pour générer les codes d'authentification à deux facteurs (A2F) demandé par l'Université. Combiné avec le logiciel d'expansion de texte Espanso (pour Windows) ou Hammerspoon (pour macOS), vous pourrez facilement fournir un code A2F lorsque demandé sans avoir à ouvrir un autre logiciel ou envoyer le code sur votre téléphone. La procédure ci-dessous vous donnera les grandes étapes pour configurer le tout sur votre ordinateur Windows, Mac ou Linux.

Pré-requis

Notez qu'il nous est impossible de tester toutes les versions existantes des divers systèmes d'opération, vous devez donc avoir sur votre ordinateur:

  • une version à jours de Windows 10/11, ou
  • macOS 10.14 ou plus récente, ou
  • une version récente de Linux

Vous devez pouvoir exécuter les logiciels suivants pour faire fonctionner cette solution:

En bas vous trouverez l'explication détaillé

Installation sous Windows

Pour la plateforme Windows, vous pouvez utiliser le fichier d'installation lié ici pour effectuer l'installation de toutes les composantes nécessaire, soit Python, Espanso et le script. Téléchargez le fichier puis exécutez-le.

Vers la fin de l'installation, une fenêtre de commande vous demandera d'entrer votre clé TOTP afin de terminer l'installation. Entrez votre clé puis appuyez sur Enter. Si vous ne savez pas où obtenir votre clé TOTP, consultez la mini-procédure suivante.

Après que votre clé TOTP soit entrée, vous pourrez maintenant utiliser la fonction d'expansion de texte d'Espanso pour obtenir votre code A2F. Lorsqu'une invite vous demandera votre code, vous n'aurez qu'à entrer:

:code

dans le champ et il sera automatiquement remplacé par un code d'authentification.

Installation sous macOS

Voici les étapes à suivre pour installer la solution sous macOS.

Python version 3

Ouvrez une invite de commande puis entrez la commande suivante pour vérifier la version de Python installé sur votre système:

python --version
  • Si la version commence par 3 vous n'avez rien à faire.
  • Si vous recevez une erreur command not found: python, ré-essayez avec la commande python3 --version à la place et assurez-vous d'avoir une version de Python 3 (les dernières versions de macOS n'incluent plus la commande python par défaut, seul python3 est présent)
  • Si la version commence par 2 ou qu'il n'y a aucun python d'installé, vous devrez télécharger et installer la version 3 de Python. Consultez la page de téléchargement de Python pour obtenir le fichier d'installation pour macOS puis installez-le. Si vous êtes utilisateur de Homebrew vous pouvez aussi l'installer avec la commande brew install python. Notez que cette version de Python sera installé dans un répertoire différent pour ne pas entrer en conflit avec la version de Python qui est installée par défaut sur macOS. Une fois l'installation complétée, ouvrez une fenêtre de commande et entrez la commande suivante (notez le 3 à la fin de python):
python3 --version

vous devriez voir une version commençant par 3.

Modules Python

Le script a besoin de trois modules python supplémentaires pour fonctionner. Ouvrez une fenêtre de commande puis entrez la commande suivante pour les installer:

pip3 install --user pyotp keyring pyperclip

Installation du script

Téléchargez le script ici puis sauvegardez le dans votre répertoire maison. Ouvrez ensuite une fenêtre de commande et exécutez le script manuellement afin d'y entrer votre clé TOTP:

python3 $HOME/getTotp.py

Si vous ne savez pas où obtenir votre clé TOTP, consultez la mini-procédure suivante. Une fois votre clé sauvegardée, vous n'aurez plus à exécuter le script manuellement. On vous recommande fortement de sauvegarder votre clé TOTP dans un endroit sécuritaire (une gestionnaire de mot de passe ou autre logiciel similaire) au cas où il faudrait réinstaller votre ordinateur ou si vous voulez utiliser le script sur plusieurs ordinateurs.

Installation de Hammerspoon

Téléchargez la dernière version de Hammerspoon directement de leur site web:

https://github.com/Hammerspoon/hammerspoon/releases/latest

puis décompressez le fichier .zip et déplacez l'application décompressée dans votre dossier Applications.

Alternativement installez-le via Homebrew avec la commande brew install --cask hammerspoon.

Une fois installé exécutez l'application Hammerspoon pour la première fois et suivez les instruction pour lui donner accès aux fonctions d'Accessibilité de macOS. Ceci est nécessaire au bon fonctionnement de l'application.

L'icône de Hammerspoon devrait maintenant apparaître en haut de votre écran. Cliquez dessus et choisissez l'option Preferences. Assurez-vous que Launch Hammerspoon at login est bien coché, ajustez les autres préférences selon vos goûts. Fermez les préférences puis cliquez à nouveau sur l'icône de Hammerspoon et choisissez l'option Open config. Dans la fenêtre qui va apparaître, entrez le script suivant:

hs.hotkey.bind({"alt" }, "4", function()
hs.alert.closeAll()
  hs.alert.show("OTP UdeM Copiée en mémoire!")
ok,result = hs.applescript('do shell script "/usr/bin/python3 ~/getTotp.py -c"')
ok,result = hs.applescript('do shell script "/usr/bin/python3 ~/getTotp.py"')
    hs.alert.show(result,hs.styledtext,hs.screen.mainScreen(),10 )
end)

Note importante: si vous avez installé Python manuellement ou via Homebrew, il se peut que votre Python se trouve ailleur que dans /usr/bin. Si vous recevez des erreurs, ouvrez une fenêtre de commande et entrez la commande which python3. Ajustez les deux lignes du script ci-haut qui contiennent /usr/bin/python3 en conséquence d'où votre python3 se trouve sur votre système.

Sauvegardez le script et quittez l'éditeur, puis cliquez à nouveau sur l'icône de Hammerspoon en haut de votre écran et choisissez l'option Reload config. Vous devriez maintenant pouvoir faire la combinaison de touches Option-4 sur votre clavier et vous recevrez 2 messages, un vous disant que la clé OTP a été copiée en mémoire et un deuxième message vous affichant la clé courante. vous pourrez alors utiliser la fonction Coller dans n'importe quelle application qui vous demande votre code d'authentification.

Installation sous Linux

Voici les étapes à suivre pour installer la solution sous Linux.

Python version 3

Ouvrez un terminal et vérifiez la version de Python qui est installé:

python --version

Si vous n'avez pas la version 3, veuillez suivre les instructions de votre distribution afin d'installer Python 3. Ces instructions diffèrent selon chaque distribution et seraient trop vaste pour les inclures ici. Notez aussi que Python version 2 n'est plus supporté, donc si votre distribution l'utilisent encore comme version principale, il serait pertinent de considérer une migration vers une version plus récente de votre distribution ou une autre distribution.

Modules Python

Le script a besoin de deux modules python supplémentaires pour fonctionner. Ouvrez un terminal puis entrez la commande suivante pour les installer:

pip3 install --user pyotp keyring

Installation du script

Téléchargez le script ici puis sauvegardez le dans votre répertoire maison. Ouvrez ensuite un terminal et exécutez le script manuellement afin d'y entrer votre clé TOTP:

python3 $HOME/getTotp.py

Si vous ne savez pas où obtenir votre clé TOTP, consultez la mini-procédure suivante. Une fois votre clé sauvegardée, vous n'aurez plus à exécuter le script manuellement.

Installation d'Espanso

Le site d'Espanso contient les instructions d'installation pour les distributions Debian/Ubuntu, Manjaro/Arch, ainsi qu'une procédure d'installation manuelle pour toutes les autres distributions. Portez attentions aux pré-requis nécessaire à Espanso.

Configuration d'Espanso

Téléchargez ce script de configuration dans votre répertoire maison puis dans une fenêtre de commande exécutez ceci:

chmod +x configEspanso.sh
./configEspanso.sh

Ceci ajoutera les configuration nécessaire à Espanso pour vous fournir un code TOTP sur demande. Lorsqu'une invite vous demandera votre code, vous n'aurez qu'à entrer:

:code

dans le champ et il sera automatiquement remplacé par un code d'authentification.

Voir aussi


La dernière modification de cette page a été faite le 24 novembre 2022 à 11:35.