一、标准整体架构与篇章体系
- 本标准依据YD/T 2094.6-2010《安全断言标记语言 第6部分:应用配置》构建,整体框架涵盖应用配置的规范结构、安全控制要素、部署参数及互操作性要求。
- 标准共分为六个章节:第1章为范围,界定适用对象与边界;第2章为规范性引用文件,列明关联标准;第3章为术语与定义,统一关键概念;第4章为应用配置模型,定义配置结构与元素层级;第5章为安全配置要求,规定强制与推荐性控制项;第6章为配置管理与部署指南,提供实施路径。
- 内容模块划分为三类:基础结构模块(含XML Schema定义)、安全控制模块(含断言签名、会话绑定、属性发布策略)、部署适配模块(含服务端点配置、身份提供者元数据交换)。
二、强制性核心条款分级
- 断言签名强制要求:所有SAML断言必须使用符合X.509标准的数字签名,签名算法限于RSA-SHA256或ECDSA-SHA256,不得使用MD5或SHA1。
- 会话绑定机制:服务提供者必须验证断言中的
AuthnStatement与客户端会话ID的绑定关系,禁止无绑定或基于IP地址的弱绑定。 - 元数据完整性校验:身份提供者元数据文件必须包含
KeyDescriptor与EntityDescriptor,且其签名必须由可信根证书链验证通过。 - 属性发布最小化原则:服务提供者仅可请求并接收实现业务功能所必需的属性,禁止请求如身份证号、生物特征等非必要敏感属性。
- 断言有效期约束:断言的
NotBefore与NotOnOrAfter时间戳间隔不得超过5分钟,且服务提供者必须拒绝过期或未生效断言。 - 传输层安全:所有SAML消息必须通过HTTPS 1.2或更高版本传输,禁用TLS 1.0及1.1协议。
三、推荐性优化条款解读
- 断言加密推荐:在高安全场景中,建议对
AttributeStatement进行XML加密(XML-Enc),使用AES-256-GCM算法,以增强属性数据的机密性。 - 多身份提供者支持:建议服务提供者支持多IDP元数据动态加载机制,采用
RoleDescriptor与Organization扩展字段实现灵活的联邦身份管理。 - 日志审计增强:推荐记录断言验证的完整上下文(包括IP、时间戳、断言ID、错误码),日志格式应遵循RFC 5424标准,便于溯源与合规审计。
- 缓存机制优化:建议对IDP元数据实施TTL缓存策略,缓存有效期建议设置为24至72小时,降低元数据获取频次并提升系统可用性。
- 用户属性映射配置:推荐采用外部配置文件(如JSON或YAML)定义SAML属性与本地用户目录字段的映射关系,提升配置可维护性与跨平台兼容性。
四、通用基础条款说明
| 术语 | 定义 | 应用约束 |
|---|
| Assertion | 由身份提供者签发的、包含用户身份与属性的XML结构 | 必须符合SAML 2.0 Core Schema定义,根元素为<saml:Assertion> |
| EntityDescriptor | 描述身份提供者或服务提供者实体信息的元数据容器 | 必须包含entityID属性,且值必须为全局唯一URI |
| AuthnContext | 声明认证上下文的类,标识认证方式强度 | 仅允许使用urn:oasis:names:tc:SAML:2.0:ac:classes:Password及其派生类 |
| ProtocolBinding | 指定SAML协议消息传输所使用的绑定方式 | 仅支持urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST与urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect |
| Attribute | 用户属性的名称-值对,由AttributeStatement承载 | 属性名称必须采用URI格式,禁止使用非标准命名空间 |
所有配置项的XML命名空间必须声明为urn:oasis:names:tc:SAML:2.0:assertion、urn:oasis:names:tc:SAML:2.0:metadata或urn:oasis:names:tc:SAML:2.0:protocol,禁止自定义或扩展命名空间用于核心元素。