概念
角色:
原则:
原理
两个部分组成:
协议流程:
最重要的部分为ticke
两种实现方式:
(1)
(2)基于代理的实现:
重点1:着重需要考虑的安全性问题:
重点2:怎样在cas server中设置和数据库连接
自己的理解:
cas v2的实现方式:cas流程中最重要是依靠ticket和session&cookie来实现的,第一阶段,brower访问集成了cas client的app1,跳转到cas server,认证完毕后,生成一张ticket,并把这张ticket id发给brower,并跳转至app1;第二阶段,brower把ticket id发给app1,app1把ticket id发给cas server进行确认,确认ok就可以登录,并建立局部的session通信;第三阶段,登录之后,如同普通brower和app进行校正登录;
cas v3的实现方式,就是通过proxy来访问其他app,就是在app1中直接登录app2;
归根结底是通信双方有一个能确定身份的“信物”。
代码实现流程
1、下载cas:https://github.com/apereo/cas
git下载有点慢,选择下载release版本会快点,版本号为4.1.0
2、导入idea
通过import maven方式导入会出错,选择open方式打开,忽略错误
3、部署cas-server-webapp,可以看到服务器端登录页面,这一步是部署cas server的步骤;
4、子系统中集成cas-client,需要导入相关jar包,其中主要是配置web.xml
5、部署成功标志:登录cas client应用,能够自动跳转到client server登录,认证完毕后跳转回cas client原页面;
Demo
配置说明
问题总结
1、未认证授权的服务 CAS的服务记录是空的,没有定义服务。 希望通过CAS进行认证的应用程序必须在服务记录中明确定义。
"serviceId" : "^http.*",https://blog.csdn.net/leftfist/article/details/79426328
2、cas client web.xml中主要配置
参考
https://www.ibm.com/developerworks/cn/opensource/os-cn-cas/index.html
http://www.blogjava.net/security/archive/2006/10/02/sso_in_action.html
这是一个系列,配置过程讲的不错https://www.imooc.com/article/15417#
https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol.html
cas系列文章都不错,配置和原理都讲的很明白:http://www.cnblogs.com/richaaaard/p/5047112.html