web-dev-qa-db-fra.com

Mont SharePoint Online (Office 365) à Linux

Nous avons commencé à utiliser SharePoint Online inclus avec notre abonnement Office 365. Nos utilisateurs Windows peuvent installer un logiciel qui synchronise automatiquement les documents partagés de SharePoint à leurs ordinateurs Windows. Comment activer mes utilisateurs Linux (Ubuntu) de faire de même?

Je pensais que webdav travaillerait, mais mes tentatives échouent toujours, principalement avec "Erreur HTTP: interdite". Spécifiquement, j'essaie d'ajouter un serveur via Nautilus File Parcourir et échouer:

Server: mycompany.sharepoint.com
Port: 443
Tppe: Secure WebDav (HTTPS)
Folder: /
User name: [email protected]
Password: ********

Erreur HTTP: interdite

J'ai essayé de changer de nom d'utilisateur sur:

 mycompany\first.last

J'ai essayé de changer de dossier pour:

 /Shared%20Documents

et divers autres chemins basés sur des recherches sur le Web en vain.

Devrait-il fonctionner? Y a-t-il une meilleure solution?

9
proximous

Connexion à Office365 SharePoint (ou "OneDrive for Business") par WebDav nécessite un cookie d'authentification existant. Vous ne pouvez pas vous connecter avec un nom d'utilisateur et un mot de passe sur votre client WebDAV. Sous Windows, vous pouvez y parvenir en ajoutant le site SharePoint à la liste des sites INTERNET Explorer, puis de vous connecter à Internet Explorer et de Cochez "Garder-moi connecté", ce qui vous permettra de mapper le lecteur réseau dans l'Explorateur Windows.

Le seul moyen que j'ai trouvé pour cela sur Linux est avec Konqueror, car il contient à la fois un navigateur Web et un navigateur de fichiers WebDav-compatible. Vous pouvez vous connecter au site SharePoint dans le navigateur Konqueror, puis le navigateur de fichiers Konqueror peut utiliser ce cookie pour s'authentifier sur WebDAV.

7
Clint

Cela fonctionne avec la dernière version de la rivone qui est de 1,50 pour le moment:

https://rclone.org/downloads/

OneDrive for Business est fondamentalement SharePoint, cela fonctionne par la configuration de la rivone comme décrit ici:

https://rclone.org/onedrive/ (Vérifiez les limitations!)

Donc, fondamentalement, vous courez dans un terminal:

rclone config

Ensuite, tapez n, puis tapez un nom et choisissez l'option 22 après (cela peut changer, mais l'option OneDrive est signifiée ici). Ensuite, appuyez sur Entrée deux fois (ID client et Secret n'est pas nécessaire), puis n pour aucune configuration avancée. Ensuite, entrez Y pour AutoConfig (votre navigateur doit s'ouvrir et il est pratique si vous êtes connecté, il rediriera et affichera un message succédé dans le navigateur.

Retournez au terminal et choisissez 1 pour OneDrive. Cela devrait vous montrer un lecteur, choisir 0. prochain message, choisissez Y pour confirmer, le prochain y aussi.

Maintenant, vous avez la configuration Configuration, vous pouvez donc monter le partage comme suit:

rclone --vfs-cache-mode writes mount OneDrive: ~/OneDrive

où OneDrive est le nom du partage que vous avez créé et ~/OneDrive est le dossier de votre répertoire personnel où vous le montez.

Si quelque chose ne va pas avec le montage, vous pouvez mentionner:

fusermount -uz ~/OneDrive/

Vous avez peut-être remarqué que les dossiers partagés ne sont pas là. Il n'est pas pris en charge en RCLONE pour le moment pour la version d'entreprise. Pour contourner cela, vous pouvez utiliser WebDAV config pour le monter. Plus sur ce qui peut être trouvé ici:

https://rclone.org/webdav/

pour le fournisseur, choisissez SharePoint afin que votre config semble ressembler à quelque chose comme:

[onedriveShared]
type = webdav
url = https://domain.sharepoint.com/personal/firstname_lastname_domain_com/Documents
vendor = sharepoint
user = [email protected]
pass = encryptes_pass

Le problème ici est que vous devriez ajouter ceci pour chaque action. Malheureusement, Microsoft n'a pas jugé nécessaire de prendre en charge Linux, alors mon conseil est et qu'il était de rester à l'écart de leurs produits et d'utiliser ceux qui travaillent hors de la boîte.

1
Vincent Gerris

Je confirme que Konqueror fonctionne. Cependant, autant que j'ai été informé de Sphilezilla se connecte à OneDrive pour les affaires et SharePoint avec un jeton anonyme. Voir ici: https://github.com/suoko/spfilezilla Si c'est vrai, nous pouvons faire de Davfs créer le jeton anonyme

0
suoko

C'est bien possible, mais je n'ai pas encore de solution lisse. Je monte des lecteurs SharePoint avec Davfs2. Pour que cela fonctionne, vous devez vous authentifier avec un navigateur (en accédant simplement simplement à votre site SharePoint). Vous devez ensuite extraire les cookies nommés "RTFA" et "Feduuth". Ils doivent être colplés à la fin du fichier /etc/davfs2/davfs2.conf, comme si:

add_header Cookie rtFa=<your cookie here>;FedAuth=<your other cookie here>;

Ajoutez également la ligne suivante:

use_locks 0

Pour monter la part, j'utilise l'URL de l'URL SharePoint-webinterface de la part, sans défaut.aspx à la fin. Je les ai également entrés dans/etc/fstab, donc je peux facilement les monter:

https://myinstitution.sharepoint.com/sites/path/to/my/share/      /path/to/my/mountpoint   davfs   user,rw,noauto  0       0

Pour obtenir les cookies au fichier davfs2.conf, j'utilise Chrome avec l'extension Cookies.txt, donc je peux les enregistrer dans un fichier cookies.txt en deux clics. Puis j'ai écrit un petit Ruby-script qui analyse ce fichier et ajoute la ligne au fichier davfs2.conf. J'ai actuellement un lien sympicolique de /etc/davfs2/davfs2.conf dans un fichier de mon répertoire domestique, mais la façon de le faire le faire serait Un fichier de configuration par utilisateur (quel DAVFS2 permet au AFAIK). Il est loin d'être idéal, mais cela fait le travail pour l'instant.

#!/usr/bin/Ruby

davfsFile = "/path/to/the/file/davfs2.conf"  # Replace this
cookiesFile = "/path/to/the/file/cookies.txt"  # Replace this
cookies = File.read(cookiesFile).split("\n").map{|c| c.split("\t")}
`rm #{cookiesFile}`

cookies.select!{|c| c[5]=="rtFa" || c[5]=="FedAuth"}
cookieline = "add_header Cookie #{cookies[0][5]}=#{cookies[0][6]};#{cookies[1][5]}=#{cookies[1][6]};"

davfsconf = File.read(davfsFile).split("\n")
davfsconf[-1]=cookieline
File.write(davfsFile, davfsconf.join("\n"))

Le transfert de fichier est rapide et utilisable, l'accès du répertoire est presque inutilement lent, comme LS */BLA prend 40 s dans un répertoire avec 30 entrées ... Je cherche la cause et je posterai ici quand je sais plus ...

0
Ivo Blöchliger