安全断言标记语言(SAML)和 OpenID Connect(OIDC)是两种较为常见的身份验证协议和身份标准,有各自的优缺点和差异性。本文将对比 SAML 和 OIDC 两种协议探究各自的企业用例,以及每种协议对身份和访问管理(IAM)的贡献。两种协议都支持单点登录(SSO),但在部署之前需要明确两者在技术和概念上的差异:SAML 的重点在于安全授予跨域网站访问权限,而 OIDC 为移动应用和 Web 应用提供了额外的情境。
1. SAML 和 OIDC 的差异
在比较 SAML 2.0 和 OIDC协议之前,首先要比较 SAML 和 OAuth 协议,OAuth 是 OIDC 的基础,OIDC 通过身份层在此基础上进行了扩展,实现去中心化的身份验证服务。OpenID 开源社区于2005年启动了 OpenID 的开发项目。据基金会称,现在已有来自超过50,000多个网站的10亿多个用户账号启用 OpenID,管理支持 OIDC 身份验证、OIDC 社区以及合规操作的基础架构。
而SAML 2.0 是一个开放标准,自2003年以来一直为商用、私用身份提供程序(IdP)和服务提供程序(SP)提供身份验证和授权功能。SAML 最初使用基于可扩展标记语言(XML)的框架来实现单点登录,允许 IdP 和 SP 彼此独立,支持集中式用户管理。下节将介绍 SAML 的工作原理,探究协议中的每个组件。
2. SAML 的实现原理
上文提到,SAML 是一种用于身份验证和授权的开放标准,通过身份联合提供对 Web 应用的单点登录访问。SAML 从 IdP 中继用户凭证来验证访问权限和 SP,其中服务提供提供程序(SP)需要在授予用户访问权