文章教程参考地址:hostloc
实际需求
在使用oneindex,onemanger,cloudreve等软件挂载onedrive作为个人云盘时,需要面临的一个问题是在Azure创建应用,在生成密钥时,至多只允许创建两年的客户端密钥(自定义同样是至多两年),如下图
不过我们也可以用不那么正规的方法去突破正规限制,创建例如100年的密钥,下面讲解教程
教程步骤
- 打开Graph Explorer,这是一个微软自家的在线测试API工具,用这个工具伪造Azure的post请求也可以省去一些cookies操作,更方便一些
- 在左侧登录自己的微软账号(建议是
组织管理员账号
,普通成员账户可能无相关api权限,同时注册Azure应用时的账号需与这边登录账号一致) - 返回Azure的应用具体应用页面,不记得地址了可以点这个链接,然后选择自己创建的应用并进入具体应用页面,复制
对象ID
的值
- 切换回Graph Explorer,将请求方式修改为
post
,请求地址修改为以下地址并替换{id}
值
https://graph.microsoft.com/v1.0/applications/{id}/addPassword
其中的{id}
需要自己替换为上面复制的应用对象id
点击
请求正文,并输入
如下内容,最后点击运行查询
,但这没完,请接着看第6点
{
"passwordCredential":{
"displayName":"100年授权",
"endDateTime":"2121-11-24T00:00:00Z"
}
}
- 图片流程如下
- 如果之前没有用这个工具进行过创建密钥,
运行查询
时会提示这样的错误
- 点击
修改权限(预览版)
并同意权限
- 在弹出的网页内同意应用的授权,如果使用的是普通成员账号,就无法同意授权,故文章一开始就是建议使用
管理员账号
进行Azure应用注册和Graph Explorer的登录
- 普通账号无法同意授权
- 确认自己已经完成授权后,再次点击
运行查询
- 当显示绿色ok时,代表我们的100年密钥生成成功,这时请将倒数第二行的
secretText
的值自己记录下来(正常申请密钥时,这个值也是仅会显示一次,我们通过Graph Explorer请求时,也仅会在响应内容这显示,如果未保存此密钥,只能重新生成密钥)
- 回到Azure的应用具体应用页面,不记得地址了可以点这个链接,然后选择自己创建的应用并进入具体应用页面,点击
客户端凭证
- 能看到我们已经生成了100年的密钥,密钥有效期至2121年,密钥值就是第10点要求保存下来的密钥值,其他应用内需要的同样是
这个值
,而不是后面的机密id
- 一般应用授权,将应用的客户端id,以及这里复制的密钥值填入应用,之后进行一次授权,之后便可以正常使用了