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

如何使用PowerShell通过证书身份验证连接SharePoint Online

可以使用证书身份验证通过PowerShell连接SharePoint Online,该方案相比账号密码认证安全性更高,更适合自动化无人值守的运行场景。

前置准备步骤
  • 登录Azure Active Directory管理中心,注册一个新的应用程序,记录下该应用的客户端ID以及所属租户的租户ID
  • 为注册的应用分配SharePoint Online对应的操作权限,例如创建站点需要Sites.FullControl.All应用权限,分配完成后需要点击「授予管理员同意」完成权限激活
  • 生成用于身份验证的证书,将证书的公钥(.cer格式)上传到Azure AD应用的「证书和密码」板块,证书私钥(.pfx格式)保存在运行脚本的设备上,或安装到设备的证书存储中
  • 升级SharePoint Online Management Shell到最新版本,确保支持证书认证的相关参数
证书认证连接代码示例

替换原有账号密码认证的连接逻辑,以下为从本地证书存储读取证书的实现代码:

# 基础配置参数
$TenantId = "你的Azure AD租户ID"
$ClientId = "注册的Azure AD应用客户端ID"
$CertThumbprint = "上传到Azure AD的证书指纹"
$AdminCenterUrl = "https://testenvironment-admin.sharepoint.com"
$SiteUrl = "https://testenvironment.sharepoint.com/sites/SharepointDemo2"
$SiteTitle = "SharePoint Demo2"
$siteOwner = "test@testenvironment.onmicrosoft.com"

# 从当前用户的证书存储中获取指定证书
$Cert = Get-ChildItem -Path "Cert:\CurrentUser\My\$CertThumbprint"

# 采用证书身份验证连接SharePoint Online管理中心
Connect-SPOService -Url $AdminCenterUrl -ClientId $ClientId -TenantId $TenantId -Certificate $Cert

# 创建通信站点的逻辑保持不变
New-SPOSite -Url $SiteUrl -Owner $SiteOwner -Template "STS#3" -Title $SiteTitle -StorageQuota 1048

如果你的证书是pfx文件格式,没有安装到证书存储,可以用以下代码加载证书:

$PfxFilePath = "证书pfx文件的本地路径"
$PfxPassword = ConvertTo-SecureString "pfx文件的保护密码" -AsPlainText -Force
$Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($PfxFilePath, $PfxPassword)
注意事项
  • 为Azure AD应用分配权限时遵循最小权限原则,仅授予执行操作必需的权限,避免过度授权带来的安全风险
  • 证书私钥和pfx密码需要妥善保管,避免泄露,建议定期轮换证书,降低安全隐患

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 23:45:00