什么是单点登录 (SSO)?SSO 是如何工作的?

Art Wittman | 内容总监 | 2024 年 10 月 22 日

我们都这样做,我们知道我们不应该这样做。我们的手机上有那个文件,或者钱包里有一张纸,或者更糟的是,卡在我们键盘的背面的一张便条,上面列出了我们的用户名和密码。然后有使用我们的狗的名字以及一些数字和一些标点符号的习惯。

事实是,网络世界的现代生活意味着我们必须以某种方式跟踪数十个账户名称和密码。除非你有非凡的记忆,否则它们不会都是不同的。它们大多数都很简单,很旧,如果有人真的尝试过,就很容易猜到。这是给潜在网络罪犯的礼物,它是 100% 可以避免的。

什么是 SSO(Single Sign On,单点登录)?

单点登录技术是密码问题的部分解决方案,困扰着我们的工作和个人生活。它允许我们登录一次到身份验证服务器,然后代表我们颁发证书,作为参与应用程序的验证凭据。

很有可能你已经使用了这样的系统。如果您选择“使用 Apple 登录”,或者选择 Google 或其他大型供应商的身份管理系统,而不是为 Web 应用程序创建新密码,则使用 SSO。在企业中,SSO 也越来越多地被用于其他授权技术,以保护企业系统,并使密码维护能够在数十到数百个应用程序和服务中持久进行。

关键要点

  • SSO 减轻了个人记住许多口令和用户名组合的负担。
  • SSO 让 IT 团队只需使用一个身份验证系统即可管理整个组织,从而简化工作。
  • SSO 还允许应用程序根据应用程序需要运行的服务(例如管理网络连接或检查软件更新的服务)对用户进行身份验证。

SSO 说明

单点登录的概念很简单:您无需为所使用的每个应用程序提供用户名和密码或以其他方式标识自己,只需向验证服务器提供一次该信息。完成此操作后,当您访问加入 SSO 系统的任何应用程序时,验证服务器将代表您发送身份证书。

SSO 可减少您需要知道的用户名和密码数量。它还可以大大减少您被要求提供身份凭证的次数,使您更容易使用各种应用程序,并且更有可能创建更强大的密码。从企业 IT 规划者的角度来看,SSO 允许他们更新安全过程并部署验证服务器所使用的更高级的验证机制,让所有参与的应用程序无需修改即可享受更安全的验证。

在您的个人生活中,使用主要供应商的身份验证系统,而不是在每个应用程序上手动设置新的用户名和密码具有几个好处。一个主要的好处是,提供联合身份管理服务的大型供应商善于保护密码和客户委托给他们的其他个人数据。具有新应用程序的新供应商可能无法很好地保护您提供的身份证明。

SSO 是如何工作的?

SSO 通过要求用户向 SSO 服务器(而不是单个应用程序)验证自身来工作。完成验证过程后,SSO 服务器将向已验证的个人希望访问的应用程序提供证书。证书用于验证用户的身份。

证书通常仅在一定时间内有效,并且通常与单个用户自己验证的系统相关联。要参与,必须以使其能够使用 SSO 服务的方式编写应用程序。在企业中,IT 规划者通常会选择一个 SSO 模型,然后要求应用程序使用它来验证员工的身份。对于创建自己的用户凭证系统信息库或可能不支持通用 SSO 体系结构的较旧单体应用程序,这可能是一个问题。

SSO 如何简化数字访问图表
以下介绍 SSO 如何提高安全性、改善用户体验并提高工作效率。

公用 SSO 配置类型

通用 SSO 组件和概念具有多种特征,包括集中式身份管理、标准化和强大的安全措施。一个关键是互操作性,这些系统需要协同工作,以确保身份验证过程对用户友好,并在多个应用程序中平稳运行。实现这一目标后,IT 团队会发现他们在强制使用更安全的密码和双因素身份验证时面对的阻力更小了。

  • SAML。安全断言标记语言 (Security Assertion Markup Language) 是一种技术规范,用于描述用于向应用程序验证用户的文档结构。SAML 使用广泛接受的 XML 标准来指定身份服务器(也称为身份提供者)创建并发送到应用程序的文档结构。在 SSO 术语中,这些应用程序通常称为“服务提供商”。使用 SAML 的任何身份提供程序都将创建身份验证凭证,可供 SAML 识别的任何应用使用,使其成为互联网应用的理想选择。

    SAML 没有提供一种机制来确保应用程序收到的身份验证信息未更改。这是由其他技术处理的。

  • Kerberos。作为 Project Athena 的一部分,Kerberos 在 20 世纪 80 年代后期在 MIT 创建,是一个完整的验证和授权体系结构。Project Athena 试图建立一个计算机资源网络,供麻省理工学院的学生在校园内普遍使用。Kerberos 最初使用数据加密标准 (Data Encryption Standard,DES) 对验证服务器与应用程序之间传递的消息进行加密。它使用 48 位对称密钥,这意味着相同的密钥用于加密和解密消息。当时,DES 是 National Institute of Standards and Technology (NIST) 保存的一种高度安全的加密形式。

    目前,Kerberos 使用高级加密标准 (Advanced Encryption Standard,AES),该标准取代了 NIST 加密标准中的 DES。AES 指定更长的密钥(长度高达 256 位),并允许进行多轮加密,这使得系统很难破解。

    由于 Kerberos 使用对称密钥加密,因此它需要受信任的第三方来管理密钥,这使得它更适合可以严格建立使用域的企业应用,通常仅限于企业的 LAN 和 VPN。虽然 Kerberos 可以在互联网上使用,但通过使用不同的身份验证标准(公钥加密)来启动该过程,因此很少采用这种方式。Kerberos 可以使用自己的凭证格式,也可以配置为使用 SAML。它仍然很受欢迎,包括 Microsoft,它默认为 Kerberos,而不是企业网络的不太安全的 NTLM 验证系统。

  • OAuth。作为不包含验证框架的开放授权框架,当 Internet 应用程序需要代表用户访问受保护服务的资源时,OAuth 是默认系统。大多数云技术提供商(包括 Oracle 及其 Oracle Cloud Infrastructure (OCI) )都使用 OAuth 来管理对云技术资源的访问。Oracle 还提供库和服务,可帮助开发人员轻松创建自己的使用 OAuth 的应用。

    以下是 OAuth 系统的核心组件:

    • 客户机系统,通常为最终用户应用程序,它可能希望访问 Internet 上提供的各种服务的资源。
    • 授权服务器,用于接收令牌请求,该令牌将允许客户机访问受保护的服务。授权服务器将接收令牌请求以及客户端的验证证书。它将发放已由资源所有者授权的访问令牌。
    • 资源服务器,它包含客户机要使用的信息或提供服务。当它从客户端收到有效的访问令牌时,它提供数据或服务。

    访问令牌可以指定各种访问授权类型。各种类型的发行取决于所需的信任级别和客户端设备的性质。例如,智能电视可能会收到与笔记本电脑不同的访问授权。

  • OpenID Connect (OIDC)。OpenID Connect 是为与 OAuth 一起使用而构建的身份管理系统。OIDC 和 OAuth 共同为基于 Web 的应用程序和 Internet 原生系统(例如移动应用程序)提供完整的 SSO 环境。OIDC 不使用 SAML 作为返回身份证明信息的基础,而是使用称为 JSON Web Tokens(如下所述)的 JSON 文档和 RESTful 协议;两者都是互联网的原生文档,开发人员可以轻松使用。

    OIDC 不像 Kerberos 那样使用对称密钥加密,而是使用公钥加密,这样可以更好地用于互联网等无域网络。

  • 智能卡验证。OIDC 等系统使用公钥加密来确保只有预期的收件人才能在身份验证期间和验证后查看与身份管理提供程序交换的数据。公钥加密是不对称的,涉及公钥,公钥可用于加密要发送到客户端或服务器的消息,以及私钥,该私钥是秘密的,必须用于解密消息。

    通常,私钥存储在用户的设备上。大多数笔记本电脑都配备了防篡改芯片,该芯片使用可信平台模块 (Trusted Platform Module,TPM) 技术来解密用于系统的消息。Apple 和 Android 手机使用不同但相似的系统。Apple 的系统被称为 Secure Enclave,Android 则称为 Android Knox。这些技术允许设备向任何正确请求它的系统提供其公钥,并将使用其从未泄露的私钥来解密它收到的消息。

    这些系统的优势在于该设备的用户不需要了解其系统上的加密是如何处理的。缺点是用户拥有的每个设备都将有一个唯一的公钥/私钥对,因此这些设备在加密过程中是单独知道的。如果笔记本电脑或手机丢失或被盗,如果小偷知道所有者的密码,其加密系统将无法阻止访问。

    使用与信用卡中嵌入的芯片相似的智能卡,用户可以使用一组密钥进行身份验证,无论他们使用的设备是什么。卡上的芯片是自己的微处理器,因此必须将其插入读卡器中,或者使用 RFID 技术(例如近场通信)激活和供电。智能卡的安全保护与 TPM 芯片相似。

  • 企业 SSO。具有复杂应用基础设施的大型组织可以创建仅限于其网络范围的企业 SSO 或 eSSO 系统。员工会很高兴,他们只需要知道一两个密码和用户名就可以访问其工作所需的应用,而企业也将受益于更好、更易于管理的系统和数据安全性。这些 eSSO 系统可能更喜欢对称密钥加密,因为它能够更轻松地撤销密钥,也更喜欢 SAML,因为它是人人熟悉的格式。这些系统通常采用各种多因素身份验证来提高端点安全性。

    随着 SaaS 应用程序越来越普遍,企业可以选择转向像 OAuth 这样的在互联网上更常用的系统,或者要求 SaaS 应用程序符合公司选择的 eSSO 框架。SAML 可在企业网络和互联网中使用。许多 SaaS 应用程序将支持这两种用户验证框架。

  • Web SSO。Web 应用程序可能会更好地使用或仅限于使用 OAuth 来授权用户活动,而 OpenID Connect 则可用于验证用户。如果互联网是传输方式,Web SSO 系统的组件则被定义为 IETF 标准,往往以 Web 开发人员期望和欣赏的方式工作。此外,身份验证与授权紧密结合,并使用基于 JSON 的 REST 协议和信息标准等访问方法来创建完整、可扩展的系统。Web SSO 系统还旨在跨域和大规模工作。

  • LDAP。轻量级目录访问协议于 20 世纪 90 年代首次推出,旨在让用户在本地网络上找到他们可能想要使用的资源,例如服务器或打印机。它设想一个权威服务器,可了解域内的所有资源。因此,它不适合互联网使用。

    由于 LDAP 用于授予对网络资源的访问权限,因此它包括一个用户验证系统,该系统中的用户凭证存储在 LDAP 服务器上。其用户身份验证机制并不强;例如,它以明文形式在网络中发送密码。加密可以由其他协议(如 SSL/TLS)提供。

    LDAP 具有灵活且可扩展的优点,因此企业可以使用它来存储有关员工的其他信息,例如组织角色和组成员资格,以及办公地点和电话号码等属性。但是,企业通常需要更细粒度的访问权限(例如,关于哪些人可以访问某些数据的信息),而这些访问权限无法由 LDAP 轻松管理。

  • JWT。JSON Web Tokens 是紧凑的文档,用于以结构化方式安全地在各方之间传输信息。它们满足了与 SAML 文档相同的需求,但格式更简洁,这使得它们适合包含在 URL 中。JWT 使用公钥加密技术进行加密签名,以确保真实性。在 Open Authentication (Oath) 中,用户经过验证后,身份服务器将返回 JSON ID 标记。

    访问受保护资源的授权请求随后将返回 JSON 访问令牌,然后该令牌必须包含在对资源服务器的每个请求中。此类交易将客户端的状态(在本例中为已验证和已授权)作为每个请求的一部分进行传输,从而使其成为所谓的 RESTful 交换。REST 代表“表示状态传输”,这是有益的,因为资源服务器不需要与希望使用服务器资源的每个客户端建立和维护会话。

    JWT 是明文文档,因此应该通过 HTTPS 加密的连接使用它们。令牌通常设计为不包含敏感数据,例如个人可识别信息。由于每个令牌都按照设置公钥证书格式的国际标准 X.509 进行签名,因此该签名将由资源服务器进行验证,以确保令牌没有被篡改。JWT 是 OAuth/OpenID 验证和授权系统的组件。它们专为 Web 应用而设计,可以很好地扩展,适合跨域使用。

SSO 的优势

IT 和安全专业人员往往是 SSO 的粉丝;他们明白这意味着集中用户身份验证,保护潜在的敏感信息,以及管理与企业系统和应用程序的集成。他们通常乐于处理所需的用户培训,并解决持续的监控和维护问题。这是该技术带来的多项重大优势以及直接结果。

  • 集中访问。SSO 系统简化了管理用户账户和访问大多数企业和互联网云技术提供商维护的许多应用的负担。可以在一个位置授予和撤消用户对所有应用程序的访问权限。例如,如果员工离开组织,管理员不需要为每个应用程序分别删除员工的凭据。安全专家还可以在一个位置对验证系统进行更改,而无需对每个应用程序进行更改。
  • 提高安全性。SSO 大大减少了员工必须提交到内存的用户名和密码对的数量。随着这种负担的减轻,通过多因素身份验证和强密码策略来提高身份验证交换的安全性是合理的,尤其是对于企业而言。
  • 提高员工效率。当 SSO 就位时,员工将难以更少地记住用户名和密码。验证后,用户通常无需重新验证即可访问应用。因此,SSO 应该让员工更快地完成预期工作。根据实施详细信息,他们可能仍然需要对其使用的应用程序进行验证,但至少他们只需要记住他们的 SSO 身份证明。
  • 减少密码疲劳。让我们面对现实吧,没有人想处理几十个用户名和密码对。记住复杂的密码(尤其是需要频繁更改的密码)会让人感到沮丧,并导致人们使用容易猜到的密码、在多个账户中重复使用相同的密码或采用便签方法管理密码。SSO 减轻了负担。
  • 法规合规性。SSO 可以通过刚才介绍的集中访问管理的优势来简化法规合规性。审计和修复也进行了简化,因为只有一个 SSO 框架可供检查。
  • 简化集成。典型的企业管理着多个数据库实例中多达 PB 级的数据。不难想象,制造数据、供应链数据、财务数据、营销数据、销售数据等都分别存储在不同的数据库中。例如,销售人员可以轻松了解访问库存数据对销售人员的帮助。CRM 系统可以访问该数据,但库存管理数据库和 CRM 系统必须认识每个销售人员。SSO 可以提供请求者必要的验证身份,访问令牌可以帮助确定每个角色的人应该被允许查看哪些数据。如果没有 SSO,CRM 和库存系统之间的集成将更加难以创建和管理,并将涉及用户的另一个身份验证步骤或库存数据可能较弱的安全性。
  • 简化用户体验。减少对企业应用和 Web 应用的验证需求通常会带来更好的用户体验。由于许多人在个人在线活动中习惯使用 SSO,因此通常只需要接受少量培训。

SSO 和安全:SSO 是否安全?

首先,没有绝对的安全,只有安全程度的高低。也就是说,任何商业上可用的 SSO 框架都将是高度安全的——这是该技术的一部分。一般来说,SSO 系统本身并不是一个全面的安全解决方案。相反,它是安全环境的重要组成部分。它作为验证用户和向应用程序和其他资源提供系统提供验证凭证的系统,是总体安全策略的关键部分。

SSO 和隐私

SSO 有利于提高隐私性,但每次实施的效果都会有所不同。例如,SAML 和 JWT 回复至少将包含验证断言。它们还可能包含信息,例如适用于用户的组和角色,以及实施者选择提供的其他数据。

在基于 Web 的零售或社交媒体中,了解用户的年龄、位置和其他个人信息可能对应用程序很有用。一般来说,如果您向 Facebook 证明了此类个人信息,一般可以默认 Facebook 会将其提供给其他人,除非隐私政策表示不会,或者应用允许您明确表示不要共享某些信息。

在企业中,SSO 系统应返回验证断言以及用户在组织中的相关角色。提供用户工作的公司办公室和业务电话号码也很有用。其他信息应该更难获得。默认情况下提供的内容通常由 HR 策略决定。

SSO 用例

SSO 旨在为用户提供对多个应用程序和系统的无缝访问,仅使用一组登录凭证。虽然具有严格监管合规要求的组织可能会发现他们需要实施额外的安全措施,但 SSO 有很多用例。其中包括:

  • 企业应用。企业通常管理数十到数百个应用程序,每个应用程序都需要对用户进行验证。对于用户或 IT 团队而言,基于每个应用程序创建和维护身份管理系统并不实用。SSO 提供一种方法来对员工进行一次身份验证,然后根据该一次性身份验证管理其使用资源的授权。

    验证断言通常仅在特定时段和单个系统上有效。SSO 系统可以保存关于公司内每个员工角色的更细粒度详细信息,应用程序或授权系统可以使用这些详细信息来限制对应用程序、数据和其他资源的访问。

  • 基于云技术的应用。对于商业和消费者而言,基于云技术的系统与针对企业的 SSO 系统具有不同的识别和授权需求。对于消费者来说,便利性可能规定一旦用户通过身份验证,他们就可以从该设备永久使用服务。例如,登录到 Gmail 后,您就可以使用它和其他 Google 应用程序(例如 Docs 或 Sheets),无需重新验证。在商业领域,提供 SaaS 应用或平台以及基础设施即服务的云技术服务提供商也可以在用户身份得到确认后允许其广泛访问服务。身份验证是大型服务授权方案中的第一步,该方案允许用户一次登录并使用各种服务。服务访问权限将取决于每个应用程序中每个用户的角色 - 也许他们是某个应用程序的管理员,一秒钟的开发人员,三分之一的最终用户。访问也取决于组织已支付的费用。

SSO 实施

不要让缺乏内部安全专业知识阻碍您采用 SSO。托管安全服务提供商和 SSO 供应商实施团队可为您提供帮助。许多企业选择使用第三方提供商提供的 SSO 服务。该公司受益于专业知识、高级安全功能和可扩展性,IT 团队能够专注于帮助业务发展,同时将 SSO 管理留给专家。

在高层次上,执行需要三个主要内容。

  1. 选择和分发客户机验证系统,用于安全地收集最终用户输入,例如用户名和密码。即使在企业中,这些系统也通常以网页形式提供,因此在设备之间保持身份验证流程一致非常容易。通常,在企业中,用户必须在公司的网络上或通过 VPN 访问它。此要求允许组织创建单一的权威 ID 管理系统。
  2. 设置 ID 管理器,用于验证用户并代表组织颁发证书。在大多数商店中,ID 管理器要么是系统的一部分,该系统还提供用户授权令牌,让应用程序知道个人可以在应用程序中做什么,要么与授权服务器紧密联系。
  3. 配置或修改应用程序:使用来自 SSO 和授权系统的证书和令牌,而不是保留自己的用户 ID 系统。

SSO 优秀实践

无论您是在内部实施,在第三方的帮助下,还是采用即服务模式,都有成功的关键。其中包括:

  1. 强制多因素验证 (MFA)。正如 SSO 允许组织从单个框架实施密码策略一样,它还可以让组织实施更强大的身份识别技术,统称为多因素身份验证。这些因素可以包括智能卡,在智能手机上运行的应用程序,各种形式的生物识别身份验证等。
  2. 使用基于角色的访问控制 (Role-based Access Control,RBAC)。验证用户仅解决了管理对企业资源的访问问题的一部分。另一个挑战是限制用户只能访问他们被允许使用的资源。通过建立营销、财务、制造和销售等组,并通过在每个组中为其成员建立角色,访问控制可以进行微调,并保存在一个可管理的中心位置。
  3. 审计和更新标准。以单一机制框架为中心的认证大大简化了审计和更新过程,以满足新标准的出现。
  4. 实施角色和权限管理。SSO 属于零信任理念。用户只能访问其角色明确需要的那些资源,并且只能查看他们有明确权限查看的数据。
  5. 遵守数据隐私法律。使用 SSO 框架并不能确保遵守数据隐私法,但可以使此类合规性更容易实现和演示。

利用 Oracle 解决方案安全、轻松地控制访问

您是否需要管理 Oracle Cloud Infrastructure (OCI) 以及云端和本地应用的用户身份和访问?对于采用零信任安全策略的组织,Oracle Cloud Infrastructure Identity and Access Management (IAM) 提供您所需的管理和集成工具。

是否希望部署具有多因素验证支持的通用验证器?Oracle Access Management 提供了一个灵活的系统,可以在本地或云端运行。企业可以通过这些策略满足用户需求,帮助用户随时随地通过任意设备安全地访问数据。与 MFA 一起,Oracle 的 IAM 产品组合支持可信设备 SSO 和应用 SSO,这些都是实现零信任架构原则和要求所必需的。

由于企业依赖更多的应用程序,而应用程序依赖更多的服务和数据源来完成工作,因此用户身份验证和授权变得越来越难以管理。SSO 框架可简化身份验证和授权流程,从而简化最终用户和应用架构师的生活。

AI 可以通过生物特征验证、异常检测、预配和其他功能显著增强 SSO 系统的功能和安全性。了解如何安全、经济高效地启动和运行 AI 计划。

SSO 常见问题解答

SSO 代表什么?

SSO 代表单点登录。

我的 SSO 账户是什么?

SSO 账户是一种集中身份验证服务,允许您使用一组登录凭证来访问多个应用和系统。这意味着您只需记住一个用户名和密码即可访问您的组织提供的所有服务和资源。SSO 账户简化登录过程,提高安全性,并让用户更轻松地访问完成作业所需的信息和工具。

SSO 的示例是什么?

在消费者领域,Amazon、Google、Meta 和 Microsoft 等大型供应商可以充当其他应用的用户凭证来源。如果显示的对话框允许您输入凭据或使用上述服务之一登录,则您正在使用 SSO。

注:为免疑义,本网页所用以下术语专指以下含义:

  1. 除Oracle隐私政策外,本网站中提及的“Oracle”专指Oracle境外公司而非甲骨文中国 。
  2. 相关Cloud或云术语均指代Oracle境外公司提供的云技术或其解决方案。