前情提要
微软 SharePoint 更新认证方式导致以 WebDAV 方式的挂载出现 403 授权错误
简单概括:
无全局管理员的 onedrive 账号,无法以 API 的形式通过 rclone 来挂载。
但是在很长的一段时间内,可以通过 WebDAV 的形式来挂载。
然而在去年秋季,微软更新了认证方式,导致了这个方案彻底失效。
补丁挂载
这个补丁挂载的实现方法,是通过网页版获取到 access_token,是目前唯一有效的方案。
不过也有缺点,API 的话能够获取到一个用于刷新 access_token 的 refresh_token,但是网页版不存在这个 refresh_token,所以无法自动更新 access_token,目前在失效后需要再次手动获取。有效期似乎是6小时左右。
PR 请求
去年9月提了一次,#8822,但是没有合并
这个月又提了一次,#9444,这次终于合并了
但是现在还没有发布这个合并了 PR 的版本即 v1.74.2,暂时需要自己编译出来。
我测试了一下,发现这个挂载还是有问题(挺尴尬的)。
配置示例
由于这个完全是手动获取到的 access_token,所以没有自动配置的方案,目前是打开 rclone 的配置文件,手动填写配置,示例配置如下
[onedrive1]
type = onedrive
token = {"access_token":"v1.eyJz...z2SkU","token_type":"Bearer","refresh_token":"","expiry":"2045-12-31T23:59:59Z"}
drive_id = b!Ef...
noadmin = true
tenant_url = https://tenant1-my.sharepoint.com/_api
drive_type = business
需要修改的就只有3个参数:
-
access_token
-
drive_id
-
tenant_url
获取这3个参数的方法,打开 onedrive 主页,比如说 https://tenant1-my.sharepoint.com
然后 F12 打开开发者工具,切换到控制台选项页,输入 _spPageContextInfo.driveInfo 即可获取到这3个参数,也可以优化一下,先输入
_spPageContextInfo.driveInfo[".driveUrl"]
获取到后2个参数,再输入
_spPageContextInfo.driveInfo[".driveAccessToken"]
获取到第1个参数
然后就可以通过 rclone 挂载无全局管理员的 od 账号了(但是其实并不能,不清楚是哪里出了问题)。
nickfox-taterli / rclone 这里有编译好的版本可以测试,按照这个方法是可以成功挂载的,所以应该是合并 PR 的部分代码出了问题,等完善修复吧(我看了半天还是没看出来哪里出了问题)。
当然也可能是我编译出来的 rclone 有问题,总之测试失败。
其他
taterli 的博客所写的获取到的配置,可见 access_token 并不是 v1 开头的,所以可能是 rclone 在解析这个 jwt 的时候出了问题。
看下有没更多后续修复了。
我也用rclone挂载onedrive,之前都是能申请个人api,现在我申请不到饿了,只能走公共的
终于合并了
openlist支持这个了吗
onemanager还可以用
新消息,挂载没问题,还没进入稳定版,可以在测试版尝鲜
这个功能也适用于无法获得API授权许可的有管理员的全局的od账号
弊端还是,有效期只有6小时,无法自动刷新,只能网页版重新获取
可能搭配 python + playwright 定时任务自动写入能够实现无感刷新配置
The access token has expired. It's valid from '6/10/2026 3:14:06 AM' and to '6/10/2026 9:14:06 AM'.token 有效期只有6个小时。太短了。
按楼主的思路写了个用 playwright 刷新 token 的脚本。
https://gist.github.com/4ft35t/f660dc081bbe5ef72844f4bd1cece331
我更推荐楼主另外一篇帖子里提到的 FedAuth cookie 方法,有效期几天。
https://www.nodeseek.com/post-453115-1
两种方法各有优劣:
cookie 更新方案我已回复在对应帖子里。
@Heisen #7 https://beta.rclone.org 这里下载最新测试版,不知道什么时候会进入稳定版
cookie 方案的问题是,这是 webdav,文件体积不得大于2g(微软限制,非rclone或webdav限制)
@moonay #8
原来还有这个限制,涨知识了。