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

DisableCustomAppAuthentication为true时.NET控制台应用如何认证SharePoint Online

适用于定时运行.NET控制台应用的SharePoint Online CSOM最新认证方案

首先明确:你注册Azure AD应用时看到的弃用提示,仅针对旧版ACS(SharePoint访问控制服务)应用注册模式,你查询到的标准Azure AD应用注册的应用仅权限方案并未弃用,是目前微软官方推荐的服务端无交互场景的认证方案,完全兼容DisableCustomAppAuthentication=true的租户,无需修改租户级配置。

推荐方案:Azure AD 证书认证的应用仅权限模式

1. Azure AD应用配置步骤

  • 进入Azure Active Directory管理中心,注册新的应用,无需配置重定向URI
  • 进入注册完成的应用页,打开「API权限」界面,添加SharePoint的应用程序权限:
    • 如果需要全租户站点权限,选择对应权限如Sites.ReadWrite.All
    • 如果只需要访问特定站点,选择Sites.Selected权限(安全性更高)
    • 权限添加完成后,点击「授予管理员同意」完成权限激活
  • 进入「证书和密码」界面,上传你生成的证书(可在Windows Server上用New-SelfSignedCertificate命令生成自签名证书),记录证书的指纹值

2. 代码实现

首先安装两个NuGet依赖包:PnP.Framework(取代已停止维护的旧版OfficeDevPnP.Core)、Microsoft.SharePointOnline.CSOM
代码示例如下:

static void Main(string[] args)
{
    string siteUrl = "https://***.sharepoint.com/sites/CustomerServiceKB/";
    // 替换为你的Azure AD客户端ID
    string clientId = "xxxxxx-xxxx-xxxx-xxxx-xxxxxx";
    // 替换为你的Azure AD租户ID
    string tenantId = "xxxxxx-xxxx-xxxx-xxxx-xxxxxx";
    // 替换为你上传的证书指纹
    string certThumbprint = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    
    using (var authManager = new PnP.Framework.AuthenticationManager(clientId, certThumbprint, tenantId))
    {
        using (var context = authManager.GetContext(siteUrl))
        {
            // 原有CSOM逻辑无需修改,直接运行即可
            context.Load(context.Web, w => w.Title);
            context.ExecuteQuery();
            Console.WriteLine($"当前站点名称:{context.Web.Title}");
        }
    }
}

3. 服务器部署配置

  • 将证书导出为PFX格式,导入到Windows Server 2019本地计算机的「个人」证书存储中
  • 给任务计划程序的运行账号授予证书私钥读取权限:打开证书管理器,找到对应证书右键选择「所有任务」-「管理私钥」,添加任务运行账号并授予读取权限即可

备选方案:Azure AD 客户端密钥认证

如果暂时不想配置证书,也可以使用客户端密钥模式,安全性略低于证书模式,适合测试场景:

  • 在Azure AD应用的「证书和密码」页生成客户端密钥并记录
  • 代码修改为如下即可:
using (var authManager = new PnP.Framework.AuthenticationManager(clientId, clientSecret, tenantId))
{
    using (var context = authManager.GetContext(siteUrl))
    {
        // 原有CSOM逻辑
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:30:02