跳到主要内容
ecdsa.com

SAML 2.0

OASIS 制定的 XML 标准(2005年3月),用于在身份提供商与服务提供商之间交换经过签名的身份验证断言和属性断言,至今仍是企业单点登录的支柱。
其他写法SAMLSecurity Assertion Markup LanguageSAML assertionSAML SSO

身份提供商签发 Assertion(包含主体、NotBefore、NotOnOrAfter 和 AudienceRestriction 等条件、身份验证声明以及属性),按 XML Signature 规范对其签名,并将其放在 Response 中经浏览器传递,通常采用 HTTP-POST 绑定。服务提供商依据元数据中 IdP 的证书验证签名,并检查受众、时间窗口、InResponseTo 值和目标 URL。

大多数严重的 SAML 缺陷都是 XML 处理缺陷:签名包装(验证者检查的是一个已签名元素,而应用读取的却是另一个未签名元素)、名称标识符中的注释截断(2018年,影响多个库)、XML 外部实体扩展,以及只覆盖部分响应的签名。应使用仍在维护的库,切勿用通用的 XPath 代码验证签名。

对于新应用,OpenID Connect 通常更简单,但企业客户往往要求支持 SAML;许多产品同时支持两者。SAML 查看器可在本地解码并检查断言。

标准与参考资料

全部术语