zoukankan      html  css  js  c++  java
  • 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有效并返回请求资源

  • 相关阅读:
    [转载]C# TCP实现多个客户端与服务端 数据 与 文件的传输
    【转载】心跳机制
    paip.web数据绑定 下拉框的api设计 选择框 uapi python .net java swing jsf总结
    paip.复制文件 文件操作 api的设计uapi java python php 最佳实践
    paip.php 与js 的相似性以及为什么它们这么烂还很流行。。
    paip.重装系统后firefox火狐收藏夹的恢复
    paip.截取字符串byLastDot方法总结uapi python java php c# 总结
    paip.gui控件form窗体的原理实现以及easyui的新建以及编辑实现
    paip.python php的未来预测以及它们的比较优缺点
    paip.快捷方式分组管理最佳实践ObjectDock
  • 原文地址:https://www.cnblogs.com/jugglee/p/10570201.html
Copyright © 2011-2022 走看看