`
xgdellis
  • 浏览: 62468 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

CAS配置学习+CAS整合Spring Securtiy配置学习(一)

阅读更多

考完期末试后,就开始做一个手机音频项目。该项目分为几个版本:web、wap、client。我主要负责web版本的。在web版本的需求文档里要求使用CAS单点登录,所以我就花了三四天去研究并使用这个东西。三四天,我自己觉得时间花的不算多,毕竟在此之前我对单点登录了解甚少,自己的水平也还不够高。

 

为了让还没了解过单点登录的人,能够容易读懂这篇文章,在这里简单介绍一下单点登录是什么。单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。(来源于百度百科的解释) 笼统、简单的说,就是有几个相互信任的应用系统,分别为A、B、C、D……,只要登录其中任意一个,就可以随意访问另外的几个而无需再登录。

 

而CAS就是实现单点登录的一个开源项目,其中包括CAS Server和CAS Client。CAS Server(CAS服务器)是需要独立部署的web应用,主要负责对用户的认证工作。CAS Client(CAS客户端)支持很多开发语言,包括Java、.net、PHP、Ruby等,这里所谓的CAS客户端是指单点登录系统中的各个web应用,负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CAS Server。

下图为CAS最基本的工作过程(图片及说明摘自网上):

CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。用户在第 3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来验证,之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket Granted CookieTGC),CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 56 步中与 CAS Server 进行身份合适,以确保 Service Ticket 的合法性。

在该协议中,所有与 CAS 的交互均采用 SSL 协议,确保,ST TGC 的安全性。协议工作过程中会有 2 次重定向的过程,但是 CAS Client CAS Server 之间进行 Ticket 验证的过程对于用户是透明的。

另外,CAS 协议中还提供了 Proxy (代理)模式,以适应更加高级、复杂的应用场景,具体介绍可以参考 CAS 官方网站上的相关文档。

 

准备工作:

要先在CAS官网下载CAS Server和CAS Client,我使用的分别是cas-server-3.4.11-release.zip和cas-client-3.2.1-release.zip。

CAS Server 是一套基于 Java 实现的服务,该服务以一个 Java Web Application 单独部署在与 servlet2.3 兼容的 Web 服务器上,另外,由于 Client CAS Server 之间的交互采用 Https 协议,因此部署 CAS Server 的服务器还需要支持 SSL 协议。当 SSL 配置成功过后,像普通 Web 应用一样将 CAS Server 部署在服务器上就能正常运行了,不过,在真正使用之前,还需要扩展验证用户的接口。

我使用的是TOMCAT 7.0.23,要先在tomcat上配置好https协议的使用。

配置tomcat的https协议:(方法部分转自网上)

1.使用keytool生成证书库文件
在命令行窗口上执行下列命令:
>keytool -genkey -alias tomcat -keyalg RSA -keysize 1024 -validity 365 -keystore tomcat.keystore
会在当前目录下生成文件tomcat.keystore。记住当时输入的密码(假设为123456)。另外,输入的名字要为服务器所在计算机的ip地址或者域名,如果服务器在本机,就使用localhost,不然客户端反问时会报No name matching localhost found异常。
注:keytool文件是在Javabin目录下。
2.
将生成的tomcat.keystore文件放在TOMCAT/conf下。
3.
修改server.xml文件:
去掉下面SSL Connector的注释,修改为如下:
<!-- Define an SSL HTTP/1.1 Connector on port 8443 -->

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

               maxThreads="200" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS"       

               keystoreFile="conf/tomcat.keystore"

               keystorePass="123456"/>

参数说明:

clientAuth
如果想要Tomcat为了使用这个socket而要求所有SSL客户出示一个客户证书,置该值为true
keystoreFile
如果创建的keystore文件不在Tomcat认为的缺省位置(一个在Tomcat运行的home目录下的叫.keystore的文件),则加上该属性。可以指定一个绝对路径或依赖$CATALINA_BASE环境变量的相对路径。
keystorePass
如果使用了一个与Tomcat预期不同的keystore(和证书)密码,则加入该属性。

keystoreType
如果使用了一个PKCS12 keystore,加入该属性。有效值是JKSPKCS12

sslProtocol
socket
使用的加密/解密协议。如果使用的是SunJVM,则不建议改变这个值。据说IBM1.4.1版的TLS协议的实现和一些流行的浏览器不兼容。这种情况下,使用SSL

ciphers
socket允许使用的被逗号分隔的密码列表。缺省情况下,可以使用任何可用的密码。

algorithm
使用的X509算法。缺省为Sun的实现(SunX509)。对于IBM JVMS应该使用ibmX509。对于其它JVM,参考JVM文档取正确的值。

truststoreFile
用来验证客户证书的TrustStore文件。

truststorePass
访问TrustStore使用的密码。缺省值是keystorePass

truststoreType
如果使用一个不同于正在使用的KeyStoreTrustStore格式,加入该属性。有效值是JKSPKCS12

4.
重新启动TOMCAT,访问
https://localhost:8443
一般情况下打开页面之前会有证书安全警告,选择信任就可以了!

 

由于相关内容很多,所以要分为几篇文章!接下来请看“CAS配置学习+CAS整合Spring Securtiy配置学习(二)”

 

 

 

 

 

  • 大小: 19.7 KB
0
1
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    SpringBoot+SpringSecurity+WebSocket

    本项目结合这三个技术,构建了一个整合的示例,旨在展示如何在SpringBoot应用中实现安全的、基于WebSocket的实时通信。 首先,SpringBoot是由Pivotal团队提供的一个简化Spring应用初始搭建以及开发过程的框架。它...

    IPv6 Securtiy

    2. 预配置的邻居发现:IPv6使用邻居发现协议(NDP)来自动配置地址、发现邻近设备和建立邻居关系。NDP的某些功能,如路由器请求和重复地址检测,可能被恶意利用进行DoS(拒绝服务)攻击。通过启用NDP防洪保护和使用...

    oauth2_securtiy.zip

    SpringSecurity+SpringSecurityOauth2集成实现权限框架,Redis分发Token,博客提供了码云下载地址,,博客地址:https://blog.csdn.net/weixin_38061191/article/details/119879556

    CCSP学习笔记,刚整理出来的。

    CCSP学习笔记,CCSP学习笔记,CCSP学习笔记。ccnp 后的努力方向。securtiy

    Bluetooth Technology and Security - A Review(蓝牙技术与安全)

    本文基于《International Journal of Enhanced Research in Science Technology & Engineering》的一篇论文进行综述,该论文发表于2014年3月,作者为Ayush Bansal和Sukhwinder Singh,分别来自印度昌迪加尔技术教育...

    nginx-http-hsts:Nginx 模块添加适当的 Strict-Transport-Security 标头

    切换到包含 nginx_ 源的目录,使用所需的选项运行配置脚本,并确保放置一个--add-module标志指向包含摘要模块源的目录: $ cd nginx-1.x.x $ ./configure --add-module=../nginx-http-hsts-master [other ...

    worldwindjava源码-Cloud-Securtiy-and-Infrastructure-Management:数据中心的安全方面和

    未经授权的访问、生物特征认证、监控系统和其他安全措施是保护基础设施不可或缺的一部分。 关键词——云环境; 越权存取; 无意的恶意活动; 生物识别认证; 监控系统、基础设施; 正直。 I. 简介 基于云的架构在当今...

    SecureCRT 6.5 破解版

    SecureCRT 6.5破解版 SecureCRT 6.5注册机 包含SecureCRT 6.5 64位和32位,SecureCRT 6.5 64位和32位,真实可用啊,哈哈!!

    JAVA关于SSL证书请求的CSR文件及用户秘钥的生成工具类

    工具内容有完整的CSR生成及对应秘钥保存,使用java.securtiy Signature类

    Cobol for Z900 语言程序设计:第3章 数据部.pdf

    SECURTIY. NONE. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-390. OBJECT-COMPUTER. IBM-390. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FPERSNNL ASSIGN TO PERSNNL. SELECT ...

    华为安全C库函数代码 securec.zip

    循C11 Annex K (Bounds-checking interfaces)的标准,选取并实现了常见的内存/字符串操作类的函数,如memcpy_s、strcpy_s等函数。 未来将分析C11 Annex K中的其他标准函数,如果有必要,将在该组织中实现。...

    普适安全基于身份的签名机制

    普适安全(Universally Composable Security,简称UC安全)是一个密码协议的概念,由Canetti在2001年提出。UC安全框架下设计的协议具备模块化特点,能够在各种环境下保持安全特性。UC安全协议的核心和基础单元是理想...

    LESSY-BLOG(LBS2.0.283汉化修改版)

    - default.asp: 添加 Permalink 显示2.0.b272- upload.asp: 修正用 Gecko 引擎的浏览器对 javascript 的支持问题- register.asp, global.asp, user.asp, login.asp: 更新- s_img.asp: 删除- images/securtiy: 删除- ...

    A.Practical.Guide.to.Networking.and.Security.in.iOS.8

    Title: A Practical Guide to Networking and Security in iOS 8 Author: Glenn Fleishman Length: 126 pages Edition: 1 Language: English Publisher: Aperiodical LLC Publication Date: 2015-02-20 ...

Global site tag (gtag.js) - Google Analytics