Sharepoint Office365 sur Linux : automatiser l'authentification (v2)

En septembre 2018, je publiais un article pour automatiser l'authentification sur Sharepoint Office365 depuis Linux. J'avais développé un outil qui réalisait le parcours d'authentification que propose Microsoft via des pages web. L'interêt de cette méthode d'authentification est de récupérer les cookies de connexion pour les injecter dans Davfs.

Après cette publication, j'ai eu quelques retours qui indiquaient que l'outil ne fonctionnait pas toujours. Les interfaces de connexion peuvent évoluer d'une entreprise à l'autre et je gérais uniquement celles que j'avais. Cette semaine, je me suis confronté à un changement de workflow chez Microsoft et je n'ai pas pu corriger le projet qui est alors devenu inutilisable. J'ai eu besoin de trouver une parade et je me suis tourné vers Playwright qui permet, en autres, de réaliser des tests fonctionnels sur des interfaces web.

Le principe est simple : on lance un navigateur et je simule une saisie utilisateur. À la fin, je récupère les cookies qui ont été générés. Voici la marche à suivre pour installer l'outil qui fonctionne avec NodeJS 16+.

user@host $ git clone https://gitnet.fr/deblan/office365-oauth2-authenticator-2
user@host $ cd office365-oauth2-authenticator-2
user@host $ make setup

Le principe est identique au précédent projet puisqu'il faut déclarer 3 variables d'environnement avec l'adresse du site sharepoint auquel se connecter, l'identifier et le mot de passe puis lancer le script. En retour, vous aurez un json qui contient les cookies et leur valeur.

user@host $ export MS_OFFICE365_SITE="https://foo.sharepoint.com/"
user@host $ export MS_OFFICE365_LOGIN="user@example.com"
user@host $ export MS_OFFICE365_PASSWORD="5eCrEt"
user@host $ node index.js
{"rtFa":"...","FedAuth":"..."}

Simon Vieille

Cet article a été rédigé par Simon Vieille, développeur français animé par la culture du libre et du hacking.

Il intervient à Tinternet & Cie, une association d’éducation numérique populaire. Depuis septembre 2022, il est lead developer à Trinaps, un opérateur télécom local et indépendant.


Ajouter un commentaire

Votre commentaire - Vous pouvez utiliser du markdown

Renouveler