身份提供商签发 Assertion(包含主体、NotBefore、NotOnOrAfter 和 AudienceRestriction 等条件、身份验证声明以及属性),按 XML Signature 规范对其签名,并将其放在 Response 中经浏览器传递,通常采用 HTTP-POST 绑定。服务提供商依据元数据中 IdP 的证书验证签名,并检查受众、时间窗口、InResponseTo 值和目标 URL。
大多数严重的 SAML 缺陷都是 XML 处理缺陷:签名包装(验证者检查的是一个已签名元素,而应用读取的却是另一个未签名元素)、名称标识符中的注释截断(2018年,影响多个库)、XML 外部实体扩展,以及只覆盖部分响应的签名。应使用仍在维护的库,切勿用通用的 XPath 代码验证签名。
对于新应用,OpenID Connect 通常更简单,但企业客户往往要求支持 SAML;许多产品同时支持两者。SAML 查看器可在本地解码并检查断言。