Problématique ?
L’accès aux ressources partagées en activant la double authentification est une problématique rencontrée par beaucoup d’équipes. Pour des raisons de sécurité, chez spiriit, nous avons choisi d’activer l’authentification à deux facteurs sur de nombreux services critiques.
Qu’est-ce que l’authentification double facteurs ?
L’authentification à double facteur ou validation en deux étapes permet à un utilisateur de se connecter à un service en présentant deux preuves de son identité. Cette méthode assez répandue sur les sites internet se traduit par la saisie d’une combinaison identifiant/mot de passe, suivi de l’envoi d’un code par SMS qu’il faut saisir dans un court délai (~5 minutes) avant expiration. Il existe d’autres méthodes, via Google Authenticator par exemple, mais nous allons nous concentrer sur le SMS dans cet article.
Mais alors comment permettre à plusieurs membres d’une équipe d’accéder à un système informatique protégé par ce type d’authentification ?
La solution basique consiste à rajouter les numéros de téléphone des collaborateurs concernés par les accès à ce service. Cette solution d’ajout multiple n’est pas souvent offerte. Aussi, on a tous déjà été confronté au collègue qui est malade ou en congés et plus aucun membre de l’équipe ne peut se connecter au service en question. Pour le coup, la protection est un peu trop forte 😉
Sans compter qu’il devient crucial de maintenir la base d’utilisateurs autorisés à jour. Cette tâche peut s’avérer fastidieuse et source d’erreur. De plus, fonctionner ainsi peut engendrer de la gêne pour les collaborateurs qui reçoivent des notifications parfois plusieurs fois par jour à chaque demande de connexion de l’un d’entre eux.
Quelle solution avons-nous choisie ?
Après avoir étudié la possibilité d’utiliser un numéro de téléphone virtuel partagé, nous avons choisi de nous orienter sur la solution de la messagerie interne Slack.
L’idée est d’envoyer les codes d’authentification sur un channel dédié dans Slack. Ainsi, le filtrage des utilisateurs ne se fait qu’à un seul endroit : dans ce canal de discussion. Les collaborateurs qui quittent la société sont donc enlevés de notre Slack et les nouveaux y sont forcément ajoutés.
La notion de double authentification est toujours en place, puisque nous utilisons deux canaux distincts (mot de passe + code) et en plus le token n’est généré que pour un seul utilisateur. Personne ne pourra se connecter en interceptant juste ce code. Or aucun service ou très peu propose ce type de double authentification via messagerie professionnelle.
Comment faire pour la configuration ?
La double authentification passe en général par la configuration d’un ou plusieurs numéros de téléphone mobile sur lequel sera envoyé un SMS avec un code. Chez Spiriit, nous avons ouvert une ligne mobile dédiée avec une carte SIM sur un téléphone Android qui est stocké au bureau. Ce téléphone reçoit un SMS de double authentification.
Nous avons créé une applet sur l’outil IFTTT (installé sur le smartphone) qui nous retransmet le SMS sur un canal de discussion Slack. La création de cette applet est très simple via l’interface de IFTTT.
Attention, ceci n’est possible que via un téléphone Android, en effet, IOS ne permet pas à une application tierce d’accéder aux messages SMS.
Qu’est ce que IFTTT ?
IFTTT est l’abréviation de If This, Then That. C’est un service web qui permet de réaliser des actions en fonction de déclencheurs prédéfinis.
Cet outil est très utilisé dans le monde de l’IOT et de la domotique et dispose donc d’un temps de réponse extrêmement faible (1 ou 2 secondes dans le pire des cas) contrairement à Zappier par exemple. C’est pour cela que nous l’avons choisi car le code n’est souvent valable que quelques minutes.
Dans notre cas, la réception d’un SMS (le déclencheur If) va engendrer la transmission du message sur Slack (l’action Then)
Pour aller plus loin
Une nouvelle problématique qui s’est alors posée est d’avoir un téléphone en permanence alimenté électriquement posé sur une étagère. Cette pratique n’est pas du tout conseillée.
Dans le souci de ne pas prématurément réduire la durée de vie de la batterie du téléphone, l’application IFTTT nous permet aussi de piloter son alimentation électrique. En effet, il est conseillé pour préserver les batteries de les charger jusqu’à environ 80% quand l’autonomie descend en dessous de 20%. (source Ademe).
Ce sont donc nos déclencheurs pour piloter une prise électrique connectée via IFTTT :
- SI batterie < 20% ALORS Allumer(prise)
- SI batterie >= 80% ALORS Eteindre(prise)
Ainsi le téléphone est toujours sous tension, mais pas tout le temps alimenté. Ceci augmente sa durée de vie et réduit les risques d’incident (batterie qui chauffe).
Conclusion
Nous ne sommes qu’en phase de mise en place de cette solution, mais jusqu’à présent, nous n’y avons trouvé que des avantages. Simplicité, sécurité, maintenabilité. En plus, elle est toujours compatible avec l’ancien mode de fonctionnement pour les personnes qui ne seraient pas connecté à Slack. Nous pouvons conserver dans le listing le numéro de téléphone des collaborateurs qui souhaitent conserver le fonctionnement par SMS.
Si le service auquel on veut se connecter ne permet pas d’ajouter plusieurs collaborateurs, nous pouvons même imaginer que IFTTT serve de relais SMS pour transférer à un ou plusieurs autres numéros de téléphone le sms reçu. Quand je vous dis qu’il n’y a que des avantages.