SAML 解析器

SAML(安全断言标记语言)是一种基于 XML 的标准,用于在身份提供商(IdP)和服务提供商(SP)之间交换认证和授权数据。此工具从 URL 解码 SAML 消息,处理 Base64 和 DEFLATE 编码,并格式化 XML 以便检查。

规范

常见用例

  • 调试企业单点登录(SSO)认证流程
  • 检查来自身份提供商(Okta、Azure AD、ADFS)的 SAML 断言
  • 排查服务间的 SAML 集成问题
  • 验证断言属性和 NameID 值
  • 分析 AuthnContext 和会话参数
  • 审计 SAML 配置进行安全审查

功能

  • 解析 SAML AuthnRequest 消息(SP 到 IdP)
  • 解码 SAML Response 和 Assertion(IdP 到 SP)
  • 从 URL 查询参数中提取 SAMLRequest 和 SAMLResponse
  • 处理 Base64 编码和 DEFLATE 压缩(HTTP-Redirect 绑定)
  • 带语法高亮的 XML 结构格式化输出
  • 显示消息概览(类型、ID、IssueInstant、Destination、Status)
  • 提取 Issuer、Subject/NameID 和 Conditions
  • 显示 AttributeStatement 中的断言属性
  • 签名存在指示器

示例

SAML Response URL

试试看 →

一个在查询字符串中包含 Base64 编码的 SAML Response 的 URL。

https://sp.example.com/acs?SAMLResponse=PHNhbWxwOlJlc3BvbnNlLz4=

提示

  • SAML 使用两种主要绑定:HTTP-Redirect(GET 配合 deflate+base64)和 HTTP-POST(POST 配合 base64)。
  • RelayState 参数在 SSO 流程中保留最初请求的 URL。
  • SAML 断言可以被签名、加密或两者兼有。此工具显示解码后的内容。
  • 检查 NotBefore 和 NotOnOrAfter 条件以验证断言的时间有效性。

理解 SAML 解析器

SAML(安全断言标记语言)是一种基于 XML 的开放标准,用于在身份提供商(IdP)和服务提供商(SP)之间交换认证和授权数据。SAML 2.0 由 OASIS 于 2005 年发布,至今仍然是企业单点登录(SSO)的主导协议,使员工能够一次认证即可访问多个应用程序。

SAML SSO 流程的工作方式如下:用户尝试访问服务提供商,SP 生成 AuthnRequest 并将浏览器重定向到 IdP,IdP 对用户进行认证并创建包含 Assertion 的 SAML Response,浏览器将此 Response 通过 POST 发送回 SP。断言包含用户的身份(NameID)、属性(电子邮件、组、角色)和条件(有效期窗口、受众限制)。

SAML 消息通过绑定进行传输。HTTP-Redirect 绑定使用 DEFLATE 压缩和 Base64 编码将 XML 编码到 URL 查询参数中。HTTP-POST 绑定仅使用 Base64 并通过自动提交的表单发送。调试 SAML 需要解码这些层以检查底层 XML。

SAML 断言可以被签名(证明来自 IdP)、加密(防止中间方读取内容)或两者兼有。在排查 SSO 问题时,第一步始终是解码 SAML Response 并检查断言的条件、受众、时间戳和属性值。

SAML 和 OAuth 2.0/OpenID Connect 服务于不同的目的。SAML 设计用于企业 SSO,使用通过浏览器重定向传输的基于 XML 的断言,在使用 ADFS 和 Okta 等身份提供商的企业环境中最为常见。OAuth 2.0 是使用 JSON 令牌进行 API 访问的授权框架,OpenID Connect 在 OAuth 之上使用 JWT 添加了认证层。OIDC 在现代 Web 和移动应用中更为常见,而 SAML 在企业 IT 环境中仍然占据主导地位。

SAML 消息通常显示为难以理解的字符串,因为它们是为传输而编码的。在 HTTP-POST 绑定中,XML 被 Base64 编码。在 HTTP-Redirect 绑定中,XML 首先被 DEFLATE 压缩,然后 Base64 编码,再 URL 编码。读取原始 XML 需要按正确顺序反转这些层。此工具会自动处理所有解码步骤,无论使用了哪种绑定。

排查 SAML 错误时,请检查几个常见原因:IdP 和 SP 之间的时钟偏差可能导致断言时间戳验证失败;Audience 元素必须与 SP 配置的实体 ID 完全匹配;断言可能已超过 NotOnOrAfter 时间;Destination 属性必须与 SP 的断言消费者服务(ACS)URL 匹配;如果最近进行了证书轮换,SP 可能没有 IdP 当前的签名证书。RelayState 参数在 SSO 流程中也起着重要作用——它在认证重定向过程中保留用户最初请求的 URL,以便在成功认证后,SP 可以将用户重定向回最初尝试访问的页面。

← 返回所有工具