web-dev-qa-db-ja.com

Cookie認証を使用してLinuxにwebdavをマウントする

Linuxコンソール、特にヘッドレスUbuntu16.04サーバーから「OneDriveforBusiness」ストレージにアクセスしようとしています。 公式にサポートされている唯一の方法はWindows同期アプリケーションです。

同期クライアントですべてのファイルをローカルに複製するのではなく、OneDriveをリモートファイルシステムとして使用して、ローカルストレージを拡張したいと思います。

「OneDriveforbusiness」は、実際にはSharepointのバリ​​アントであり、webdavsを介してユーザー名とパスワードを受け入れません。webdavsクライアントの認証Cookieが既に存在している必要があります。

次の手順を適用することで、リモートストレージをwebdavsフォルダーとしてWindows 10に正常にマウントしました: https://www.imss.caltech.edu/content/mounting-OneDrive-business-mapped-drive しかしこれは、InternetExplorerでOneDriveWebサイトにログインして、Windowsエクスプローラーで使用されるCookieを作成した後にのみ機能します。

Linuxでは、KonquerorWebブラウザーでOneDriveWebサイトにログインし、そのCookieを使用してKonquerorファイルブラウザーでwebdavに接続することで、この動作を再現できますか?これは何もないよりはましですが、私は本当にコンソールアクセスが必要です。残念ながら、KioFuseは長い間見捨てられていたようです。

Konqueror以外に、Linuxコンソールからリモートファイルシステムにアクセスできるようにする方法はありますか? davfs2、gvfs、およびcadaverを確認しましたが、認証に既存のCookieを使用するためのドキュメントが見つかりません。

2
Clint

Davfs2をadd_header構成オプションとともに使用して、Cookie HTTPヘッダーを送信できます。次の2行を/etc/davfs2/davfs2.confに追加します。

[/mount/path]
add_header Cookie rtFa=<...>;FedAuth=<...>

ここで、/mount/pathはマウントパスであり、rtFaFedAuthは、OneDriveに接続したときにブラウザーによって送信されるHTTP要求で見つけることができるCookieです。

add_headerの2番目の引数にスペースがないことを確認してください。

その後、コマンドラインからドライブをマウントできます。

/sbin/mount.davfs https://<name>.sharepoint.com/<...> /mount/path
2
Peter