每日技术干货,第一时间送达!
-
用户输入网址进入业务系统 Protected App,系统发现用户未登录,将用户重定向到单点登录系统CAS Server,并带上自身地址service参数 -
用户浏览器重定向到单点登录系统,系统检查该用户是否登录,这是SSO(这里是CAS)系统的第一个接口,该接口如果用户未登录,则将用户重定向到登录界面,如果已登录,则设置全局session,并重定向到业务系统 -
用户填写密码后提交登录,注意此时的登录界面是SSO系统提供的,只有SSO系统保存了用户的密码, -
SSO系统验证密码是否正确,若正确则重定向到业务系统,并带上SSO系统的签发的ticket -
浏览器重定向到业务系统的登录接口,这个登录接口是不需要密码的,而是带上SSO的ticket,业务系统拿着ticket请求SSO系统,获取用户信息。并设置局部session,表示登录成功返回给浏览器 sessionId(tomcat中叫JSESSIONID) -
之后所有的交互用 sessionId与业务系统交互即可
-
用户在某网站上点击使用微信授权,这里的某网站就类似业务系统,微信授权服务器就类似单点登录系统 -
之后微信授权服务器返回一个确认授权页面,类似登录界面,这个页面当然是微信的而不是业务系统的 -
用户确认授权,类似填写了账号和密码,提交后微信鉴权并返回一个ticket,并重定向业务系统。 -
业务系统带上ticket访问微信服务器,微信服务器返回正式的token,业务系统就可以使用token获取用户信息了
-
授权码(authorization-code)
-
隐藏式(implicit)
-
密码式(password)
-
客户端凭证(client credentials)
往期推荐
SpringBoot 实现无痕调试注入器,线上问题定位的新利器
开源项目 | 一款强大的桌面远程控制软件
全新的分布式锁,几行代码搞定,简单且强大
一款开源的AI绘图神器,一句话产出专业级系统流程图!
如何在Nginx 中实现动态封禁IP
33.8k star,告别传统 CRM,一款现代化的开源 CRM 替代神器!

