SSO单点登录
一、SSO 简介
单点登录(Single Sign On,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。
单点登录解释:
- 一次登录,让其他项目共享登录状态
- 本质:使用特定技术在分布式项目中模拟 HttpSession 功能.
- 技术选型:Redis+Cookie 模拟 HttpSession 功能
二、传统项目和分布式项目登录功能对比
2.1 传统项目
2.2 分布式项目
三、使用 Redis+Cookie 模拟 Session 步骤
- 第一次请求时 Cookie 中没有 token
- 产生一个 UUID,把”token”做为 Cookie 的 key,UUID 做为 Cookie 的 value
- 如果希望类似往 Session 存储内容,直接把 UUID 当作 redis 的 key(个别需要还需要考虑 key 重复问题.),把需要存储的内容做为 value.
- 然后以UUID即Cookie的Value为Redis的key,将需要全局携带的信息作为Value存储在Redis中即可,其他微服务即可通过Cookie从Redis中获取全局微服务共享的信息了。如单点登录时的用户登录信息。
- 把 cookie 对象响应给客户端浏览器即可