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

使用ClientCertificateCredential(SNI配置)认证Azure AD应用失败求助

排查思路与解决方向

1. 必须添加SendX5C配置(核心修复)

错误提示明确指出,当应用配置了SNI(受信任证书主题)时,需要在客户端断言的JWT头中包含x5c声明。你的当前代码未启用该选项,需修改代码:

using Azure.Identity;

var options = new ClientCertificateCredentialOptions
{
    SendX5C = true // 启用发送x5c声明,供AAD验证证书链
};

var credential = new ClientCertificateCredential(
    "TenantId", 
    "AppId", 
    @"path\to\cert.pfx", 
    options);

2. 验证本地PFX证书的完整性

确保你的PFX文件包含完整的证书链(用户证书+中间CA+根CA):

  • 双击PFX文件,查看「证书路径」标签,确认所有证书均显示「此证书的路径已验证」
  • 若缺少中间/根CA,需将这些证书导入本地证书存储,或重新生成包含完整链的PFX文件

3. 核对SNI配置的准确性

  • subjectName完全匹配:确保配置中的subjectName与证书的主题名称完全一致(包括大小写、属性顺序,例如CN=MyApp, OU=Dev, O=Contoso)
  • authorityId正确性:authorityId需设置为颁发该证书的CA对应的Azure AD租户ID,或CA的目录对象ID(可通过证书的「颁发者」字段,结合查询确认)

4. 确认证书状态

  • 检查证书是否在有效期内,未过期
  • 确认证书未被列入revokedCertificateIdentifiers列表,且未被CA吊销

5. 验证应用配置同步

查询应用的实际配置,确认trustedCertificateSubjects已正确保存:

GET /applications/{AppId}?$select=trustedCertificateSubjects

返回的配置需与你设置的完全一致,避免Azure门户配置未同步导致的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:43:23