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

使用office365-rest-python-client访问SharePoint遇AADSTS65001错误求助

问题原因及排查方向

1. 误用委托权限而非应用权限

后端无交互脚本必须使用应用权限(Application Permissions),如果给应用添加的是委托权限(Delegated Permissions),即便完成管理员同意,也会因需要用户交互式登录触发AADSTS65001错误。委托权限是代表用户操作,必须有用户上下文;应用权限是应用自身拥有权限,无需用户参与。

排查:

  • 进入Entra管理中心的应用注册→权限页面,确认添加的权限类型为「应用权限」而非「委托权限」。
  • 针对SharePoint操作,需添加对应应用权限(如创建页面需Sites.FullControl.All或Sites.Manage.All)。

2. 管理员同意未正确生效

即使执行了管理员同意操作,仍可能存在以下问题导致权限未生效:

  • 同意范围错误:确保是对所有租户用户的全局同意(应用权限的管理员同意需覆盖整个租户)。
  • 权限更新后未重新同意:若先添加权限再补做同意操作,需确认同意动作覆盖了新添加的应用权限。

3. 代码认证方式错误

office365-rest-python-client中,应用权限模式(客户端凭证)的初始化逻辑与委托权限不同,误用用户交互类认证方式会触发权限错误:

  • 错误示例(委托权限模式):
    from office365.sharepoint.client_context import ClientContext
    from office365.runtime.auth.user_credential import UserCredential
    
    ctx = ClientContext(site_url).with_credentials(UserCredential(username, password))
    
  • 正确示例(应用权限模式):
    from office365.sharepoint.client_context import ClientContext
    from office365.runtime.auth.client_credential import ClientCredential
    
    ctx = ClientContext(site_url).with_credentials(ClientCredential(client_id, client_secret))
    

4. SharePoint站点未明确授予应用权限

即便应用拥有租户级SharePoint应用权限,部分场景下仍需在目标站点中单独授权:

  • 可通过PowerShell执行授权(替换占位符):
    Connect-PnPOnline -Url https://your-tenant.sharepoint.com/sites/security -ClientId <client-id> -ClientSecret <client-secret>
    Set-PnPAppPermission -AppId <client-id> -Scope Site -Right FullControl
    

5. 权限资源目标配置错误

确认应用权限的资源指向正确:

  • SharePoint应用权限的资源需指向租户SharePoint根地址(如https://your-tenant.sharepoint.com),而非其他无关资源。

内容的提问来源于stack exchange,提问作者MasterOfTheHouse

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:50:03