SharePoint jako síťový disk přes WebDAV aneb přístup z Linuxu

6. 9. 2022
Doba čtení: 4 minuty

Sdílet

 Autor: Depositphotos
S rostoucí popularitou Office 365 se může linuxový uživatel dostat do situace, kdy bude nucen pracovat se soubory uloženými na platformě SharePoint. Ukážeme si proto rozumný způsob, jak toho dosáhnout pomocí rozšíření WebDAV.

S rozšířením sady cloudových služeb Office 365 od společnosti Microsoft se v mnoha organizacích stalo standardem ukládání dat na platformu SharePoint. Primární cesta práce se SharePointem je přes webový prohlížeč. Webová aplikace SharePointu je však pomalá, nespolehlivá a nenabízí plnohodnotný přístup k souborům. Pro MS Windows proto vznikla desktopová aplikace OneDrive, která dokáže synchronizovat data mezi SharePoint serverem a uživatelským zařízením. Uživatel díky ní se soubory na SharePointu pracuje jako s lokálními soubory ve Windows Exploreru.

Horší je však situace pro uživatele Linuxu. Oficiálního klienta OneDrive se mi nepodařilo najít a neoficiální klient v mých testech moc dobře neobstál. Rozhodl jsem se proto zkusit připojit úložiště SharePointu jako disk WebDAV. SharePoint připojení přes WebDAV podporuje, problémem však je, že se klient WebDAV proti serveru SharePoint nedokáže ověřit pouze na základě uživatelského jména a hesla, a to zejména v organizacích, kde je pro přihlášení do Office 365 zapnuté dvoufázové ověřování. V takové situaci musí klient WebDAV odeslat kromě přihlašovacích údajů i speciální cookies.

Co takhle zkusit Konqueror?

Konqueror je multifunkční nástroj prostředí KDE, který funguje jako webový prohlížeč, klient WebDAV a souborový prohlížeč zároveň. Nejprve jsem se přihlásil do Office 365, čímž Konqueror získal potřebné cookies. Poté jsem se připojil k našemu webu SharePoint pomocí WebDAV ( webdavs://) a povedlo se.

Narazil jsem ale na problém s asociací typů souborů a nedostal plnohodnotný mount úložiště (operační systém ho nevidí ve výpisu souborových systémů), což mi pro praktické použití nepřišlo vhodné. Konqueror ale dokázal, že s použitím cookies je skutečně možné se připojit.

Připojení přes davfs2

Předchozí zkušenost mě přivedla na použití davfs2. Jedná se o CLI nástroj, který do OS přidává rozšíření programu mount o mount.davfs. Tímto způsobem je možné připojovat úložiště WebDAV podobně, jako by se jednalo o lokální disk. Návod jsem vytvářel na Debianu 11.

Nástroj davfs2 nainstalujeme pomocí stejnojmenného balíku, který se nachází v systémovém repozitáři. Při instalaci v dialogovém okně potvrdíme povolení běžným uživatelům připojovat WebDAV. Následující postup s tím totiž počítá. Uživatele, který bude WebDAV připojovat, přidáme do uživatelské skupiny davfs2 a restartujeme systém, aby se změna členství projevila.

Nyní se budeme věnovat ověřovacím cookies, které je však pro davfs2 nutné získat zvlášť. Prvním krokem je tedy instalace doplňku cookies.txt do webového prohlížeče (podporuje ho například Firefox). Tento doplněk umožňuje exportovat cookies do textového souboru.

Přihlásíme se do Office 365 a na dotaz „Zůstat přihlášen(a)?“ odpovíme Ano. Následně přejdeme na domovskou stránku webu SharePoint a uložíme si její URL bez /default.aspx. Dále vybereme ikonu doplňku cookies.txt a v nabídce zvolíme možnost Current Site. Cookies uložíme do textového souboru cookies.txt, jehož obsah je znázorněn níže.

cookies.txt
#HttpOnly_.sharepoint.com   TRUE    /   TRUE    0   rtFa
JycBg8feXr ... qMkZAAAAA=
...
#HttpOnly_unipardubice.sharepoint.com   FALSE   /   TRUE    0   FedAuth
77uPD94bWwg ... 09PC9TUD4=

Poté nastavíme davfs2. Soubor ~/.davfs2/davfs.conf upravíme tak, aby obsahoval následující řádky. Důležité jsou pro nás zejména ověřovací cookies rtFa a FedAuth. Jejich obsah (dlouhý řetězec za jménem) získáme z textového souboru uloženého v předchozím kroku.

~/.davfs2/davfs.conf
add_header Cookie rtFa=JycBg8feXr ... qMkZAAAAA=;FedAuth=77uPD94bWwg ... 09PC9TUD4=;

sharepoint_href_bug 1
use_locks 0

V adresáři ~/.davfs2 je možné vytvořit soubor secrets, který slouží k ukládání přihlašovacích údajů. Při mountu úložiště SharePoint je pak není nutné zadávat. Soubor však musí mít nastavená dostatečně restriktivní oprávnění (přesně 0600), jinak davfs2 neumožní úložiště připojit.

~/.davfs2/secrets
/mnt/webdav  jmeno  heslo

Pro pohodlné mountování úložiště SharePoint vytvoříme záznam v /etc/fstab, jehož základem je URL adresa (bez /default.aspx), kterou jsme si uložili dříve.

/etc/fstab
https://hostname.sharepoint.com/sites/path /mnt/webdav davfs _netdev,noauto,user 0 0

Úložiště připojíme příkazem mount /mnt/webdav. Adresu a mount point upravte dle vlastního prostředí.

Dokud drží cookies

Práce s úložištěm je nyní možná v libovolném souborovém prohlížeči i příkazovém řádku. Protože se davfs2 snaží obsah ukládat do cache, dá se se soubory na SharePointu pracovat rychleji, než ve webovém rozhraní. Výhodou může být i fakt, že tímto způsobem nedržíme kopie souborů na svém zařízení, jak je tomu u různých synchronizačních klientů.

bitcoin_skoleni

Funkčnost tohoto řešení je samozřejmě závislá na platnosti uložených cookies. Když například uživatel v Office 365 zvolí možnost „Odhlásit všude“, připojení přes davfs2 přestane fungovat. Jak dlouho jsou cookies považovány za validní, se mi v praxi nepodařilo vyzkoušet. Nicméně o době platnosti sezení v Microsoft 365 pojednává dokumentace MS. Pokud však ověřování se současnými cookies přestane fungovat, je možné je aktualizovat.

Zdroje

Manuálové stránky zmíněných programů a příspěvek na superuser.com.

Autor článku

Vystudoval Střední školu aplikované kybernetiky. Nyní pracuje na Univerzitě Pardubice jako správce linuxových serverů.