你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

单点登录的过程理解

2021-10-27 21:03:36

单点登录服务

单点登录(Single Sign On),简称为 SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。单点登录的重点不在登录一次,在于怎么将用户验证统一化管理,统一登录,统一登出。

SSO服务器

是负责管理全局会话的服务器,假设现在服务是c.com

子系统

子系统假设是整个系统的子应用模块,例如a.com,内部植入的有SSO服务的sso-client,这个sso-client与sso-server沟通完成统一管理登录状态。

登录过程

  • 在访问系统1的请求中,因为请求中没有携带a.com的cookie,所以系统认为没有用户登录,这时候系统1的server端向sso-server发送一个参数为a.com的请求
  • 在这个请求中c.com的服务端也就是sso-server发现没有携带c.com的cookie,返回一个登录页面,在这个页面中用户完成登录之后,服务端通过sso-client告知a.com的server端登录完成并且将令牌返回,这时候客户端重定向回a.com的客户端,向a.com的server端请求时返回一个注入cookie的页面,a.com的页面后续请求都将携带cookie并且能通过a.com服务的验证
  • 访问b.com的服务端,发现没有对应的cookie,然后b.com的服务端告知将页面重定向到c.com的客户端网页,此时c.com的请求已经携带cookie了,并且通过验证后告知了b.com的服务端再将页面重定向回b.com的网页,b.com的网页也将被服务端注入一个自己的令牌,b.com后续的请求都将携带cookie并且通过b.com服务的验证

注销登录过程

  • 注销主要问题在于怎么通知每一个子服务退出登录,每一个子服务的登录失效都由sso-server控制,a.com、b.com在对方执行了登出操作后想要得知这一消息,就需要与sso-server沟通,这个可以是sso-server主动通知,也可以是子系统再次访问时才能获悉(例如每次子系统的请求都向sso-server请求验证一次)