deblan.io-gemini/blog/posts/626.gmi
2024-01-05 22:48:52 +01:00

33 lines
2.2 KiB
Plaintext

# Sharepoint Office365 sur Linux : automatiser l'authentification (v2)
* 2022-08-25 13:30:00
* Développement, Informatique
En septembre 2018, je publiais un article pour
=> https://www.deblan.io/post/545/sharepoint-office365-sur-linux-automatiser-l-authentification 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
=> https://www.deblan.io/post/543/monter-un-partage-sharepoint-office365-sur-linux-webdav-davfs 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
=> https://playwright.dev/ 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+.
```{class="language-shell-session window"}
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.
```{class="language-shell-session window"}
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":"..."}
```