美文网首页
CAS 单点登录入门

CAS 单点登录入门

作者: 小P聊技术 | 来源:发表于2021-02-26 08:36 被阅读0次

    1 相同顶级域名的单点登录 SSO

    1.1 介绍

    单点登录又称之为Single Sign On,简称SSO,单点登录可以通过基于用户会话的共享,他分为两种,先来看第一
    的原理是分布式会话来实现。

    比如说现在有个一级域名为 www.p2pi.cn ,是IT类网站,但是网站又可细分为不同的领域,可以通过构建二级域名提供服务给用户访问,比如: blog.p2pi.cnwallpaper.p2pi.cndownload.p2pi.cn等等,分别为博客、壁纸、资源网站等,只要用户在其中一个站点登录,那么其他站点不用重新登录。
    也就是说,用户自始至终只在某一个网站下登录后,那么他所产生的会话,就共享给了其他的网站,实现了单点网站登录后,同时间接登录了其他的网站,那么其实这个就是单点登录,他们的会话是共享的,都是同一个用户会话。

    1.2 Cookie + Redis 实现SSO

    分布式会话后端的实现可以是基于redis的,如此会话可以流窜在后端的任意系统,都能获取到缓存中的用户数据信息,前端通过使用cookie,可以保证在同域名的一级二级下获取,那么这样一来,cookie中的信息是可以在发送请求的时候携带上的,这样从前端请求后端后是可以获取拿到的,这样一来,其实用户在某一端登录注册以后,其实cookie和redis中都会带有用户信息,只要用户不退出,那么就能在任意一个站点实现登录了。

    • 那么这个原理主要也是cookie和网站的依赖关系,顶级域名 www.p2pi.cn*.p2pi.cn的cookie值是可以共享的,可以被携带z至后端的,比如设置为 .p2pi.cn.t.p2pi.cn,如此是OK的
    • 二级域名自己的独立cookie是不能共享的,不能被其他二级域名获取,比如:blog.p2pi.cn的cookie是不能被 download.p2pi.cn 共享,两者互不影响,要共享必须设置为 .p2pi.cn

    1.3 Cookie共享测试

    前端代理里面需要设置

    cookieDomain:'.p2pi.cn;'
    

    SwitchHosts 需要配置host信息

    # Test Share Cookie 
    
    127.0.0.1   blog.p2pi.cn
    127.0.0.1   download.p2pi.cn
    

    通过访问测试,发现在用户登录之后,两个站点是能够共享用户信息的。

    只要前端网页都在同一个顶级域名下,就能实现cookie与session的共享,具体流程如下:

    在这里插入图片描述

    2 不同顶级域名之间的单点登录 CAS

    2.1 CAS引入

    当用户访问www.p2pi.cn网站登录之后,会生成cookie存在,接着去访问www.p3p.cn,这个时候由于顶级域名不同,cookie是无法携带过去的,需要你进行二次登录,如下图所示:

    在这里插入图片描述

    这个时候就需要用其他方式,实现顶级域名不同的时候,实现单点登录,这里可以使用CAS,具体流程如下:


    在这里插入图片描述

    如上图所示,多个系统之间的登录会通过一个独立的登录系统去做验证,所有系统的登录都需要经过这个系统,实现了统一登录。这个就称之为CAS系统。
    CAS全称为 Central Authentication Service 即中央认证服务,是一个单点登录的解决方案,可以用于不同顶级域名之间的单点登录。

    2.2 CAS时序图

    CAS.png

    3 相关信息

    • 博文不易,辛苦各位猿友点个关注和赞,感谢

    相关文章

      网友评论

          本文标题:CAS 单点登录入门

          本文链接:https://www.haomeiwen.com/subject/lktmfltx.html