【问题标题】:MS Graph API Permissions for OneDrive UploadOneDrive 上传的 MS Graph API 权限
【发布时间】:2023-03-11 00:15:01
【问题描述】:
我正在尝试通过 PUT 自动将文件上传到 OneDrive
/drives/{drive-id}/items/{item-id}:/myfile.txt:/content。我已经在 Azure Active Directory 中注册了一个应用程序,但无法弄清楚我需要授予什么权限/API 才能上传文件。此外,我只想授予应用程序上传到特定文件夹的权限。
我应该注意,我不希望代表用户上传文件的委托权限 - 这是一项自动化工作,不会与真实用户相关联。
【问题讨论】:
标签:
azure
sharepoint
azure-active-directory
onedrive
【解决方案1】:
您可以将Microsoft Graph添加为API,并在应用程序权限中添加Files.ReadWrite.All、Sites.ReadWrite.All。您可以选择权限
从最低到最高的两个特权。
注意:Files.ReadWrite.All:其在应用程序权限中的显示字符串为:Allows the app to read, create, update, and delete all files in all site collections without a signed in user.
此权限需要管理员同意,所以您需要使用管理员帐号,添加此权限后点击授予权限按钮。
您可以在this documentation 中查看上传或替换 DriveItem 内容的权限。
【解决方案2】:
管理员不能授予特定用户的权限,但是完整的目录,通过这样做,应用程序将有权访问目录中的所有驱动器,这可能代表安全漏洞。
解决此安全问题的解决方法是创建另一个目录,用户将共享其驱动器,然后在已注册的应用程序中授予管理员同意,并具有 files.readwrite.all 权限。