zoukankan      html  css  js  c++  java
  • CAS企业级单点登录原理

    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步)

  • 相关阅读:
    程序员这生必须掌握的两种图形
    用一张组织架构图说清楚类和对象
    简单工厂、工厂方法、抽象工厂的比较与分析
    rabbitmq系列(一)初识rabbitmq
    【最新】经典面试100问,附答案
    使用wordPress搭建个人博客
    调试接口你还在用postman吗
    Token ,Cookie、Session傻傻分不清楚?
    你不可不知的自定义注解
    使用aop加解密http接口
  • 原文地址:https://www.cnblogs.com/AnXinliang/p/10533307.html
Copyright © 2011-2022 走看看