单点登录基于一组有关联的、可信的应用、网站和服务(称为 服务提供商 与 SSO 解决方案(称为 身份提供商)之间的数字信任关系。 SSO 解决方案通常属于更大范围的 IAM(身份和访问管理) 解决方案。
SSO 身份验证的一般工作原理是:
这一过程可能因多种因素而异。 例如,在特定时间段内空闲着的用户在尝试访问其他应用时可能需要登录。 或者,如果经过身份验证的用户尝试使用处理特别敏感信息的应用或服务,系统可能会提示用户使用其他身份验证因素进行验证,例如向用户的手机或电子邮件发送代码(参阅下面的“自适应 SSO”)。
SSO 显然可以为用户节省时间,带来便利。 以企业用户为例:使用 SSO,他们通常只需登录一次公司内部网或外部网,之后全天都可以访问需要使用的每个应用,无需每天在多个应用中进行多次登录。
通过大幅减少用户需要记住的密码数量和管理员需要管理的用户帐户数,SSO 还可以增强组织的安全态势。 具体来说,SSO 可以
SSO 的主要风险是,如果用户的凭证泄露,这些凭证就可以为攻击者提供网络上所有或大部分应用和资源的访问权限。
要求用户创建复杂的长密码,谨慎加密并保护存储位置,对于防止发生这种最坏的情况大有帮助。 但大多数安全专家建议实施带有多因子身份验证 (MFA) 的 SSO。 MFA 要求用户提供除密码之外的至少一个身份验证因素,例如,发送到手机的代码、指纹或身份证件。 由于黑客无法轻易窃取或欺骗这些附加凭证,MFA 可显著降低与 SSO 凭据泄露相关的风险。
以上描述的 SSO 方案是单点登录和一组提供对多个相关应用的会话访问权限的用户凭证,有时被称为简单或纯 SSO。 其他类型的 SSO(或类似于 SSO 的身份验证方法)包括:
SSO 可使用任何一种身份验证协议和服务来实现。
SAML/SAML 2.0
SAML(安全性断言标记语言)是使用时间最长的开放标准协议,用于在身份提供程序和多个服务提供程序之间交换加密的身份验证和授权数据。 SAML 比其他协议更能控制安全性,因此通常用于在企业或政府应用域内部和二者之间实施 SSO。
OAuth/OAuth 2.0
OAuth/OAuth 2.0(开放授权)是一个开放的标准协议,用于交换应用之间的授权数据,而不会暴露用户的密码。 OAuth 支持使用单点登录来简化通常需要分别登录的应用之间的交互。 例如,借助 OAuth,LinkedIn 可以在您的电子邮件联系人中搜索潜在的新网络成员。
OpenID Connect (OIDC)
OICD 也是一个开放标准协议,使用 REST API 和 JSON 身份验证令牌,允许网站或应用通过另一个服务提供商对用户进行身份验证,以此授予用户访问权限。
OICD 位于 OAuth 上层,主要用于实现对第三方应用、购物车等的社交登录。 OAuth/OIDC 是一种轻量级的实现,通常由 SAML 用于跨 SaaS(软件即服务)和云应用、移动应用和物联网 (IoT) 设备实施 SSO。
LDAP
LDAP(轻量级目录访问协议)定义一个用于存储和更新用户凭证的目录,以及一个针对该目录对用户进行身份验证的过程。 LDAP 于 1993 年推出,目前仍然是许多实施 SSO 的组织所青睐的身份验证目录解决方案,这是因为 LDAP 支持他们提供对目录访问的细粒度控制。
ADFS
ADFS(Active Directory 联合服务)在 Microsoft Windows 服务器上运行,以启用本地和外部应用与服务的联合身份管理(包括单点登录)。 ADFS 使用 Active Directory 域服务 (ADDS) 来提供身份。
“零信任”采取“从不信任,始终验证”的安全方法:任何用户、应用或设备 - 无论是在网络外部,还是已经通过身份验证并位于网络内部 - 都必须在访问所需的下一个网络资源之前验证其身份。
随着网络变得更加分散,跨越的本地基础架构以及私有云和公有云数量更多,零信任方法对于防止渗透网络的威胁获得更多访问权限并造成最大的损害至关重要。
SSO 被广泛视为实施零信任方法的基础技术,尤其是作为 IAM 解决方案一部分的 SSO。 零信任的基本挑战是创建一个安全架构,打击渗透网络的攻击者,而不会阻碍获得授权的最终用户在网络中自由行动并完成工作或业务。 与多因子身份验证、访问和权限控制、网络微分段等技术和最佳实践相结合后,SSO 可以帮助组织实现这种平衡。