cas

概念

角色:

c35b0232-ea55-47f2-8937-ad56b67f7251

原则:

a196e109-d1f9-4e2f-a21f-9452d1924da9

原理

两个部分组成:

b15f491c-22b6-445f-9bcc-4fe6586d0f2b

协议流程:

62de2ab6-f38d-4be2-9d7f-dda5960a11d2

最重要的部分为ticke

两种实现方式:

(1)

(2)基于代理的实现:

bb7ff744-ae6a-42c4-addb-53115c713f6f

重点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

36010241

36010350

配置说明

问题总结

1、未认证授权的服务 CAS的服务记录是空的,没有定义服务。 希望通过CAS进行认证的应用程序必须在服务记录中明确定义。

"serviceId" : "^http.*",
https://blog.csdn.net/leftfist/article/details/79426328

2、cas client web.xml中主要配置

23939211

参考

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

原文地址:https://www.cnblogs.com/yangnk/p/9146847.html