什么是 SAML?| SAML 身份验证如何工作

SAML 是 SSO 提供商用来传达用户已通过身份验证的技术标准。

Share facebook icon linkedin icon twitter icon email icon

SAML

学习目标

阅读本文后,您将能够:

  • 定义安全断言标记语言(SAML)
  • 了解 SAML 如何契合单点登录(SSO)工作流程
  • 阐释什么是 SAML 断言

什么是 SAML?

安全断言标记语言(SAML)是一种标准方法,用于告知外部应用程序和服务某一用户正是其声称的身份。SAML 提供一种方法来对用户进行一次身份验证,然后将该身份验证传递给多个应用程序,从而使单点登录(SSO)技术成为可能。SAML 的最新版本是 SAML 2.0。

SAML 身份验证可以比作身份证,即一种简略展示一个人是谁的标准化方式。譬如,不必进行一系列的 DNA 测试来确认一个人的身份,只需看一眼这个人的身份证便可。

计算和网络方面的一大挑战是,让不同供应商为不同目的构建的系统和设备协同工作。这称为“互操作性”:不同机器能够彼此交互,尽管它们有不同的技术规格。SAML 是一种互操作标准,提供一种广泛接受的方式,将用户身份传达给服务提供商。

什么是单点登录(SSO)?

单点登录(SSO)是一种可以同时针对多个应用程序和服务验证用户身份的方式。使用 SSO 时,用户可以在一个登录屏幕中登录,然后就能使用多个应用程序。用户无需针对他们使用的每一项服务确认自己的身份。

为实现这个目标,SSO 系统必须与每个外部应用程序通信,告知它们用户已经登录,而这是 SAML 发挥作用的地方。

SAML 如何工作?

典型的 SSO 身份验证过程涉及以下三方:

  • 当事人(有时也称为“主体”)
  • 身份提供者
  • 服务提供商

主体/主题:几乎始终是尝试访问云托管应用程序的人类用户。

身份提供者:身份提供者(IdP)是一种云软件服务,通常通过登录过程来存储和确认用户身份。本质上,IdP 的职责是指出“我认识这个人,这是此人被允许做的事情”。SSO 系统实际上可以跟 IdP 分开;但若如此,SSO 基本上充当 IdP 的代表,因此从所有意图和目的来看,它们在SAML 工作流中都是相同的。

服务提供商:这是用户希望使用的云托管应用程序或服务。常见示例包括云电子邮件平台(如 Gmail 和Microsoft Office 365)、云存储服务(如 Google Drive 和 AWS S3)和通信应用程序(如 Slack 和 Skype)。通常,用户会直接登录这些服务,但在使用 SSO 时,用户会改为登录 SSO,而 SAML 则用于为他们提供访问权限,而不是直接登录。

典型的流程如下:当事人向服务提供商发出请求。服务提供商接着向身份提供者请求身份验证。身份提供者将 SAML断言发送给服务提供商,然后服务提供商可以将响应发送给当事人。

如果当事人(用户)尚未登录,身份提供者可以提醒他们登录,然后再发送 SAML 断言。

什么是 SAML 断言?

SAML 断言是告知服务提供商用户已经登录的消息。SAML 断言包含服务提供商确认用户身份需要的所有信息,包括断言的来源、签发时间,以及有效断言应满足的条件。

SAML 断言可以比作职位候选人的推荐信内容:提供推荐信的人陈述他们与候选人合作的时间和时长、担任的职位,以及他们对候选人的看法。基于此推荐信,公司可以决定是否聘用候选人,就如 SaaS 应用程序或云服务可以基于 SAML 断言允许或拒绝用户访问一样。

什么是 SAML 2.0?

SAML 2.0 是 SAML 的现代版本,自 2005 年起投入使用。SAML2.0 综合了先前使用的多个 SAML 版本。为了向后兼容,许多系统也支持更早的版本,例如 SAML 1.1,但 SAML 2.0 是现代标准。

SAML 身份验证是否与用户授权相同?

SAML 是一种用于用户身份验证而不是用户授权的技术,这是关键区别。用户授权是身份和访问管理的另外一个领域。

身份验证指的是用户的身份:他们是谁,以及他们的身份是否已通过登录过程确认。

授权指的是用户的特权或权限:具体来说,就是他们在公司系统中允许执行的操作。

可以这样来思考身份验证和授权之间的区别:假设爱丽丝要参加音乐节。在入口处,她出示门票和另外一种身份证明,以证实她有权持有该门票。之后,她被允许参加音乐节。她通过了身份验证。

然而,仅仅因为爱丽丝位于音乐节场地内,并不意味着她可以随意走动、为所欲为。她可以观看音乐节表演,但不能登台表演,也不能到后台与演员互动,因为没有获得相应的授权。如果她购买了后台通行证,或者除了观众之外还担任表演者,那么她将获得更大的授权。

访问管理技术处理用户授权。访问管理平台使用若干不同的授权标准(其中一种是 OAuth),而不是 SAML。

Cloudflare Access 是一种访问管理解决方案的示例。Cloudflare Access 使公司可以管理用户对内部资源和数据的访问,且无需使用虚拟专用网络(VPN)。它可以与 SSO 提供程序轻松集成,以同时提供用户授权和用户身份验证。

了解有关 SSO 的更多信息。