SAML断言是SAML 2.0中嵌套在响应内的XML结构,含Issuer、Subject、Conditions等必需元素,承载AuthenticationStatement和AttributeStatement两类核心声明,并通过ID、IssueInstant、NotOnOrAfter等属性保障安全与时效。
SAML断言(SAML Assertion)是SAML协议中承载用户身份和授权信息的核心XML片段,用于在身份提供者(IdP)和服务提供者(SP)之间安全传递认证与属性数据。它不是完整的消息(如SAML请求或响应),而是嵌套在中的关键内容块。
SAML断言是一个元素,必须包含以下三个子元素(按顺序):
https://idp.example.com ;内;(如邮箱、临时ID)及可选的(说明如何验证该主体,例如通过Bearer方式回传给SP)。断言主体由一个或多个“声明(Statement)”组成,最常用的是前两种:
AuthnInstant(认证时间)、SessionIndex(会话标识)、AuthnContext(认证强度,如密码、MFA);email、displayName、groups等。每个属性用包裹,值放在中,支持多值和命名空间;
不提供。断言本身带有多项元数据属性,直接影响安全性与有效性:
Version="2.0":必须为2.0,SAML 1.x已淘汰;ID:唯一标识符(以_开头的随机字符串),用于防重放;IssueInstant:UTC时间戳,表示断言生成时刻;Conditions:定义有效范围,含NotBefore、NotOnOrAfter(建议不超过5–10分钟)、AudienceRestriction(明确指定接收方SP的实体ID,防止断言被滥用于其他服务)。以下是一个精简但合法的SAML断言片段(省略签名和命名空间声明):
ID="_abc123" IssueInstant="2025-05-20T08:30:00Z" Version="2.0">