Neatbo.

本地检查 SAML 断言:Issuer、Audience 与有效期

在本地解析 SAML XML 或 Base64,核对签发者、受众和时间字段。说明解析、签名存在与真正签名验证的区别,避免误判登录信任。

准备断言内容

SAML 检查器接受 XML 原文或标准 Base64 编码的 XML。可以先用工具页的虚构示例了解输出结构,再处理自己的调试内容。

输入需要以 Assertion 或 Response 元素为根。工具不会跳转登录、读取浏览器 Cookie 或请求身份提供方。

对照四组常见字段

Issuer 表示声明的签发方;Audience 表示声明的受众;NameID 是被声明的主体标识。检查拼写、大小写和预期服务配置是否一致。

Conditions 中的 NotBefore 和 NotOnOrAfter 描述断言的时间条件。界面保留原始字段,便于与身份系统日志中的 UTC 时间对照。

看到签名不等于签名有效

signaturePresent 只表示 XML 中存在 Signature 元素。signatureVerified 始终为 false,因为此工具不验证证书链、XML 签名和接收方信任配置。

不要把解析输出当作身份凭据。真正的登录验证仍由服务提供方按协议、可信密钥、时间窗口和防重放策略完成。

处理完成后清理输入

输入和文件在浏览器中解析,不发送至 Neatbo 服务端。外部实体与 DTD 会被拒绝。

断言可能包含身份信息和仍在有效期内的登录材料。复制给同事前,应在自己的流程中去除真实标识和敏感字段;Neatbo 不自动脱敏。

区分可读消息和可信登录

先使用虚构 Assertion,而不是正在使用的登录响应。将提取字段与原始 XML 一起检查,确认数值确实来自预期元素。便于阅读的字段摘要并不是完整的协议验证器。

排查实际登录失败时,应把服务提供方的错误与其配置的签发者、接收者、受众和时间策略逐项对照。签名校验和防重放仍由使用可信配置的服务提供方负责;此工具不会代替它验证这些策略。

区分可读消息和可信登录
字段比较内容不能证明什么
Issuer配置中的精确标识该签发者确实签署消息
Audience预期服务标识接收者具有权限
NotBefore / NotOnOrAfterUTC 值与服务策略断言现在一定会被接受
signaturePresent是否存在 Signature 元素签名或证书有效
可复用的虚构样例
<Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
  <Issuer>https://idp.example.test</Issuer>
  <Subject><NameID>demo-user</NameID></Subject>
</Assertion>

完成前的检查清单

  • 此样例为虚构且未签名。
  • 核对原始 UTC 值,不仅依赖本地时间显示。
  • 分享样例前移除身份标识和登录材料。
  • 不要把 signatureVerified: false 当作信任校验成功。

参考资料

  • OASIS:SAML 2.0 Core

    提供断言元素与条件的协议参考;检查器不实现完整的 SAML 信任验证。

本文相关工具

SAML 响应检查 →在浏览器本地解码 SAML 2.0 响应,查看 SSO 状态、受众、接收方、NameID 和属性。Unicode 转义转换 →查看 Unicode 转义对应的文字。