• CAS企业级单点登录原理


    https://blog.csdn.net/anumbrella/article/details/80821486

    1、 单点登录概述

    1.1、 什么是单点登录?

    单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    1.2、 什么是CAS

    CAS框架:CAS(Central Authentication Service,即:统一认证服务)是实现SSO单点登录的框架。

    1.3、 CAS框架结构

    CAS分为两部分,CAS Server和CAS Client。

    CAS Server用来负责用户的认证工作,就像是把第一次登录用户的一个标识

    存在这里,以便此用户在其他系统登录时验证其需不需要再次登录。

    CAS Client就是我们自己开发的应用程序,需要接入CAS Server端。当用户

    访问我们的应用时,首先需要重定向到CAS Server端进行验证,要是原来登陆过,就免去登录,重定向到下游系统,否则进行用户名密码登陆操作。

    1.4、 CAS3个术语

    Ticket Granting ticket (TGT) :可以认为是CAS Server根据用户名密码生成的一张票,存在Server端

    Ticket-granting cookie (TGC) :其实就是一个Cookie,存放用户身份信息,由Server发给Client端

    Service ticket (ST) :由TGT生成的一次性票据,用于验证,只能用一次。相当于Server发给Client一张票,然后Client拿着这个票再来找Server验证,看看是不是Server签发的。

    1.5、 CAS处理流程

    CAS处理流程图,如下图所示:

    1、 用户访问网站,第一次来,重定向到 CAS Server,发现没有cookie,所以再重定向到CAS Server端的登录页面,并且URL带有网站地址,便于认证成功后跳转,形如 http ://cas-server:8100/login?service=http ://localhost:8081

    注意:service后面这个地址就是登录成功后要重定向的下游系统URL。

    2、 在登陆页面输入用户名密码认证,认证成功后cas-server生成TGT,再用TGT生成一个ST。 然后再第三次重定向并返回ST和cookie(TGC)到浏览器

    3、浏览器带着ST再访问想要访问的地址http ://localhost:8081/?ticket=ST-25939-sqbDVZcuSvrvBC6MQlg5

    注意:ticket后面那一串就是ST

    4、浏览器的服务器收到ST后再去cas-server验证一下是否为自己签发的,验证通过后就会显示页面信息,也就是重定向到第1步service后面的那个URL

    首次登陆完毕。

    5、再登陆另一个接入CAS的网站,重定向到CAS Server,server判断是第一次来(但是此时有TGC,也就是cookie,所以不用去登陆页面了),但此时没有ST,去cas-server申请一个于是重定向到cas-server,形如:http: //cas-server:8100/login?service=http ://localhost:8082 && TGC(cookie) (传目标地址和cookie)

    6、cas-server生成了ST后重定向给浏览器http ://localhost:8082/?ticket=ST-25939-sqfsafgefesaedswqqw5-xxxx

    7、浏览器的服务器收到ST后再去cas-server验证一下是否为自己签发的,验证通过后就会显示页面信息(同第4步)

  • 相关阅读:
    window安装配置 zookeeper 单机模式
    Gradle安装配置
    Window安装配置Redis
    springBoot2.0 配置@ControllerAdvice 捕获异常统一处理
    java中的String,StringBuffrer,Stringbuilder的区别
    springBoot2.0 配置shiro实现权限管理
    Vue双向绑定实现原理demo
    springBoot2.0 配置 mybatis+mybatisPlus+redis
    vue-cli3.0 使用图形化界面创建和管理项目
    vue-cli3.0 脚手架搭建项目
  • 原文地址:https://www.cnblogs.com/h-c-g/p/10850681.html
Copyright © 2020-2023  润新知