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

Entra(Azure) SAML注销请求(DEFLATE编码)签名验证失败排查求助

SAML 2.0 SSO应用:Azure AD注销请求签名验证失败

问题详情

我们开发的SAML 2.0 SSO应用,在处理https://login.microsoftonline.com/发来的注销请求时,始终出现签名验证失败。该请求没有嵌入式签名,是对DEFLATE编码后的RL参数进行签名的。

已知有效信息

  • 用于验证的Azure证书/公钥:在登录响应的签名验证中完全有效,排除公钥本身无效的可能
  • 请求特征:无嵌入式签名,签名对象为DEFLATE编码的RL参数

请求样本

[请在此处粘贴完整的注销请求样本]

执行的验证步骤(遵循SAML 2.0规范,Linux控制台OpenSSL)

  1. 提取RL参数的Base64编码值,先Base64解码再执行DEFLATE解压:
    echo "<RL参数的Base64值>" | base64 -d | zlib-flate -uncompress > decoded_rl.txt
    
  2. 提取请求中的签名部分,保存为signature.bin
  3. 用OpenSSL执行签名验证:
    openssl dgst -sha256 -verify azure_public_key.pem -signature signature.bin decoded_rl.txt
    

失败结果

[请在此处粘贴OpenSSL返回的具体失败输出,例如:Verification Failure或更详细的错误信息]

需要排查的方向

希望能帮忙分析可能的原因:

  • DEFLATE解压的处理是否符合SAML 2.0规范?有没有可能Azure的DEFLATE编码和标准实现有差异?
  • Azure AD的注销请求签名逻辑,和登录响应的签名逻辑是否存在不同?比如哈希算法、签名范围的差异
  • OpenSSL的验证命令是否有参数错误?比如是否应该指定其他哈希算法,或者待验证数据的处理有遗漏?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:29:51