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

使用Python的shareplum库访问SharePoint遇AADSTS53003条件访问策略阻止认证错误求助

解决AADSTS53003条件访问策略拦截问题

这个错误我之前处理过,核心原因是你的账号触发了Office 365的条件访问策略,导致传统的用户名+密码认证方式被系统拦截了。下面给你几个实用的解决思路:

1. 改用应用程序权限认证(推荐用于自动化脚本)

条件访问策略大多针对用户级的交互认证,而应用程序权限是基于Azure AD注册应用的身份,能绕过用户层面的限制,非常适合自动化场景。具体步骤:

  • 联系你的Office 365管理员,在Azure Active Directory中注册一个新应用,给它授予SharePoint相关的应用权限(比如Sites.ReadWrite.All),并确保权限被管理员同意。
  • 使用应用ID和密钥(或证书)进行认证,示例代码:
from shareplum import Site
from shareplum import Office365
from shareplum.site import Version

# 应用权限认证
authcookie = Office365(
    'https://example.sharepoint.com',
    client_id='你的应用客户端ID',
    client_secret='你的应用客户端密钥'
).GetCookies()

site = Site(
    'https://example.sharepoint.com/sites/example-site',
    version=Version.v365,
    authcookie=authcookie
)
sp_list = site.List('list name')

2. 调整条件访问策略(需管理员配合)

如果必须使用用户账号认证,需要和管理员沟通:

  • 让管理员检查对应的条件访问规则,确认是否是因为非托管设备、未满足MFA要求、IP不在信任列表等原因导致拦截。
  • 申请将脚本运行的服务器IP加入信任位置,或者给你的账号设置策略例外(前提是符合企业安全规范)。

3. 使用支持MFA的交互式认证(适合本地运行脚本)

如果你的账号开启了MFA,传统密码认证肯定失效,可以用shareplum提供的交互式认证方式,会弹出浏览器让你完成MFA验证:

from shareplum import Site
from shareplum import Office365

# 交互式MFA认证
authcookie = Office365('https://example.sharepoint.com').GetCookiesInteractive()
site = Site('https://example.sharepoint.com/sites/example-site', authcookie=authcookie)
sp_list = site.List('list name')

这种方式适合本地调试脚本,但如果是服务器上的无人值守自动化任务,还是优先用应用权限认证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 09:03:14