Skip to content

SAML

什么是 SAML

SAML(Security Assertion Markup Language,安全断言标记语言)是一种基于 XML 的标准协议,用于在身份提供商(IdP)和服务提供商(SP)之间安全地交换身份认证和授权信息。

核心术语

术语英文说明
IdPIdentity Provider身份提供商,提供身份认证服务,如竹云 IDaaS
SPService Provider服务提供商,利用 IdP 的身份管理功能提供具体服务
SP 发起 SSOSP-initiated SSO由服务提供商发起的单点登录
IdP 发起 SSOIdP-initiated SSO由身份提供商发起的单点登录

SAML 的核心能力

SAML 提供了一套安全断言机制:

断言(Assertion):由 IdP 签发的、关于用户身份的声明。它使用 XML 格式安全地表达"某个用户已经通过了身份认证"。

使用 SAML 后,SP 可以直接联系 IdP,对尝试访问安全内容的用户进行身份验证,无需维护独立的用户体系。

SAML 的特点

专为 Web 浏览器单点登录设计

SAML 诞生的初衷就是解决 Web 浏览器环境下的单点登录问题。它不仅简化了登录步骤,还针对不同的安全系统提供了一个共有的框架。

企业级安全标准

SAML 支持以下安全特性:

  • 数字签名:断言信息经过数字签名,防止篡改
  • 加密传输:敏感信息可加密传输
  • 时间窗口:断言具有有效期,过期自动失效
  • 受众限制:断言可指定仅对特定 SP 有效

广泛的企业应用

SAML 是企业级应用单点登录的事实标准,被众多商业应用原生支持:

Salesforce、Office 365、Google Workspace、AWS、Workday 等均支持 SAML 协议接入。

SAML 与 OIDC 的选择

对比项SAMLOIDC
数据格式XMLJSON
传输方式浏览器表单提交HTTP 请求
最佳场景传统企业应用现代 Web/移动应用
令牌大小较大(XML)紧凑(JWT)

对于现代应用,推荐优先使用 OIDC;对于传统的企业级 Web 应用,SAML 仍是可靠的选择。

图解 SAML

SAML 流程图

竹云IDaaS开放平台