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

如何在Linux下绕过O365双因素认证用Python连接SharePoint传文件

O365开启MFA场景下Python连接SharePoint上传文件的可行方案

不存在非合规的“绕过双因素认证”漏洞利用方案,以下均为微软官方支持的非交互认证路径,认证流程不会触发交互式MFA校验,可直接在Linux环境部署运行

  • 方案1:Azure AD服务主体认证(生产环境首选,稳定性最高)

    1. 联系组织的SharePoint/ Azure AD管理员完成前置配置:在Azure AD中注册服务应用,为应用授予目标SharePoint站点的文件读写权限,可选择配置客户端密钥(简单场景用)或客户端证书(生产环境推荐,Linux下证书存储更安全)
    2. Python端使用Office365-REST-Python-Client库实现连接,示例代码如下:
    from office365.sharepoint.client_context import ClientContext
    from office365.runtime.auth.client_credential import ClientCredential
    
    # 替换为你的实际配置
    site_url = "https://<组织域名>.sharepoint.com/sites/<目标站点名称>"
    client_id = "服务应用的客户端ID"
    client_secret = "服务应用配置的客户端密钥"
    # 如果用证书认证替换为证书路径和密码即可
    
    ctx = ClientContext(site_url).with_credentials(ClientCredential(client_id, client_secret))
    
    # Linux本地文件上传示例
    local_file = "/opt/data/需要上传的文件.pdf"
    target_sp_folder = ctx.web.get_folder_by_server_relative_url("/sites/<目标站点名称>/Shared Documents/上传目标文件夹")
    with open(local_file, "rb") as f:
        file_content = f.read()
    target_sp_folder.upload_file("需要上传的文件.pdf", file_content).execute_query()
    

    该方案使用应用身份认证,不绑定个人账号,权限可单独配置,适合长期运行的自动化任务。

  • 方案2:个人账号应用密码认证(仅适合临时测试场景,需管理员开启对应功能)

    1. 确认组织租户开启了应用密码功能(仅混合身份认证租户支持,纯云租户默认关闭),登录O365个人安全设置页生成16位应用专用密码
    2. 连接时直接使用个人O365账号+应用密码作为凭据,不会触发MFA校验,示例代码如下:
    from office365.sharepoint.client_context import ClientContext
    from office365.runtime.auth.user_credential import UserCredential
    
    site_url = "https://<组织域名>.sharepoint.com/sites/<目标站点名称>"
    account = "你的O365账号邮箱"
    app_pwd = "生成的16位应用密码"
    
    ctx = ClientContext(site_url).with_credentials(UserCredential(account, app_pwd))
    # 后续上传逻辑和方案1一致
    

    该方案凭据绑定个人账号,权限和你个人账号的SharePoint权限完全一致,账号密码变更、权限调整都会导致连接失效,不建议生产环境使用。

注意:所有配置操作必须提前获得组织IT/安全团队的正式授权,不要尝试使用模拟浏览器交互、抓包篡改认证流程等方式强行绕过MFA,这类方式稳定性极差,还会触发租户安全风控,甚至违反数据合规要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:51:28