乐趣区

关于cas:SSO单点登录

单点登录(Single Sign On)是指一次登录即可拜访相干的零碎网站。而实现的技术计划有很多种,针对不同场景需要计划也不一样。

场景

1、只有一个域名

只有一个零碎平台一个域名,如:example.com 

登录流程:

  • 登录生成 Session,将 SessionId 设置到以后域名的 cookie 中

毛病:

  • 只限于单个零碎平台

2、二级域名雷同

多个零碎平台,然而二级域名雷同,如:xxx.example.comyyy.example.com,二级域名都是 example.com 

登录流程:

  • 登录生成 Session,将 SessionId 设置到二级域名的 cookie 中
  • 同一个二级域名下的零碎,只有登录一次其余零碎即可免登

毛病:

  • 如果公司的二级域名比拟多,不同二级域之间无奈免登

3、二级域名不同

多零碎平台二级域名也不同,如:xxx.example.comxxx.test.comdemo.com,二级域名都不同,跨域无奈读取 cookie。实现计划有很多种,咱们看下 cas 实现,这里就须要一个 sso 认证核心服务来实现单点登录。

登录流程:

  • xxx.example.com 未登录跳转到 sso 服务的对立登录页 www.sso.com/login,输出账号密码创立全局会话,设置 tgc 到 cookie,并将生成 tgt 参数增加 xxx.example.com URL 上跳回
  • xxx.example.com 服务拿 tgt 参数去获取 st,做这一步次要为了平安,而后用 st 去获取用户信息,st 是一次性的,应用后生效,校验通过后设置 Session,并设置 SeesionId 到 cookie
  • xxx.test.com 校验没有 cookie 跳到 sso 服务,sso 服务发现用户曾经登录,生成 tgt 参数增加到 xxx.test.com 回跳

登出流程:

  • 登记以后服务 session,革除 cookie,并重定向 sso 服务登出页面
  • sso 服务登记全局会话,告诉其余服务销毁 session

登录页面不对立

问:如果登录页面各个系统想不一样,二级域名也应用各个系统本人的,怎么办?
答:能够每个零碎服务调用 sso 认证核心登录,登录后带着 tgt 参数重定向到不同二级域名去写入 cookie,登出也须要重定向这些域名。然而如果二级域名很多体验就很差了。

退出移动版