You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP社区工具包OneDrive服务AADSTS65005错误(工作/学校账户异常)

解决UWP社区工具包OneDrive服务访问工作/学校账户的AADSTS65005错误

这个错误AADSTS65005的核心原因很明确:你的应用注册没有包含Office 365 Discovery Service的资源权限,而UWP社区工具包(UWP CT)的OneDrive服务在访问工作/学校账户时,依赖这个服务来定位OneDrive的资源端点——个人Microsoft账户的验证流程默认豁免了这个要求,但Azure AD租户下的工作/学校账户会严格校验应用声明的所有资源访问权限。

下面是一步步的修复方案:

1. 添加Office 365 Discovery Service权限

  • 打开Azure AD应用注册门户,找到你的融合应用
  • 切换到「API权限」页面,点击「添加权限」
  • 在「Microsoft APIs」分类下找到Office 365 Discovery Service(如果搜不到,直接在搜索框输入这个名称)
  • 根据你的需求添加权限:如果只需要读就选Read user files,需要读写就选Read and write user files
  • 关键步骤:点击「授予管理员同意」(工作/学校账户的权限必须由租户管理员授权才能生效)

2. 校验重定向URI配置

UWP应用作为原生客户端,重定向URI必须符合特定格式:
ms-appx-web://microsoft.aad.brokerplugin/{你的应用Client ID}

  • 转到应用的「认证」页面,确认这个URI已经添加,并且类型设置为「公共客户端/原生(移动和桌面)」
  • 不要遗漏这个配置,否则即使权限正确,也可能出现身份验证跳转失败的问题

3. 确认融合应用的核心配置

  • 检查「支持的账户类型」是否设置为「任何组织目录中的账户和个人Microsoft账户」(如果需要同时支持两种账户类型)
  • 再次确认「Live SDK支持」已经勾选(在应用「概述」页面下方的「管理」区域),这个选项确保应用能兼容旧版Live身份验证流程,对UWP CT的OneDrive服务很重要

4. UWP社区工具包的额外检查

  • 确保你使用的是最新版本的UWP社区工具包,旧版本可能在Azure AD账户的权限处理上存在兼容性问题
  • 初始化OneDriveService时,确认你指定的Scopes包含必要的身份验证范围,比如:
    var scopes = new[] { "Files.ReadWrite.All", "offline_access", "openid" };
    await OneDriveService.Instance.AuthenticateAsync(scopes);
    
    offline_access确保应用能获取刷新令牌,openid用于身份标识,这些都是工作/学校账户验证必需的

之所以个人Microsoft账户能正常工作,是因为微软针对个人账户的验证流程做了简化,不需要显式声明Discovery Service的权限;但工作/学校账户属于Azure AD租户管理,必须严格遵循资源访问的声明规则,所以才会触发这个错误。

内容的提问来源于stack exchange,提问作者Mike N.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:08:47