一、概念介绍
1.1 SSO:单点登录
- SSO(Single Sign-On,单点登录)
是一种身份验证方法,允许用户通过身份提供商(IdP)进行一次身份验证即可访问多个应用程序,它的核心目标是减少用户在不同系统之间重复输入用户名和密码的繁琐操作,提高用户体验和工作效率
图片
如图,SSO 是抽出登录的模块,App1,App2 只负责应用模块,SSO只负责登录模块。App1,App2 需要登录时,将跳到 SSO 系统,SSO 系统完成登录,其他的应用系统也就随之登录了。
举例:想象一下,在一个大型企业中,员工可能需要使用多个内部系统,如邮件系统、办公自动化系统、财务系统等。如果没有 SSO,员工每次访问不同的系统都需要分别输入用户名和密码进行登录,这不仅浪费时间,还容易因为记忆多个密码而出现混淆或遗忘。而有了 SSO,员工只需在一个统一的身份验证平台上登录一次,就可以无缝地访问所有这些相关的系统。
1.2 OAuth:开放授权
- OAuth(Open Authorization,开放授权)
是一种授权协议,它允许用户授权第三方应用访问他们在某一服务提供商处的某些特定资源,而无需将自己的用户名和密码提供给第三方应用。
图片
举例:比如你想使用一个第三方的图片编辑应用来处理你在某云存储服务上的照片。通过 OAuth,你可以在不向图片编辑应用透露你的云存储服务密码的情况下,授权它访问你指定的照片资源。这样既保证了资源的安全性,又方便了第三方应用的使用。
二、SSO 技术原理
2.1 SSO 核心构成
- 中心认证服务器
SSO 系统通常包含一个中心认证服务器,它负责对用户的身份进行验证。当用户首次访问某个应用系统时,该应用系统会将用户重定向到中心认证服务器进行登录
- 票据(Ticket&#x