什么是单点登录(Single Sign-On)以及它是如何工作的?优点和缺点
单点登录(SSO)是一种身份验证服务,用户登录到一个服务或账户后,可以访问多个应用程序。这项技术通过在初始登录之后提供自动身份验证来消除多次登录的需求。
理想情况下,经过身份验证的用户在需要访问时不必每次都登录到各个应用程序或服务。适用单点登录的典型领域包括云服务、在线门户、内部网络和其他需要用户在多个应用程序之间访问和切换的环境。
适用单点登录的其他领域包括电子商务、银行和其他面向客户的应用程序和网站。在这种情况下,单点登录允许用户无需分别登录到每个应用程序,即可无缝访问多个企业和第三方应用程序。
谷歌、Microsoft等企业平台是一些使用单点登录的主要公司。例如,一旦您登录到Gmail帐户,您就可以访问Google云盘、Google文档、AdSense、YouTube、Google Analytics、Google搜索控制台以及与该电子邮件地址相关的所有应用程序。
为什么单点登录很重要?
组织使用多个应用程序和服务来改进工作流程和性能。在云端和/或本地环境中部署通常会导致碎片化,这对IT团队和用户来说可能是一个挑战。
例如,管理碎片化的应用程序需要IT人员投入更多的时间和技能。此外,用户必须依赖许多应用程序和服务来完成工作。传统上,这需要登录到多个应用程序并在一天中多次切换。
单点登录消除了每次需要访问不同应用程序或服务时都要输入登录凭据的需求。这使得他们只需提供一套凭据来访问服务,并在不再登录的情况下无缝切换应用程序。
除了改善用户体验,单点登录在提高安全性的同时降低了成本和IT人员的工作量,传统上IT人员需要花费大部分时间解决登录问题。
单点登录是如何工作的?
单点登录过程基于身份提供者(如服务器)和用户尝试访问的应用程序之间的信任关系。这两者交换一个证书,应用程序或服务验证该证书来自可信源。
一个典型的流程如下所示,但可能因协议和应用程序是本地环境还是云端环境而有所不同。
- 用户尝试访问服务提供商,服务提供商引用服务、网站或应用程序。
- 应用程序向身份提供者或单点登录服务发送令牌来验证用户身份。
- 单点登录系统检查用户是否已经验证。如果是,则用户被授予访问应用程序的权限。如果不是,则要求用户提供凭据。
- 一旦验证身份,身份提供者向服务或应用程序发送一个令牌,用户现在可以访问它。
一旦用户登录到依赖单点登录的应用程序或网站,单点登录服务将连接到主身份提供者服务器。然后,系统将创建一个充当临时身份的身份验证令牌,证明用户已经通过验证。这个令牌会存储在应用程序服务器或用户的Web浏览器中。
每当用户访问另一个应用程序时,新的应用程序会检查单点登录服务,找出是否有活动的身份验证令牌。如果用户已经登录到另一个应用程序,则单点登录服务确认这一点,然后将令牌传递给应用程序。因此,用户可以自动登录到其他应用程序,而无需提供凭据。
如果用户尚未登录,SSO服务会提示输入用户名和密码。
单点登录的好处
单点登录认证带来了诸如提高应用程序、用户和数据安全性和合规性的好处。它还提供了更好的用户体验和满意度,因为减少了中断和需要记住每个服务或应用的不同凭据的情况。
其他好处如下:
#1. 减少密码疲劳
在今天的数字世界中,一个人必须记住多个密码才能访问不同的服务和应用程序。然而,大多数人都不喜欢记住不同的密码。
相反,某人将使用一个容易记住的密码来访问不同的服务,这是一个巨大的安全风险。例如,一个犯罪分子拥有一个应用程序的密码也可以访问和破坏使用相同密码的所有其他服务。
尽管SSO使用一组公共凭据,但它依赖于更强大的密码,并且主要与多因素身份验证一起使用。
#2. 更容易集成多因素身份验证
由于SSO是从一个中心位置运行和管理的,它允许轻松集成MFA。在这种情况下,用户只需激活一次多因素身份验证,而不是根据应用程序和服务的数量多次激活。
#3. 减少密码恢复时间
减少恢复或解决忘记密码所需的时间。通常,IT团队花费大量时间解决员工的密码问题。但是,SSO减少了所需的密码数量,因此减少了重置密码所需的时间。
#4. 提高生产力
通过消除每个应用程序或服务的登录需求,SSO认证节省了员工访问多个应用程序所需的时间,提高了生产力。
用户只需登录一次,之后可以在多个应用程序之间无缝导航,无需再次提示输入用户名和密码。
#5. 增强合规性
医疗、金融等受监管的行业需要遵守HIPAA、PCI DSS等标准。通过使用SSO,公司可以轻松遵守这些标准,因为他们只需要为所有服务和资源保护一套凭据。
SSO认证的缺点
尽管单点登录认证提供了更好的用户体验和其他好处,但它也有一些缺点。
这些包括:
#1. 安全风险
SSO服务可能存在较高的安全风险。SSO系统的缺陷和不安全的SSO实践可能会导致攻击者获取并破坏多个应用程序的凭据。此外,SSO可能无法满足某些敏感或关键应用程序的所有安全要求。
尽管存在挑战,但组织正在部署SSO,尤其是在使用低风险应用程序(如聊天)时。为了增强安全性,他们可以添加其他身份验证技术,如多因素身份验证。
#2. 复杂的部署
配置SSO组件,如身份提供者和数字证书,然后将它们与应用程序(服务提供者)集成起来是一个复杂而具有挑战性的过程,需要高度的专业知识和时间。
一旦设置好,SSO服务必须始终可用。因此,它需要一个高可用性的基础设施,以确保可靠性和对组织应用程序的访问。否则,停机时间会导致无法访问应用程序和服务。
此外,丢失凭据,如密码或无法登录主帐户,意味着无法访问任何应用程序。然而,大多数单点登录解决方案提供了一个自助密码重置,大多数用户可以访问和重置密码。
#3. 不是所有的应用程序都支持单点登录
尽管大多数企业云和本地环境都支持SSO,但有些不支持。因此,即使已经实施了SSO,用户可能仍然需要为不支持的服务和应用程序使用凭据。
SSO身份验证标准和协议
SSO身份验证过程必须可靠地和安全地将身份验证令牌传递给用户可以访问的其他服务和应用程序。为了实现这一点,身份验证令牌具有特定的协议或标准来确保其合法性和准确性。
例如,对于云应用程序,可以部署基于联合的SSO身份验证方法,如OAuth、OpenID Connect或SAML。
有几种SSO身份验证方法和协议,选择取决于环境、安全要求的级别等因素。
联合SSO
联合身份管理(FIM)在应用程序和供应商、受信任的第三方和外部服务提供商之间建立了一种信任关系。
例如,登录到Gmail或Apple帐户后,用户可能可以访问其他应用程序,如Twitter和其他应用程序,而无需额外的登录提示。但是,如果首次在设备上访问外部应用程序,则可能会提示进行验证,例如手机号码。
自适应单点登录
自适应SSO身份验证最初会要求输入用户名和密码以访问主要帐户。然而,访问敏感或高度安全的应用程序可能需要额外的身份验证,如凭据或MFA代码。当从新设备或位置访问应用程序或服务时,也可能会发生这种情况。
社交SSO身份验证
这允许用户使用他们的社交媒体帐户(如Twitter、Facebook、Apple、Google或LinkedIn)登录第三方服务、应用程序和网站。
智能卡SSO身份验证
要使用此身份验证登录,用户必须拥有物理智能卡,并使用该卡登录到持有主要帐户的计算机。之后,用户可以访问多个其他应用程序和服务。理想情况下,这是最安全的SSO解决方案之一。除非攻击者获取物理卡和PIN,否则他们无法登录应用程序。
智能卡单点登录不太流行,但更安全。它们用于银行和在线支付作为多因素身份验证选项。
Kerberos身份验证单点登录
SSO认证系统会提示用户提供他们的主要凭据。然后,身份提供者(如Active Directory)会发放一个票据授予票(TGT)。之后,TGT为用户要访问的其他服务、网站和应用程序提供服务票据。
在Kerberos authentication中,TGT票据通常是临时的,仅用于特定的会话。它们的寿命很短,以减少攻击者访问或窃取会话的风险。
安全声明标记语言(SAML)协议
SAML是支持主要身份提供者与多个应用程序或服务之间交换加密身份验证和授权数据的开放标准协议之一。
与其他协议相比,SAML提供了更高的安全控制,非常适用于政府和企业中的关键和受保护的应用程序。
SAML实现了用户身份验证和授权。除了用户名和密码,组织还可以添加多因素身份验证选项以增强安全性。
开放授权(OAuth)协议
OAuth也是一种开放标准协议,使应用程序能够安全地交换授权信息。它允许不同的应用程序进行通信,而不会暴露用户密码。
使用Auth0认证,企业可以集成应用程序,同时集成SSO选项,如SAML、LDAP、AD等。
OpenID Connect(OIDC)单点登录协议
OpenID Connect(OIDC)是面向消费者应用程序的单点登录认证协议。这个开放标准认证协议在OAuth之上运行。
它使用具有JSON Web Tokens的身份提供者来验证用户身份。例如,它可以使用社交登录来允许用户访问购物车或其他第三方应用程序。
最后一句话
部署单点登录认证可以改善用户在不同应用程序或服务之间的导航方式。一旦通过SSO登录,您就有权限访问所有经批准的服务或应用程序,而无需单独登录每个应用程序。因此,它提供了更好的用户体验和生产力。
接下来,您可以查看user authentication platforms [Auth0, Firebase alternatives]。