应用程序文件夹是通过 OneDrive 和 SharePoint 中的路径公开/special的特殊文件夹之一。 它主要设计为在用户的 OneDrive 中存储应用程序设置的位置,可应用于许多方案。 本文讨论应用文件夹、安全性以及如何在应用程序中使用它。
在专用作用域 支持下, Files.ReadWrite.AppFolder可以生成一致的最低特权应用程序,以跨设备体验共享数据。
访问应用文件夹
若要开始,需要一个已同意Files.ReadWrite.AppFolder范围Microsoft Entra ID应用程序。 应用程序权限和委托权限都受方案支持。
若要访问应用文件夹,请对进行Microsoft Graph 调用:
GET /{drive_Resource}/special/approot
重要
该名称 approot 区分大小写。
首次请求文件夹时,如果该文件夹不存在,则会创建该文件夹。 所有特殊文件夹都是在目标驱动器中创建的 Apps/{Entra ID application name},路径为 ,这意味着,如果应用程序名为“My Amazing App”,则驱动器内生成的路径为 Apps/My Amazing App。
响应是表示文件夹的 driveItem ,其中同时存在 文件夹 和 specialFolder 方面。 此驱动器项允许对应用程序的文件夹执行所有预期的作,包括上传文件、列出子级和共享包含的文件。
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('c9d6a7bd-c1e0-4cb6-bf3c-48bf6dc571ad')/drive/special/$entity",
"id": "692b2511-cca3-487d-b972-e6487bba0aff",
"lastModifiedDateTime": "2023-12-12T19:33:45Z",
"webUrl": "https://contoso-my.sharepoint.com/personal/someone_contoso_com/Documents/Apps/MyApp",
"size": 0,
"folder": {
"childCount": 0
},
"specialFolder": {
"name": "approot"
}
}
应用文件夹的优点
应用文件夹具有多种优势(具体取决于方案),主要优势是通过常量路径轻松访问文件夹的能力。 例如,若要访问用户的应用文件夹,始终可以使用 https://{graph}/me/special/approot,而无需跟踪单个用户的 ID 或路径。
应用文件夹不仅适用于 OneDrive;还可以将其与任何驱动器资源(包括 SharePoint 库)一起使用。 在这种情况下,需要使用驱动器 ID 获取驱动器的完整路径。
GET /drives/{drive_Id}/special/approot
站点还有一个默认驱动器。 使用以下请求 URL 访问它:
GET /sites/{site_Id}/drive/special/approot
注意
网站的默认驱动器可能不再存在,但这种情况很少见。 应用程序应考虑到这种可能性。
上一个请求在库的根目录中创建一个 Apps 文件夹,其中包含一个以应用程序命名的文件夹。
应用文件夹的另一个关键优势是隔离。 应用程序的文件存储在唯一的位置,以确保它们不会使用户的 OneDrive 变得混乱或被意外删除。 创建应用文件夹可让你有一个安全的空间,将特定于应用程序的文件保留在根 OneDrive 文件夹结构之外,使用户保持整洁。
应用文件夹适用于 OneDrive 工作或学校和 OneDrive 家庭版,确保你可以为所有用户提供一致的体验。
应用文件夹还使用最小权限来保存文件,下一部分将对此进行详细介绍。
安全性
创建安全应用程序对于建立信任至关重要。 通常,SharePoint 或 OneDrive 应用程序具有广泛的权限,可以使用 SharePoint 应用程序权限来限制这些权限,但此限制需要配置和高权限才能分配。 使用应用文件夹时,一旦应用程序同意使用 Files.ReadWrite.AppFolder,就无需执行额外的工作。 该服务自动限制对单个文件夹的访问,确保应用程序仅有权访问该文件夹中的文件。
注意
用户始终完全控制自己的 OneDrive,并且可以在应用文件夹中添加或删除文件。 如果用户将文件添加到文件夹,则应用程序将获取对该文件的访问权限。 控件位于 文件夹上,而不是应用程序上传的单个文件。
此外, Files.ReadWrite.AppFolder 在委派和仅限应用程序的身份验证分页中都受支持。 将其与委托模式一起使用非常适合访问用户文件,应用程序模式允许处理应用程序创建的文件夹中存储的信息。
Delegated
应用文件夹的最常见用途是委托身份验证在用户的 OneDrive 中存储信息。 此方法将用户的权限与应用程序的权限相交,确保用户只能写入自己的 OneDrive,并且只能写入应用文件夹。
仅限应用程序
使用应用程序权限,应用程序可以访问与自身关联的所有应用文件夹。 由于没有用户存在,因此路径 /me/drive/special/approot 不可用,必须使用 /drives/{drive id}/special/approot 来访问用户的 OneDrive。
其他注意事项
使用应用文件夹时,在决定正确的解决方案时,需要注意一些其他注意事项:
- 应用文件夹根据配额进行计数- 用户的 OneDrive 配额或 SharePoint 网站的使用配额。 在应用文件夹中放置大型文件可能会导致用户出现问题。 应用文件夹非常适合存储配置文件、临时存储或草稿。
- 请考虑预期的用户体验。 如果用户需要经常访问这些文件或在应用程序外部与他们交互,
Files.ReadWrite或者Files.ReadWrite.All可能是更好的选项,则允许你提供另存为体验,并让用户能够选择存储其文件的位置。 - 请记住,用户可以删除、编辑或替换其自己的 OneDrive 中的任何文件。 尽管这不太可能,但应用程序应考虑到这种可能性,不要依赖这些文件或期望它们始终存在。 有权访问完整 OneDrive 的应用程序还可以访问应用文件夹文件;请注意要存储的信息类型。
应用场景
许多方案都可以立即受益于使用应用文件夹的功能和对读/写文件的最低特权访问权限。 以下方案提供了一些示例来帮助你开始使用应用文件夹。
用户配置
用户从 Teams、SharePoint、移动设备和桌面访问应用程序,需要存储首选项和设置。 使用应用文件夹,可以轻松存储配置文件,并从任何设备访问它们。 轻松使用户的设置可移植,并且始终可通过已知路径进行访问。 如果支持不同的设备功能,还可以存储多个设置文件。
电子签名
文档的电子签名可能需要一段时间,因此很难持久保存用户访问令牌,以便将已签名的文档写回其 OneDrive。 使用仅限应用的应用文件夹,始终可以使用最小权限将已签名的文档写回,以确保用户的文件保持安全。
专用草稿
也许应用程序发送消息或用于做笔记或编写文档;但是,在将草稿发送到最终目标之前,用户需要一种方法来存储草稿。 可以使用应用文件夹在每个用户的基础上轻松存储片段和草稿,提供跨设备访问,以确保一致性和用户满意度。
摘要
应用文件夹是一种灵活可靠的文件存储方式,不会影响最小权限。 应用文件夹提供一致的路径和跨设备辅助功能,是以安全高效的方式存储应用程序文件的绝佳选择。 它同时支持仅应用程序身份验证模式和委托身份验证模式,在设计中提供了灵活性,由 Microsoft Graph 和 Microsoft 365 的完整功能提供支持。