CAS单点登陆的两个原理图

最近学习CAS单点登录,所以在网上找了两张比较清晰的原理图以供参考:


【CAS浏览器请求认证序列图】

其中:
*  ST:Service Ticket,用于客户端应用持有,每个ST对应一个用户在一个客户端上
* TGT:Ticket Granting Ticket,存储在CAS服务器端和用户cookie两个地方

【CAS服务器端登陆流程图】



 

3.1.1. parameters

下面的HTTP请求的参数可通过/login,这时它作为凭证索取者。他们都是区分大小写的,他们都必须处理/login

·         service[可选] -客户端尝试访问的应用的标识符。在几乎所有情况下,这将是应用的URL。请注意,作为一个HTTP请求的参数,此URL的值必须是符合RFC URL编码的描述。(详情参见RFC 1738 [ 4 ]的第2.2节)。如果没有指定service并且单点登录session尚不存在,CAS应要求具有凭证的用户发起一个单点登录session。如果没有指定service但单点登录session已经存在,CAS应显示一条消息,通知客户,这是已经登录

·         Renew[可选] -如果此参数设置,单点登录将被绕过。在这种情况下,CAS将要求客户提交证书,不论是否存在一个CAS的单点登录session。这个参数与“gateway”参数不兼容。服务重定向到/loginURI和登录表单视图,张贴在/loginURI中的值不应同时出现在“renew”和“gateway”请求参数。两个参数都设置这种行为是未定义的。CAS推荐:在实施时,如果设置“renew”参数则忽略“gateway”参数。推荐:当设置“renew”参数时,其值应该为“true”。

注:也就是说:https://server/cas/login?service=serviceUrl&renew=true&gateway=true这种参数传递是错误的,不能同时出现两个参数。

注:CAS协议允许客户端选择是否跳出单点登录,这就是renew。它允许一个客户端通知CAS服务器总是验证一个用户,不管一个单点登录的session是否存在。这是一个非常有用的属性,当一个特定的使用CAS认证机制的服务允许访问敏感资料时,它能强迫CAS重新认证一个用户,确保登录的是一个正确的用户。这时,那个应经存在的单点登录session应该是被终止的。使用这个属性通知CAS重新验证凭证时,客户端应用应该中定向用户到以下的URL上:

https://server/cas/login?service=serviceUrl&renew=true

当请求验证这个票据时,客户端可以要求CAS确保这个票据是来自一个新的认证请求。

应用场景可参见:部署的客户端集成示例bookshop,改变该参数值,体验效果。

·         Gateway[可选] -如果这个参数设定,CAS将不会向客户端索要凭据。如果客户端有一个已存在的CAS单点登录的session,或者如果单点登录session可以通过非交互方式(i.e. trust authentication信托认证)建立,CAS可以将客户端请求重定向到“service”参数指定的URL,而且还加上有效的服务票据(Service TicketST)。 CAS还可以插入一个通知页面,通知客户端一个CAS认证已经发生了。)

如果客户端没有CAS单点登录的session,并且也不可能通过非交互方式建立认证,CAS必须将客户端重定向到“service”参数指定的URL,并且不在URL后面附加“ticket”。如果“service”参数未指定但设置了“gateway”参数,CAS将认为这种行为未定义。在这种情况下推荐:如果两个参数都没有指定,CAS应要求凭据。同样这个参数与“renew”参数不兼容。如果要设置“gateway”参数,推荐设置为“true”。

注:

应用场景可参见:部署的客户端集成示例bookshop,改变该参数值,体验效果。

   总结:“renew”参数的作用:在存在SSO session的情况下client请求访问资源,是重新认证用户信息还是不用认证放这个请求过去。

gateway”参数的作用:与“renew”参数相反,“gateway=true”时是指只要存在SSO session就不用重新认证了。

Renew始终要求用户进行主认证,所谓主认证就是借助于/login进行的认证操作,此时IE用户必须手工提供自身的帐号信息。基于TGCPT的登录都不属于主认证。相比之下,gateway始终不会允许CAS服务器丢出/login登录页面给IE用户,从而不可能进行主认证。只要gateway=true则永远进不到/login登录页面,只有确认用户能从其他途径得到SSO session才可以设置true

转载于:https://www.cnblogs.com/littlehb/p/8257966.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java api帮助文档_JAVA的Swagger界面丑、功能弱怎么破?

在做CRMEB-JAVA开源商城系统时,我们团队用到了uni-app,也是时下比较流行的移动端开发技术,这里边就牵扯到了前后端全部分离的问题,一般在使用java开发前后端分离项目的时候,都会用到Swagger,Swagger 是一个…

C语言作业不足之处,C语言和汇编语言的优缺点分析-控制器/处理器-与非网

本文主要是关于汇编和 C 语言的相关介绍,并着重对汇编和 C 语言的不同及其编程技巧进行了详尽的阐述。汇编和 C 语言C 语言和汇编语言的区别在于他们之间优缺点几乎是相反的。C 语言和汇编语言的优缺点:以 c 来举例优点:c 的运行效率高&#…

python xlrd模块_python之xlrd模块

xlrd模块 一、xlrd模块 1、python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库,这两个适用于.xls格式有效 2、 xlrd模块安装 在cmd窗口 pip install xlrd 二、使用介绍 1、常用单元格中的数据类型 ♦ 0. empty&am…

set集合判断集合中是否有无元素_一文了解 JavaScript 中的 Set(集合)- 对 Set 的扩展...

阅读全文需要 4 分钟。主要介绍对 ES6 中的 Set 集合方法的扩展。阅读本文后,你能创建出对 Set 方法扩展,并且结合下期内容,将其发布到 NPM 中。往期回顾一文了解 JavaScript 中的 Set(集合)一文了解 JavaScript 中的 Set(集合)- 多种去重技巧…

站怎么点都是一样_老鼠被卡在轮胎里,像是被点了穴道一样:这可怎么办才好?...

从小就被灌输了一个思想:猫和老鼠是天敌,也没有想过这样根深蒂固的思想有一天会发生变化。直到有天偶然看到猫咪被老鼠吓到四处乱窜才觉得这一定理并非是永恒不变的,毕竟生活总是充满着惊喜与惊吓。来看看下面这个小故事,感受一下…

sql空字符串判断函数_access常用的内置函数

新朋友点“Office交流网“蓝字关注我们Access提供了几种类型的函数,可将这些函数分为以下几类:转换:把一个值转换为另一个。日期/时间:返回日期和/或时间值。判断检查:判断是否正确算术计算&a…

实验吧—Web——WP之 Guess Next Session

打开链接,他有给出查看原码的按钮,那么我们打开看看 在这个里面,如果GET的值等于session的就会给出flag 那么我们进行抓包改包 在输入框内随意输入一个值然后抓包 将password的值删去,并且将cookie后面的PHPsessid的值也删去&…

linux命令行提示符居中,linux命令行学习(54):修改提示符

提示符由环境变量PS1决定,所以,修改提示符就是修PS1的值。一、保存PS1原来的值以及恢复原值为了防止麻烦,在修改PS1的值之前,可以先将PS1的值保存起来,以备以后恢复。我们建立一个环境变量ps1执行命令:ps1&…

flask(精讲)

Flask 一:web框架Django和Flask本质 socket服务端 ?123wsgi: Web服务网关接口- wsgiref # Django内部内置模块- werkzeug # Flask安装完成后,内部默认已经安装好werkzeugfrom werkzeug.wrappers import Request, Respons…

c++builder 运行网站的api_04 将您的API Builder Docker映像发布到AMPLIFY运行时服务(ARS)...

「注:转载请注明出处,谢谢!」注意:请参考在线文档以获取最新信息。将APIBuilder应用程序部署到AMPLIFY Runtime Services在先前文章中,我们描述了如何轻松地使用API Builder Standalone创建微服务并将其打包为可在任何…

Android数据库 分页查询,Android之怎么使用SQLite数据库(增、删、改、查、分页等)以及ListView显示数据(转)...

由于刚接触android开发,故此想把学到的基础知识记录一下,以备查询,故此写的比较啰嗦:步骤如下:一、介绍:此文主要是介绍怎么使用android自带的数据库SQLite,以及把后台的数据用ListView控件显示…

go int64转string_go常见问题收录

本条文章记录本人在实际项目中遇到的实际问题,如有错误,欢迎指正,仅供参考!欢迎点赞收藏转发,转载请添加原链接声明哦!感谢您的支持。变量各种类型转换string转成intintstring转成int64int64, err : strcon…

mysql部门人员排序设计_MySQL数据库访问性能优化

MYSQL应该是最流行的WEB后端数据库。大量应用于PHP,Ruby,Python,Java 等Web语言开发项目中,无论NOSQL发展多么快,都不影响大部分架构师选择MYSQL作为数据存储。MYSQL如此方便和稳定,以至于我们在开发 WEB 程…

android如何删除项目,AndroidStudio中怎样删除项目

最近决定从Eclipse转到AndroidStudio了。虽然之前有接触过AndroidStudio,但都是为了体验一下AndroidStudio炫酷的界面,并没有深入的了解过,所以这次准备好好学习一番AndroidStudio。。。刚开始转到AndroidStudio的时候确实有很多不适应的地方…

vue点击切换类名_vue 新用户引导(vue-dirver)

最近公司经理让我在项目上做一个新用户引导,讲真这玩意我只在APP上看见过,网页上没啥功能啊,还需要引导! 没办法,刚它!!!在网上查了点资料 Vue 基本上都是 intro.js 和 driver.js 两…

c# html转为图片,C# 使用 WebBrowser 实现 HTML 转图片功能的示例代码

在 .NET 平台上,我们有多种方式可以将一段 HTML 文本转换为一张图片:HTML Renderer、SelectPdf 、Aspose.Html等。在 WinForm 程序中,每一个 System.Windows.Forms.Control 的派生类型均包含一个名为 DrawToBitmap 的方法,该方法可…

android平板 深度学习,这款叫Remix的设备,或许可以拯救安卓平板

(图片来自于魏布斯评测视频“Remix平板上手使用体验”)现今平板市场,已呈现出苹果谷歌微软三分天下之势。然而,相较于其他两者,安卓平板却并面临着严重的危机,即便自2013年第三季度,安卓平板便已超越iPad成为市场份额的…

IE8下强制浏览器用哪个IE版本渲染页面

在head中加入<meta http-equiv"X-UA-Compatible" content"IEEmulateIE10"/> 转载于:https://www.cnblogs.com/lansetuerqi/p/8288900.html

华为swot分析2020_科技口译现场:华为2020全球分析师大会

华为第17届全球分析师大会2020年5月18-20日在中国深圳举办&#xff0c;本次大会期间&#xff0c;将分享华为对于全球化合作的思考&#xff0c;如何发挥ICT技术价值应对未来世界的不确定性&#xff1b;如何持续创新为人类社会进步做贡献&#xff1b;如何推动产业发展和生态建设&…

python导出数据找不到csv_【记录】使用Python读取/导出(写入)CSV文件

想要用python处理csv文件。 去查了下&#xff0c;python中本身就自带csv模块。 然后参考在线手册&#xff1a; 去试试。 【用python生成csv】 1. 按照手册的例子&#xff0c;试了试&#xff1a;import csv with open(eggs.csv, wb) as csvfile: spamwriter csv.writer(csvfile…