
什么是 SAML 及其工作原理?
SAML 是安全断言标记语言(Security Assertion Markup Language)的缩写,它是一种开放标准,用于从身份提供商(IdP)向服务提供商(SP)传递授权凭证。简单来说,它实现了应用程序之间的安全通信,并允许用户使用一组凭证获得访问权限。
在深入探讨 SAML 的用途、工作原理以及企业如何从中受益之前,您需要了解有助于实现此过程的 SAML 提供商类型。那么我们就从这里开始。
SAML 提供商的类型
为了使 SAML 能够工作,需要有身份提供商和服务提供商:
身份提供商对用户进行身份验证:这些系统负责确认用户的身份,然后将该数据(以及用户的访问权限)发送给服务提供商。Okta、微软活动目录和微软 Azure 都是身份提供商的例子。
服务提供商对用户进行授权:这些系统使用来自身份提供商的身份验证数据来授予对服务的访问权限。例子包括 Salesforce、Box 以及其他一流技术。
因此,SAML 是用户身份验证和使用服务授权之间的桥梁。它是帮助身份提供商和服务提供商进行通信的语言。当雇主(身份提供商)和 SaaS 公司(服务提供商)都实施 SAML 时,他们能够无缝地对经认证的用户进行身份验证。
SAML 的用途是什么?
SAML 彻底改变了用户登录服务或网站的方式,旨在简化所有相关方(身份提供商、服务提供商和最终用户)的联合身份验证和授权流程。
SAML 无需在每次登录尝试时都要求提供用户名和密码等凭证,而是可以帮助验证用户的身份,并确认权限级别,以批准或拒绝访问。此外,SAML 允许身份提供商和服务提供商独立存在,这有助于组织集中管理用户,并提供对各种软件解决方案的访问。
SAML 最常用于实现单点登录,即在身份提供商和服务提供商之间对经认证的用户进行身份验证。例如,部署了 SAML 配置应用程序的组织可以让其员工使用一组凭证登录到一个单一的仪表板,该仪表板使他们能够直接访问所有生产力和通信工具。
SAML 的工作原理
SAML 使用可扩展标记语言(XML)在身份提供商和服务提供商之间进行通信。这表现为 SAML 断言的形式,即身份提供商发送给服务提供商以授权用户的一种 XML 文档。
SAML 断言有三种类型:
- 身份验证断言证明用户的身份,并提供他们的登录时间以及所使用的身份验证协议(例如 Kerberos、多因素身份验证)。
属性断言将 SAML 属性(提供用户信息的数据片段)传递给服务提供商。
授权断言确认用户是否有权使用某项服务,以及他们拥有何种程度的授权,或者身份提供商是否由于密码错误或缺乏访问权限而拒绝了他们的请求。
总而言之,SAML 通过在身份提供商和服务提供商之间传递有关用户、其登录信息和其属性的信息来工作。例如,当用户使用单点登录进行登录时,身份提供商将向服务提供商传递 SAML 属性,确保用户只需登录一次。
让我们看看这在日常生活中是如何发生的。当用户开始在一家新公司工作时,他们会收到一个电子邮件地址和一个仪表板的访问权限。当他们使用身份提供商(如 Okta)登录该仪表板时,会看到外部服务提供商的图标,如 Slack 或 Salesforce。然后,他们可以点击任何这些图标,自动登录到该服务,而无需重新输入凭证。
也就是说,用户访问网站、应用程序和在线服务时可能会经历两种 SAML 流程:
服务提供商发起的 SAML 流程:当用户尝试通过其登录页面或移动应用程序登录启用 SAML 的服务时,会发生这种情况。服务不会要求用户登录,而是将用户重定向到其身份提供商以处理身份验证。如果用户的身份得到确认,他们将被授予对该网站或应用程序的访问权限。
身份提供商发起的 SAML 流程:当用户登录到身份提供商并从其数据库中启动服务应用程序时,会发生这种流程。如果他们已经拥有服务提供商的账户,他们将自动获得访问权限。如果没有,那么一些身份提供商可以使用 SAML 为该服务创建一个新的、经过身份验证的账户。
SAML 的优势
SAML 为用户和企业都带来了许多好处,其中最重要的是减少了使用多个 Web 应用程序的麻烦。其他优势包括:
改善用户体验:SAML 不仅使登录应用程序和服务变得更容易,而且还帮助用户提高工作效率,因为他们可以随时访问完成工作所需的工具。
减少凭证丢失:必须处理多个登录信息往往会导致人们忘记密码,更糟糕的是,他们会把密码写下来,这增加了凭证被盗的风险。使用 SAML,用户只需要记住一个用户名和密码组合。
更高的安全性:SAML 在安全的身份提供商处提供单点身份验证,然后将用户的身份信息传输给服务提供商。这确保凭证仅直接发送,最大限度地减少了钓鱼或身份盗窃的机会。
降低成本:实施 SAML 节省了大量的管理时间,因为它有助于消除提交工单和重置密码的需求。它还有助于将开发成本(通常与专有身份验证方法相关)降至最低。
简化用户管理:由于员工使用多个应用程序,当角色发生变化或员工离开公司时,IT 部门管理访问权限可能会变成一场噩梦。SAML 简化了这一点,因为每个用户都可以从一个单一的目录中进行管理。
SAML 的替代方案
虽然 SAML 在身份联合方面提供了许多好处,但也有其他可用的标准可以帮助企业和服务安全地管理和批准用户身份。
OpenID:OpenID 是一种开源身份标准,允许用户访问多个网站和应用程序,而无需共享额外的登录信息。如果您曾经使用 Google、YouTube 或 Facebook 的凭证登录过某个网站,那么您就体验过 OpenID。
OAuth:OAuth(全称 OpenAuth)是由 Google 和 Twitter 联合开发的一种标准,用于实现网站之间的简化登录。它在应用程序之间共享信息的方式上与 SAML 相似(您可能使用过的两个 OAuth 提供商是 Facebook 和 Google)。然而,它的不同之处在于使用 JSON 令牌对用户进行身份验证,因此更适合移动设备。
Web Service Federation:Web 服务联合用于将服务提供商的身份验证联合到身份提供商。人们普遍认为它对开发人员来说更容易实现,并且得到了流行的身份提供商(如 AD)的良好支持,但云提供商对其支持较少。
开始使用 SAML
SAML 是任何网络安全策略的重要组成部分,因为它限制了凭证的使用,并使企业能够集中审计和管理身份。此外,它以增强安全性的方式让用户轻松访问他们需要的 Web 应用程序。
有了合适的身份提供商,开始使用 SAML 就很简单。例如,Okta 提供了 SAML 验证工具以及各种不同编程语言的开源 SAML 工具包。
要更清楚地了解 SAML 如何使组织和员工受益,请查看以下资源:
SAML 集成、OpenID Connect 和合作伙伴 IdP(产品演示)https://www.youtube.com/watch?v=AlrQFgkxfEY&t=
本地应用程序的 SAML 集成和预构建配置(产品演示)https://www.youtube.com/watch?v=nJyH1zMElHo