基于CAS实现SSO单点登录

2,023 阅读1分钟

一、背景

单点登录Single Sign On,简称SSO,是目前比较流行的企业业务整合的解决方案之一。主要用于当公司内部存在非常之多的系统时,便于员工使用方便,统一整合登陆,即在众多系统中,登陆一次,既可以访问其他相互信任的应用系统。

二、基本流程

  • 用户访问CMS系统,根据localstorage里的token判断用户是否登陆,登录则进入相应业务模块,未登录则跳转sso登陆系统。

  • 跳转到CAS server,即SSO登录系统。 SSO系统也没有登录,弹出用户登录页登陆。

  • 用户填写用户名、密码,SSO系统进行认证后,会生成一个ST(Service Ticket),然后跳转回CMS系统,同时将Ticket作为参数传递给CMS系统。

  • CMS系统拿到Ticket后,从后台向SSO发送auth请求,验证Ticket是否有效。

  • 验证通过后,CMS系统将返回的token及用户信息写入localstorage,进入业务模块,并通过拦截器在每次请求的Header里添加auth信息作为Cookie。

  • 验证未通过,跳转无权限页面。

三、前端部分代码

拦截器部分

备注:

此方案为CAS接入,基于JWT(Json Web Token)

用户权限信息维护与CAS server端,前端使用ticket发起权限校验时一并返回角色信息

koa实现session及token登录方式:segmentfault.com/a/119000002…

前端基于VUE框架