OneDrive 文件的守护程序应用程序身份验证

Daemon application authentication for OneDrive files

我在大型组织中有一个 OneDrive for Business 用户帐户。我想要一个守护进程服务 运行 (Python),它可以自动将文件上传到该用户的 OneDrive。

此服务将 运行 在无头 VM 中,因此基于浏览器的身份验证(特别是如果需要多次执行)非常困难。

我有哪些选项可以验证此应用以允许它写入用户的 OneDrive?我已经注册了一个应用程序并为其创建了一个客户端密码。我正在试验 here 中描述的授权流程,但该 SDK 已弃用且不再受支持,因此如果可能我更愿意使用 Graph。

在这种情况下,我使用 Python 进行身份验证的选项是什么?是否有可用的示例代码/示例?

MS Graph 支持委派权限和应用程序权限 API:https://docs.microsoft.com/en-us/graph/api/drive-list?view=graph-rest-1.0&tabs=http。您的用例可能不接受应用程序权限,因为它们将允许访问所有用户的 OneDrive?

申请权限绝对是最简单的选择。 但是您也可以使用委派权限来实现这种情况 您需要用户通过一次交互身份验证来初始化该过程。 当他们这样做时,将刷新令牌存储在服务器应用程序可访问的秘密存储中。 然后它可以在需要时使用刷新令牌来获取新的刷新令牌+访问令牌。 这种方法更复杂一些,但确实允许您只允许访问该用户的应用程序 OneDrive。

另外,请记住刷新令牌可能会过期。 如果发生这种情况,用户将需要重新进行身份验证。 如果这个过程很关键,尽管有缺点,但应用程序权限可能是一个非常好的主意。