内容提要
2027年4月1日起,SharePoint Online和OneDrive将移除URL内嵌的预认证令牌(tempauth)。微软Graph文件API返回的URL将不再自带授权,应用必须改用Entra ID访问令牌并在请求头中提供。管理员可通过新租户设置让应用继续使用Graph URL。开发者需排查代码、获取SharePoint令牌并提前测试迁移。
延伸解读
迁移核心:从URL令牌到请求头令牌
此次变更的核心是移除URL中内嵌的预认证令牌(tempauth),要求所有对SharePoint Online和OneDrive资源的访问都必须通过Authorization请求头携带Microsoft Entra ID令牌。这意味着应用不能再依赖URL本身携带授权信息,而必须在每次请求时动态获取并附加令牌。对于开发者而言,这不仅是技术实现的调整,更是安全模型的升级:令牌不再暴露于URL中,降低了因日志、缓存或转发导致令牌泄露的风险。
影响范围:哪些API和场景会受影响
文章明确指出,受影响的主要是通过Microsoft Graph文件API进行的操作,包括文件下载、上传会话创建、长时操作(复制和监控)、预览、缩略图获取以及格式转换等。这些API目前可能返回302重定向或响应体中的预认证URL,变更后将不再返回重定向或URL中的令牌。开发者需要检查代码中是否直接使用了这些URL而未添加Authorization头,尤其是那些依赖allowAutoRedirect=false或检查Location头的逻辑。
应对策略:两种迁移路径与管理员选项
微软提供了两种迁移路径:路径A是直接使用Entra ID令牌调用SharePoint Online,需要为SharePoint主机获取单独的令牌;路径B是通过新的租户设置让应用继续接收Microsoft Graph URL,从而复用现有的Graph令牌。管理员可以通过PowerShell命令(如Set-SPOTenantPreAuthSettings)为特定应用启用Graph URL选项,但需注意该设置仅适用于第三方应用,且存在拒绝优先于允许的优先级规则。建议先在测试租户中验证,再逐步推广。
时间线与行动建议
变更将于2027年4月1日正式生效,但租户设置现已可用,允许提前验证。开发者应立即审计代码,查找所有可能依赖预认证URL的调用点,并添加SharePoint Online令牌获取逻辑。管理员应使用Get-SPOTenantPreAuthSettings检查当前配置,并针对特定应用ID启用新设置进行测试。务必在2027年4月1日前完成迁移,避免服务中断。
Q&A
预认证URL(tempauth)什么时候停用?
2027年4月1日起,SharePoint Online和OneDrive将开始移除预认证URL,即URL中内嵌的tempauth令牌。
哪些Microsoft Graph API会受到影响?
受影响的API包括:下载文件、createUploadSession、长时操作(复制和监控)、预览、获取缩略图、转换格式等。
迁移后应用如何获取授权?
应用必须改用Microsoft Entra ID访问令牌,并在请求的Authorization头中提供。对于SharePoint Online URL,需获取针对该主机的令牌;对于Graph URL,可使用已有的Graph令牌。
管理员如何让应用继续使用Graph URL?
管理员可通过新的租户设置,使用Set-SPOTenantPreAuthSettings命令的-UseGraphUrlIsEnabled和-UseGraphUrlAppsList参数,将特定应用ID加入允许列表,使其接收Graph URL。
开发者需要检查代码中的哪些模式?
检查读取tempauth=、access_token=、uploadUrl、getUrl、@microsoft.graph.downloadUrl或monitor URL并在无Authorization头的情况下获取的代码;检查配置了allowAutoRedirect=false或检查Location头的HTTP客户端;检查将返回的URL持久化(排队、存储、转发等)的逻辑。
迁移的具体步骤是什么?
1. 清点所有调用受影响API的位置;2. 移除对302重定向的依赖;3. 添加SharePoint Online令牌获取(受众为https://{tenant}.sharepoint.com)并添加相应权限;4. 不再将返回的URL视为持久访问凭证;5. 优先使用driveItem/contentStream;6. 在测试租户中启用设置进行测试;7. 提前向客户发布最低版本指南。