单点登录SSO的含义

Posted by 汤键|兔子队列 on March 4, 2022 禁止转载
本文总共 1096 字 · 阅读全文大约需要 4 分钟

SSO 概念

  • SSO英文全称Single Sign On,单点登录,是一种身份验证解决方案
  • 是一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性
  • SSO是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统
  • 一旦验证身份,用户就可以访问所有受密码保护的资源,而无需重复登录
  • SSO 解决方案中的重要组件如下所示:

SSO 服务

  • SSO 服务是用户登录时应用程序依赖的中心服务
  • 如果未经身份验证的用户请求访问应用程序,应用程序会将他们重定向到 SSO 服务
  • 然后,该服务对用户进行身份验证并将用户重定向回原始应用程序
  • 该服务通常在专用的 SSO 策略服务器上运行

SSO 令牌

  • SSO 令牌是包含用户识别信息的数字文件,例如用户名或电子邮件地址
  • 当用户请求访问应用程序时,应用程序会与 SSO 服务交换 SSO 令牌以对用户进行身份验证

SSO 流程

  • 1-当用户登录应用程序时,应用程序会生成 SSO 令牌并向 SSO 服务发送身份验证请求
  • 2-该服务会检查用户之前是否在系统中进行了身份验证;如果是,它会向应用程序发送一个身份验证确认响应,以授予用户访问权限
  • 3-如果用户没有经过验证的凭证,SSO 服务会将用户重定向到中央登录系统并提示用户提交其用户名和密码
  • 4-提交后,服务会验证用户凭证并将肯定响应发送到应用程序
  • 5-否则,用户会收到错误消息并且必须重新输入凭证;多次尝试登录失败可能会导致服务阻止用户在固定的时间段内进行更多尝试

SSO 实现类型

  • SSO 解决方案使用不同的标准和协议来对用户凭证进行验证和身份验证
  • 1-SAML
  • SAML(或安全断言标记语言)是应用程序用来与 SSO 服务交换身份验证信息的协议或规则集
  • SAML 使用 XML(一种浏览器友好的标记语言)来交换用户标识数据
  • 基于 SAML 的 SSO 服务提供更好的安全性和灵活性,因为应用程序不需要在其系统上存储用户凭证
  • 2-OAuth
  • OAuth(或开放授权)是一种开放标准,它允许应用程序安全地从其他网站获取用户信息,而无需提供密码
  • 应用程序不是请求用户密码,而是使用 OAuth 来获得用户访问受密码保护的数据的权限
  • OAuth 通过 API 建立应用程序之间的信任,允许应用程序在已建立的框架中发送和响应身份验证请求
  • 3-OIDC
  • OpenID 是使用一组用户凭证访问多个站点的方法
  • 它允许服务提供商承担验证用户凭证的角色
  • Web 应用程序不是将身份验证令牌传递给第三方身份提供商,而是使用 OIDC 来请求附加信息并验证用户的真实性
  • 4-Kerberos
  • Kerberos 是一种基于票证的身份验证系统,可让两方或多方在网络上相互验证其身份
  • 它使用安全密码学来防止未经授权访问在服务器、客户端和密钥分发中心之间传输的标识信息