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

Azure AD企业应用SAML SSO与Graph API认证报错AADSTS76020咨询

解决AADSTS76020错误:无需拆分应用,调整配置即可

错误原因

报错AADSTS76020: Application configured to use only protocols with signed requests的核心原因是:你的Azure企业应用在SAML SSO设置中开启了仅允许已签名的请求,但调用Graph API时使用的客户端凭证流(Client Credentials Flow)默认未对请求签名,导致被Azure AD拦截。

解决方案(无需创建两个应用)

方案1:调整SAML签名要求(推荐)

这是最直接的解决方式,且不会影响安全性:

  • 登录Azure门户,进入该企业应用的单一登录 > SAML配置页面
  • 打开高级SAML设置,将要求已签名的请求选项设置为否
  • 保存配置后,重新用ClientSecret或证书方式发起Graph API认证即可

注意:该设置仅针对SAML登录请求的签名要求,不影响客户端凭证流的安全性——用证书做客户端凭证认证时,SDK会自动用私钥签名JWT断言来获取Token,本身已具备安全验证机制。

方案2:保持SAML签名要求,确保客户端凭证请求签名

如果业务必须开启“要求已签名的请求”,则需要确保客户端凭证请求符合签名要求:

  • 使用证书认证时:
    • 确认上传到企业应用证书和密码中的证书是包含私钥的PFX文件,且证书的密钥用法包含数字签名权限
    • 检查Graph SDK的证书配置:以.NET SDK为例,确保正确加载证书(比如从本地存储或密钥 vault 获取),SDK会自动用证书签名请求
  • 使用ClientSecret时:
    • 由于ClientSecret方式无法对请求签名,因此必须改用证书认证方式,否则无法通过Azure AD的签名校验

补充说明

你提到禁用证书验证后能正常获取Token,本质是因为禁用后Azure AD取消了请求签名的强制要求,客户端凭证流的请求得以通过。但不建议长期保持该状态,优先采用上述两种方案修复。

内容的提问来源于stack exchange,提问作者A. Gorin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 08:23:16