• cas单点登录原理


    什么是单点登录

    单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。

    SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    应用场景

    假设你正在腾讯网首页浏览某则新闻想收藏它

    你点击收藏按钮

    网站提示你需要登录

    你扫码或输入用户名密码登录

    浏览器跳转到你之前浏览的页面

    并提示你收藏成功

    看完新闻你突然发现勇士队的比赛要开了

    你可是勇士的忠实球迷

    买了勇士的vip

    此时你从浏览器打开腾讯体育

    跳转到页面

    你发现右上角你的会员专属图标在闪烁

    然后你打开比赛沉浸之中

    CAS单点登录

    CAS单点登录是单点登录的一种,它是基于Cookie实现的。

    重要概念

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

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

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

    CAS单点登录时序图

     主要流程分析

    假设服务a与服务b存在单点登录

    ——————————————————————

    浏览器请求服务a的资源(第一次)  未携带也不存在任何认证信息

    服务a的后端的response将浏览器重定向到认证中心 携带跳转地址

    登录认证中心

    认证中心的response将浏览器重定向到第一次请求a资源的地址并附上ticket 携带CASTGC

    浏览器请求a资源的地址+ticket 

    服务a利用ticket到认证中心进行验证

    认证中心给服务a返回认证成功信息

    服务a给浏览器发送重定向response将浏览器重定向到第一次访问服务a的地址,并设置JSESSIONID

    浏览器请求服务a地址 携带JSESSIONID

    服务a验证session有效并返回请求资源

    ——————————————————————

    浏览器请求服务a的资源(第二次) 已存在JSESSIONID

    服务a验证session有效并返回请求资源

    ——————————————————————

    浏览器请求服务b的资源(第一次) 

    服务b的response将浏览器重定向到认证中心 携带跳转地址

    浏览器请求认证中心地址 携带CASTGC(访问服务a生成)

    认证中心发现有TGC(已认证),response将浏览器重定向到服务b 携带ticket

    浏览器请求服务b+ticket

    服务b利用ticket到认证中心进行验证

    认证中心给服务b返回认证成功信息

    服务a给浏览器发送重定向response将浏览器重定向到第一次访问服务b的地址,并设置JSESSIONID

    浏览器请求服务b地址 携带JSESSIONID

    服务b验证session有效并返回请求资源

  • 相关阅读:
    JavaScript 判断对象中是否有某属性
    微信小程序form表单提交到数据库
    'vue' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    使用vue-cli脚手架自动化搭建一个vue项目
    css经典布局——头尾固定高度中间高度自适应布局
    小程序weui官网:https://developers.weixin.qq.com/miniprogram/dev/extended/weui/ 小程序使用weui 库
    HTML5终极备忘大全 一、文字备忘之标签
    JS正则表达式验证数字非常全
    Python3 PIL库问题:ImageChops.difference返回None
    一些windows批处理脚本
  • 原文地址:https://www.cnblogs.com/jugglee/p/10570201.html
Copyright © 2020-2023  润新知