什么是单点登录?
单点登录(SSO,Single Sign On),是在企业内部多个应用系统(如考勤系统、财务系统、人事系统等)场景下,用户只需要登录一次,就可以访问多个应用系统。同理用户只需注销一次,就可以从多个应用系统退出登录。简单来说就是,一次登录,全部登录!一次注销,全部注销!!
实现的原理
单点登录的实现原理说明如下:
1. 用户首次访问系统A时,需要进行登录。
2. 系统A带着用户登录信息重定向给认证系统。
3. 认证系统验证用户登录信息。
4. 验证通过后,返回一个token,token类似一种内部的通行证,包含了用户身份信息、登录状态和过期时间,在各个系统间共享。
5. 认证系统带着token重定向给系统A,得知用户是已登录状态。
6. 系统A向用户返回请求的资源。
7. 用户访问系统B时,需要进行登录。
8. 系统B通过共享的token,得知用户是已登录状态。
9. 系统B向用户返回请求的资源。
Token是有时效性的,如果用户长时间没有操作,token将会过期。
Token过期后用户再次访问系统A、系统B时,登录状态已失效,需要重新登录。
对于注销场景,与上述流程类似。
用户主动从系统A注销时,系统A调用认证系统,清除token。
此时用户再访问系统A、系统B时,通过共享的token得知用户是已注销状态,需要重新登录。
总结
单点登录通过在用户和系统之间引入认证系统。
以往用户需要分别对接各个应用系统进行登录/注销,现在用户只需要单独对接认证系统进行登录/注销。
登录状态在各个应用系统间共享,体现了把简单留给用户,把复杂留给后台系统的设计理念。极大节省了用户时间,提高了用户体验。