Sharepoint Office365 sur Linux : automatiser l'authentification

Suite de l'aventure avec Sharepoint !

On a pu passer 2 étapes cruciales pour jouer avec Sharepoint Online :

Après quelques jours d'utilisation, il s'avère que les cookies d'authentification ne sont plus valables. C'est un gros problème car c'est pénible de les récupérer manuellement pour ensuite les injecter dans le fichier de configuration Davfs.

J'ai planché quelques heures sur une solution : réaliser le parcours de connexion d'un utilisateur qui passerait par un navigateur web.

Le projet est libre et voici comment l'installer et l'utiliser.

Note : il faut avoir NodeJS sur sa machine. J'ai développé le code en version 6.13.0.

Il faudra déclarer 3 variables d'environnement contenant le site Sharepoint, l'identifiant de connexion et le mot de passe :

Il ne reste plus qu'à lancer le script qui devrait vous retourner du JSON avec les 2 cookies dedans :

À vous de choisir la méthode pour alimenter la configuration de Davfs avec ces données !

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.


  • Simon
  • Bonjour, Je viens vous demander de petits conseils car le script present sur votre repo me retourne une erreur et je dois dire ne pas trop savoir ce qu'il en est ..

    Voici l'erreur en question:

    Documents/SharePoint/office365-oauth2-authenticator/index.js:53 throw e; ^

    TypeError: response.$ is not a function

    Merci d'avance pour votre réponse, j'ai veritablement besoin que ce script fonctionne travaillant avec Sharepoint et Pop!_OS quotidiennement ..

    Cordialement

  • Simon
  • Bonjour,

    Oui tout à fait, j'ai suivi les recommandations présent sur le repo. (excusez mon temps de réponse tardif, je pensais recevoir une notif ^^)

  • Simon
  • J'ai arrêté d'envoyer des notifications car personnes n'en voulait jusqu’à présent :) Je propose de voir ça via un salon de discussion car cela sera compliqué par commentaire interposé.

    Dispo via Matrix voire sur Discord (deblan#1707) même si je suis moins fan !

  • Zied
  • Bonjour, Je vous remercie pour votre script, je viens de faire le test mais j'ai des erreurs JS office365-oauth2-authenticator\index.js:53 throw e; ^

    TypeError: Cannot read property 'split' of undefined at Object.onSuccess (office365-oauth2-authenticator\index.js:262:38) at Object.options.callback (office365-oauth2-authenticator\index.js:105:29) at Crawler._injected (office365-oauth2-authenticator\node_modules\crawler\lib\crawler.js:596:10) at Crawler._inject (office365-oauth2-authenticator\node_modules\crawler\lib\crawler.js:202:3) at Crawler._onContent (office365-oauth2-authenticator\node_modules\crawler\lib\crawler.js:589:7) at Request._callback (office365-oauth2-authenticator\node_modules\crawler\lib\crawler.js:433:10) at Request.self.callback (office365-oauth2-authenticator\node_modules\request\request.js:185:22) at Request.emit (events.js:315:20) at Request.<anonymous> (office365-oauth2-authenticator\node_modules\request\request.js:1154:10) at Request.emit (events.js:315:20)

    Est-ce que vous avez une idée comment résoudre ce problème? Je vous remercie

  • Simon
  • Bonjour,

    Il faudrait s'assurer que MS_OFFICE365_SITE a bien une forme équivalente à https://foo.sharepoint.com/.

    Cependant, il semble que sur certains espaces Sharepoint, l'authentification ne se déroule pas tout à fait pareil. Malheureusement, n'ayant jamais eu d'accès, je n'ai jamais pu déboguer le problème…

    Si toutefois l'erreur de vient pas de MS_OFFICE365_SITE, alors on pourrait essayer de trouver une solution en privé mais on devra me partager des identifiants.


Ajouter un commentaire

Votre commentaire - Vous pouvez utiliser du markdown

Renouveler