人人都能理解的SSO与SAML
SSO和SAML经常被模糊使用,可以以不同的方式解释。在本文中,我们将澄清这些概念,解释它们之间的关系,并提供真实的例子以便更容易理解。
SSO和SAML经常被模糊使用,可以以不同的方式解释。在本文中,我们将澄清这些概念,解释它们之间的关系,并提供真实的例子以便更容易理解。
什么是SSO?
SSO(单点登录)是一种认证过程,让用户只需一次登录即可访问多个应用程序或服务,而不需要为每一个单独登录。然而,这个通用定义可以适用于SSO使用时的不同场景。
有各种场景中SSO会被使用。
社交SSO
有时,人们将社交登录称为社交SSO。例如,用户可以使用Google登录在新应用中创建账户,直接使用Google中存储的身份和信息。在这种情况下,用户管理自己的身份。
社交SSO使用户更容易控制他们的信息,减少创建账户和登录过程中的繁琐步骤。社交SSO通常依赖于开放标准协议,如OAuth 2.0和OIDC。
企业SSO
- 身份提供者(IdP)就像你身份的“守门人”。它是持有你的登录信息并验证你是谁的系统。可以把它看作是一个可信的权威,它说:“是的,这个人就是他们声称的那个。” 例子包括Google Workspace、Microsoft Entra和Okta Workforce Identity。
- 服务提供者(SP)是你想要访问的“应用程序”或“服务”一旦你的身份被验证。它是你尝试登录的地方,比如一个应用程序或网站。比如,Zoom、Slack或你的公司内部工具都是服务提供者。
简单来说,身份提供者证明你是谁,而服务提供者在你的身份被确认后为你提供其服务的访问权限。
企业SSO用于更侧重于业务的场景,并被上述两种术语划分为两种典型情况:IdP发起的SSO和SP发起的SSO。虽然这些术语听起来很技术化,但这些场景实际上是相当简单的。
IdP发起的SSO
想象一下,当你作为雇员,入职公司的应用程序和资源时。通常,人力资源会为你创建一个账户。然后你使用那个账户登录到像Okta或Google Workspace这样的平台。登录后,你会被引导到企业门户,你可以访问所有公司的应用程序,比如工资系统、协作工具、Workday等等。
SP发起的SSO
让我们从另一个角度来看。有时,你需要从特定产品的登录页面开始。例如,如果你想使用Zoom与同事进行在线视频会议,你会看到一个“使用SSO登录”的选项。这种情况被称为SP发起的SSO。
企业SSO解决了什么问题
企业SSO的第一个好处是它允许企业轻松、灵活和安全地管理员工身份。
假设你经营一家公司,你的所有员工都需要访问你购买的产品和服务。由于公司生产的资源归公司所有,需要一个企业拥有的身份系统。如果员工使用个人身份访问公司资源,将会带来安全和管理上的挑战。
另一方面,在像SP发起的SSO这样的场景中,员工可以访问由公司拥有的多个应用程序和服务。当员工入职或离职时,人力资源必须在所有公司的产品和服务中创建和删除众多账户,这既繁琐又耗时。
企业SSO通过一个通用身份系统简化了这个过程,工具如SCIM(跨域身份管理系统)和实时供应使它变得更加高效。
对于IdP发起的SSO,希望成为“企业就绪”的产品构建者会被其所吸引。例如,如果你是一家最初专注于个人消费者的初创公司,后来有大型企业想要使用你的产品,他们可能会要求员工使用Microsoft Entra登录。在这种情况下,你将需要将企业SSO整合到你的产品中以完成交易。
什么是SAML?
SAML(安全断言标记语言)是一种用于认证和授权的开放标准协议。与OAuth和OIDC一起,SAML广泛用于身份管理系统,特别是在员工身份管理中。像Okta和Microsoft Entra这样的商业身份提供者通常支持SAML作为他们的标准协议之一。
一些旧系统和社交登录提供者也提供SAML支持,因此将SAML集成到你的系统中可以帮助确保与更广泛的身份提供者兼容,并促进未来的生态系统发展。
何时需要SAML?
SAML经常用于企业SSO场景。例如,请考虑这种情况:
你的销售团队联系产品开发人员并说:“我们有个大客户,他们需要SAML登录。我们需要支持这项技术。”
对于不熟悉SAML或身份和访问管理(IAM)的工程师,他们的第一步可能是搜索“SAML”或“SAML登录”。
最终目标是将企业SSO集成到你的产品中,使其“企业就绪”,以满足那些依赖SAML等技术进行安全认证的大客户的需求。
SAML如何工作
以下是两种类型的简化分解:
SP发起的流程
- 用户尝试访问SP的资源。
- SP将用户重定向到IdP,并附带SAML认证请求。
- 用户在IdP登录并被认证。
- IdP生成一个包含用户身份和可能的授权数据的SAML断言。
- IdP通过用户的浏览器将SAML断言发送回SP。
- SP处理断言,验证其有效性,并授予/拒绝用户访问。
IdP发起的流程
- 用户已在IdP登录,并从IdP的门户选择一个服务/资源。
- IdP基于用户当前会话生成一个包含身份和属性的SAML断言。
- IdP直接将断言发送给SP,而无须SP的事先请求。
- SP处理断言,验证其完整性,并提取用户的身份和属性。
- SP根据断言授予或拒绝访问。
要了解SAML如何从技术角度工作,请查看SAML如何工作。
SAML和SSO的区别
SAML和SSO的定义常常被混淆,但这里是一个简单的分解:
- SSO是一种应用程序和软件使用的认证过程,允许用户只需登录一次就可以访问多个服务。
- SAML是一种技术协议,主要用于企业身份管理,以安全地交换认证数据。
想象一下:你早上走进办公室,而不是需要分别登录每个应用程序——你的电子邮件、日历、项目管理工具——你只需登录一次就可以访问所有内容。这种无缝体验就是SSO(单点登录)。它就像一个通用钥匙,打开所有通往工作场所工具的门。
但SSO如何工作?
这就是SAML(安全断言标记语言)发挥作用的地方。可以将SAML看作是在你的登录系统(称为身份提供者,或IdP)和你想要使用的应用程序(称为服务提供者,或SP)之间的可信使者。当你通过SSO登录时,SAML安全地从IdP向应用程序发送你的身份的“证明”,确认你就是你所声称的人。
简而言之:
- SSO是用户体验:一次登录即可访问多个应用程序。
- SAML是确保这种无缝体验成为可能的幕后协议,通过安全处理身份验证。
虽然SSO提高了便利性,但SAML确保了一切保持安全和连接,让你无需考虑即可访问一切。
企业SSO使用其他协议吗?
是的,除了SAML之外,OIDC是企业SSO场景中常用的另一种协议。例如,在Logto的企业连接器中,它支持Microsoft Entra(OIDC)和Microsoft Entra(SAML)。
我应该使用SAML SSO吗?
如果你正在向企业客户销售产品,考虑尽早支持SAML是很重要的。但不要仅仅关注支持SAML协议——考虑整个企业SSO认证流程。以下是一些关键场景:
- 允许客户自助注册和设置企业SSO。
- 确保员工能够自动加入多租户应用程序中的正确组织机构(这可以通过实时供应和SCIM实现)。
- 实现与你面向消费者的登录流程兼容的端到端登录流程。
使用Logto实现SAML和企业SSO
Logto提供端到端的企业SSO流程并支持多个知名的SAML连接器。它可以集成到你需要的许多常见场景中。探索Logto的全部功能,从Logto Cloud到Logto OSS,访问Logto网站。