azure - OneDrive API 和 Azure Active Directory 设置以作为个人帐户上传

标签 azure rest azure-active-directory microsoft-graph-api onedrive

我会尽力做到简短而全面。

目标:能够将填写 HTML 表单后生成的 PDF 文件上传到我的个人 OneDrive。

我已经研究这个问题几天了,但我一生都无法找出在 Azure 门户中设置应用程序和权限以使其发挥作用的正确方法。我最初使用仅个人 Microsoft 帐户选项,但很快意识到这意味着必须登录。然后我尝试了任何组织目录(任何 Azure AD 目录 - Multi-Tenancy )和个人帐户中的帐户Microsoft 帐户(例如 Skype、Xbox) 选项。因此,这似乎是朝着正确方向迈出的一步,因为最终用户不需要做任何事情。我可以使用应用程序权限,该权限无需登录用户即可工作。这基本上就是我想要的。

这导致另一个问题,租户没有 SPO 许可证。查了更多资料后,似乎要使用 OneDrive API,您需要订阅。正如我提到的,我使用的是个人帐户(免费)。

我还尝试了守护进程(因为我可以使用应用程序权限并在没有用户登录的情况下工作)。但基于 Microsoft Graph 获取文件权限,个人 Microsoft 帐户仅支持委派权限。

我正在尝试通过 PHP 并使用到处推荐的库来实现这一目标。老实说,我认为我发现这比实际情况要复杂得多,但我真的不知道我哪里出了问题。

总而言之,我无法回答这些问题:

  1. 可以使用个人免费帐户(无论是否有学生订阅)来访问 OneDrive?
  2. 如果是这样,哪种支持的帐户类型最适合此目的?
  3. 最后,我可以在任何地方进行此操作吗?

附注我已经尝试了很多我在这里提到的事情,所以如果有人认为我应该做的事情,请问我,我会更新你的。

最佳答案

你已经尝试了很多并且得到了很多正确的结论。

要使个人帐户访问个人 OneDrive,您必须使用委派权限。该场景不支持应用权限。

我知道您的要求不是交互式登录。不幸的是,不支持使用 ROPC flow对于个人帐户。

enter image description here

所以唯一的选择是使用 auth code flowimplicit grant flow 。它们都要求您以交互方式登录。

总之,不支持使用非交互式登录将文件上传到个人 OneDrive。

关于azure - OneDrive API 和 Azure Active Directory 设置以作为个人帐户上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66787193/

相关文章:

azure - 通过 JDBC 访问 Azure HDInsights 中的 Spark

windows - 无法在本地安装驱动器 - 通过 VPN 的 Azure 文件存储

azure - Azure ARM 模板部署是否会删除函数应用的主机 key ?

javascript - 保持我的网站更新 - 有更好的方法吗?

azure - 支持 Active Directory Graph Api,无需 Azure 应用程序

Azure Devops 管道未选择最新的 Visual Studio 版本

java - MultipartFormDataInput 请求的内容长度始终为 -1

rest - 如何使用 REST API 获取身份验证 token 或登录 Elastic Search?例如来自 postman

azure - 无法通过 Azure 通信服务并使用登录用户的凭据从本地计算机发送电子邮件

azure - 设置应用程序的已验证发布者 (Azure AD B2C),以便其在用户同意提示中显示为已验证