Mounten Sie SharePoint Online (Office 365) unter Linux


9

Wir haben begonnen, SharePoint Online zu verwenden, das in unserem Office 365-Abonnement enthalten ist. Unsere Windows-Benutzer können Software installieren, die die freigegebenen Dokumente von SharePoint automatisch mit ihren Windows-Computern synchronisiert. Wie kann ich meinen Linux-Benutzern (Ubuntu) das Gleiche ermöglichen?

Ich dachte, WebDav würde funktionieren, aber meine Versuche schlagen immer fehl, meistens mit "HTTP Error: FORBIDDEN". Insbesondere versuche ich, einen Server über das Durchsuchen von Nautilus-Dateien hinzuzufügen, und scheitere:

Server: mycompany.sharepoint.com
Port: 443
Tppe: Secure WebDav (HTTPS)
Folder: /
User name: first.last@mycompany.com
Password: ********

HTTP-Fehler: VERBOTEN

Ich habe versucht, den Benutzernamen in zu ändern:

 mycompany\first.last

Ich habe versucht, den Ordner zu ändern in:

 /Shared%20Documents

und verschiedene andere Pfade, die auf Websuchen basieren, ohne Erfolg.

Sollte das funktionieren? Gibt es eine bessere Lösung?


1
Haben Sie jemals eine Lösung gefunden? Ich habe ein ähnliches Problem.
Nate Eldredge

Leider nein (obwohl ich kürzlich nicht überprüft habe, ob MS etwas geändert hat). Wir haben auch BOX.COM, das WebDav unterstützt und größtenteils darauf umgestellt hat ... wodurch unser gesamter SharePoint-Speicher verschwendet wird. :(
nahe

Antworten:


7

Für die Verbindung mit OfficeDA5 Sharepoint (oder 'OneDrive for Business') über WebDAV ist ein vorhandenes Authentifizierungscookie erforderlich. Sie können sich in Ihrem WebDAV-Client nicht mit einem Benutzernamen und einem Kennwort anmelden. Unter Windows können Sie dies erreichen, indem Sie die Sharepoint-Site zur Liste der Intranetsites von Internet Explorer hinzufügen, sich dann mit Internet Explorer anmelden und "Angemeldet bleiben" aktivieren. Anschließend können Sie das Netzwerklaufwerk in Windows Explorer zuordnen.

Die einzige Möglichkeit, dies unter Linux zu tun, ist Konqueror, da es sowohl einen Webbrowser als auch einen WebDAV-fähigen Dateibrowser enthält. Sie können sich im Konqueror-Browser bei der Sharepoint-Site anmelden. Anschließend kann der Konqueror-Dateibrowser dieses Cookie zur Authentifizierung bei WebDAV verwenden.


1
Funktioniert bei mir nicht, ich erhalte die Fehlermeldung 111 (?), Wenn ich versuche, eine Verbindung herzustellen, webdavs://xxx.sharepoint.com/yyy/nachdem ich mich erfolgreich mit dem Webbrowser-Teil von Konqueror angemeldet habe.
Nidi

1

Dies funktioniert mit der neuesten Version von rclone, die derzeit 1,50 ist:

https://rclone.org/downloads/

OneDrive for Business ist im Grunde ein Sharepoint. Es funktioniert mit dem hier beschriebenen rclone-Setup:

https://rclone.org/onedrive/ (überprüfen Sie die Einschränkungen!)

Sie laufen also im Grunde genommen in einem Terminal:

rclone config

Geben Sie dann n ein, geben Sie einen Namen ein und wählen Sie anschließend Option 22 aus (dies kann sich ändern, aber die Option onedrive ist hier gemeint). Drücken Sie dann zweimal die Eingabetaste (Client-ID und Geheimnis werden nicht benötigt) und dann n für keine erweiterte Konfiguration. Geben Sie dann y für die automatische Konfiguration ein (Ihr Browser sollte sich öffnen und es ist praktisch, wenn Sie angemeldet sind. Er leitet um und zeigt eine Erfolgsmeldung im Browser an.

Gehen Sie zurück zum Terminal und wählen Sie 1 für onedrive. Dies sollte Ihnen ein Laufwerk anzeigen, wählen Sie 0. Nächste Nachricht, wählen Sie y zur Bestätigung, das nächste y auch.

Jetzt haben Sie das Konfigurations-Setup, sodass Sie die Freigabe wie folgt bereitstellen können:

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

Dabei ist onedrive der Name der von Ihnen erstellten Freigabe und ~ / OneDrive der Ordner in Ihrem Home-Verzeichnis, in dem Sie sie bereitstellen.

Wenn bei der Montage etwas schief geht, können Sie Folgendes tun:

fusermount -uz ~/OneDrive/

Möglicherweise haben Sie bemerkt, dass freigegebene Ordner nicht vorhanden sind. Es wird derzeit in rclone für die Business-Version nicht unterstützt. Um dies zu umgehen, können Sie die WebDAV-Konfiguration verwenden, um sie bereitzustellen. Mehr dazu finden Sie hier:

https://rclone.org/webdav/

Wählen Sie als Anbieter den Sharepoint, damit Ihre Konfiguration ungefähr so ​​aussieht:

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

Das Problem hierbei ist, dass Sie dies für jede Freigabe hinzufügen müssen. Leider hielt Microsoft es nicht für notwendig, Linux zu unterstützen. Mein Rat ist und war, sich von ihren Produkten fernzuhalten und diejenigen zu verwenden, die sofort funktionieren.


0

Ich bestätige, dass Konqueror funktioniert. Soweit mir jedoch mitgeteilt wurde, stellt spfilezilla mit einem anonymen Token eine Verbindung zu onedrive for business und sharepoint her. Siehe hier: https://github.com/suoko/spfilezilla Wenn das stimmt, können wir davfs das anonyme Token erstellen lassen


0

Es ist zwar möglich, aber ich habe noch keine reibungslose Lösung. Ich mounte SharePoint-Laufwerke mit davfs2. Damit dies funktioniert, müssen Sie sich mit einem Browser authentifizieren (indem Sie einfach auf Ihre SharePoint-Website zugreifen). Sie müssen dann die Cookies mit den Namen "rtFa" und "FedAuth" extrahieren. Sie müssen am Ende der Datei /etc/davfs2/davfs2.conf wie folgt eingefügt werden:

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

Fügen Sie außerdem die folgende Zeile hinzu:

use_locks 0

Zum Mounten der Freigabe verwende ich die URL der SharePoint-Webinterface-URL der Freigabe ohne die Datei default.aspx am Ende. Ich habe sie auch in / etc / fstab eingegeben, damit ich sie einfach mounten kann:

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

Um die Cookies in die Datei davfs2.conf zu übertragen, verwende ich Chrome mit der Erweiterung cookies.txt, damit ich sie mit zwei Klicks in einer Datei cookies.txt speichern kann. Dann habe ich ein kleines Ruby-Skript geschrieben, das diese Datei analysiert und die Zeile zur Datei davfs2.conf hinzufügt. Ich habe derzeit einen sympolischen Link von /etc/davfs2/davfs2.conf zu einer Datei in meinem Home-Verzeichnis, aber die sauberere Methode wäre eine Konfigurationsdatei pro Benutzer (was davfs2 afaik erlaubt). Es ist alles andere als ideal, aber es macht den Job für jetzt.

#!/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"))

Die Dateiübertragung ist schnell und benutzerfreundlich, der Verzeichniszugriff ist fast ungewöhnlich langsam, so etwas wie ls * / bla dauert 40 Sekunden in einem Verzeichnis mit 30 Einträgen ... Ich untersuche die Ursache und werde hier posten, wenn ich mehr weiß ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.