`
wxb880114
  • 浏览: 679013 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

基于cas4.2.7单点登录+验证码服务端客户端搭建

    博客分类:
  • cas
阅读更多

跑不起来的程序都是骗人的!

一、引言

CAS (Central Authentication Service)  是耶鲁 Yale 大学发起的一个Java开源项目,旨在为 Web应用系统提供一种可靠的 单点登录 解决方案( Web SSO ), CAS 具有以下特点:

1、   开源的企业级单点登录解决方案;

2、   CAS Server 为需要独立部署的 Web 应用----一个独立的Web应用程序(cas.war)。 ;

3、   CAS Client 支持非常多的客户端 ( 指单点登录系统中的各个 Web 应用 ) ,包括 Java, .Net,PHP, Perl, 等。

CAS在2004年12月成为Jasig项目,所以也叫JA-SIG CAS。

官网1:https://apereo.github.io/cas/5.0.x/index.html

官网2:https://www.apereo.org/projects/cas/about-cas

论坛:http://jasig.275507.n4.nabble.com/Jasig-CAS-f275508.html

github:https://github.com/apereo/cas

开发者快捷资源:http://developer.jasig.org/

下载链接:https://www.apereo.org/projects/cas/download-cas

开发文档:https://apereo.github.io/cas/4.2.x/installation/Configuring-Authentication-Components.html#

CAS 原理

从结构上看, CAS 包含两个部分: CAS Server 和 CAS Client 。

CAS Server

CAS Server 需要独立部署,主要负责对用户的认证工作, 它会处理用户名 / 密码等凭证 (Credentials) ;

CAS Server 负责完成对用户的认证工作, CAS Server 需要独立部署,有不止一种 CAS Server 的实现, Yale CAS Server 和 ESUP CAS Server 都是很不错的选择。

CAS Server 会处理用户名 / 密码等凭证 (Credentials) ,它可能会到数据库检索一条用户帐号信息,也可能在 XML 文件中检索用户密码,对这种方式, CAS 均提供一种灵活但同一的接口 / 实现分离的方式, CAS 究竟是用何种认证方式,跟 CAS 协议是分离的,也就是,这个认证的实现细节可以自己定制和扩展。

CAS Client

CAS Client 部署在客户端, 负责处理 对本地 Web 应用(客户端)受保护资源的访问请求,并且当需要对请求方进行身份认证时,重定向到 CAS Server 进行认证 。

CAS Client 负责部署在客户端(注意,我是指 Web 应用),原则上, CAS Client 的部署意味着,当有对本地 Web 应用的受保护资源的访问请求,并且需要对请求方进行身份认证, Web 应用不再接受任何的用户名密码等类似的 Credentials ,而是重定向到 CAS Server 进行认证。

目前, CAS Client 支持(某些在完善中)非常多的客户端,包括 Java 、 .Net 、 ISAPI 、 Php 、 Perl 、 uPortal 、 Acegi 、 Ruby 、 VBScript 等客户端,几乎可以这样说, CAS 协议能够适合任何语言编写的客户端应用。

CAS相关词汇和概念

TGC(ticket-granting cookie)-- ------- 授权的票据证明,由 CAS Server 通过 SSL 方式发送给终端用户;

KDC( Key Distribution Center ) ---------- 密钥发放中心;

ST (Service ticket) --------- 服务票据, 由 KDC 的 TGS 发放, ST   只能被尝试验证一次。 任何一台 Workstation 都需要拥有一张有效的 Service Ticket 才能访问域内部的应用 (Applications) 。 如果能正确接收 Service Ticket ,说明在 CASClient-CASServer 之间的信任关系已经被正确建立起来,通常为一张数字加密的证书;

Ticket Granting tieckt(TGT) --------- 票据授权票据,由 KDC 的 AS 发放。即获取这样一张票据后,以后申请各种其他服务票据 (ST) 便不必再向 KDC 提交 Credentials (凭证或身份认证信息 ) ;

Authentication Service (AS) --------- 认证服务,索取 Crendential ,发放 TGT ;

Ticket-Granting Service (TGS) --------- 票据授权服务,索取 TGT ,发放 ST 。

基础环境:

casServer jdk7 tomcat8以上

casClient jdk7 tomcat7

关键步骤:

1、证书生成及添加

2、tomcat https配置

3、服务端代码下载及配置

4、客户端代码下载及配置

二、证书生成及添加

服务端生成数字证书的命令

keytool -genkey -keystore "D:\cas\wo_cas.keystore" -alias "wo_cas" -keyalg "RSA" -validity 36500 -dname "CN=localhost, OU=org, O=org.cj, L=南京, ST=江苏, C=中国" -keypass "wo_cas" -storepass "wo_cas"

服务端导出cer证书文件的命令

keytool -alias "wo_cas" -exportcert -keystore "D:\cas\wo_cas.keystore" -file "D:\cas-chenjie\wo_cas.cer" -storepass "wo_cas"

客户端JRE中导入服务端cer证书的命令

keytool -import -alias "wo_cas" -keystore "D:\Program Files\Java\jdk1.8.0_91\jre\lib\security\cacerts" -file "D:\cas\wo_cas.cer" -trustcacerts -storepass changeit

删除证书

keytool -delete -alias "wo_cas" -keystore "D:\Program Files\Java\jdk1.8.0_91\jre\lib\security\cacerts"

三、Tomcat https配置

注意:路径和密码

1、服务端代码下载及配置

代码下载

https://github.com/watemei/casServer

建库(mysql)

创建dbname 为cas

导入doc/cas.sql文件

eclipse中设置tomcat


修改配置文件deployerConfigContext.xml

数据库连接

 

启动tomcat

输入https:localhost:8090/casServer

 

输入cj cj 登录成功

 

2、客户端代码下载及配置

https://github.com/watemei/casClient

修改web.xml

启动casClient1

首次访问 跳转到casServer输入cj cj登录

登录成功跳转回casClient

 

请求casClient

http://localhost:8080/casClient/demo/test

 

3、跨应用授权

启动casClient2

请求http://localhost:8080/casClient2

四、验证码配置

maven包引入

 

web.xml配置

 

创建类:

 

login-webflow.xml配置

 

 

cas-servlet.xml配置

注意:包路径和类名必须一致,否则报异常

五、cas部署问题汇总

 
 
六、总结
遇到问题是幸运的,梳理问题要有重点,查询资料要有方向,遇到瓶颈要放松但更要坚持,解决问题要有结论。
 

往期文章:

阿里巴巴 Java 开发手册

阿里巴巴 Java 开发手册学习1-命名规范

阿里巴巴 Java 开发手册学习2-常量定义、格式约束

阿里巴巴 Java 开发手册学习3-OOP规约

阿里巴巴 Java 开发手册学习4- 集合处理

阿里巴巴 Java 开发手册学习5-并发编程、控制语句、注释规约

阿里巴巴 Java 开发手册学习6-异常日志

阿里巴巴 Java 开发手册学习7-Mysql规约

阿里巴巴 Java 开发手册学习8-Sql规约、ORM 规约

阿里巴巴 Java 开发手册学习9-工程规约、服务器规约、安全规约



分享到:
评论

相关推荐

    cas4.2.7服务端+cas客户端+示例程序+环境搭建之服务端war包

    cas4.2.7服务端+cas客户端+示例程序+环境搭建之服务端war包 请看博客:http://blog.csdn.net/pucao_cug/article/details/70182968 该war文件是cas4.2.7的服务端的war包。服务端 的war内我已经对WEB-INF文件夹中的web...

    cas4.2.7服务端+cas客户端+示例程序+环境搭建之客户端war包

    cas4.2.7服务端+cas客户端+示例程序+环境搭建之客户端war包 一切跑不起来的程序和走不通的教程都是耍流氓,二话不说,先按照我的步骤把程序跑起来在说吧。 请看博客...

    CAS单点登录(SSO)服务端自定义认证+CAS客户端配置+CAS完整使用文档+CAS4.2.7 cas-serv服务端源码 cas-client客户端源码

    CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single Sign-On,简称SSO)框架,主要用于解决网络应用中的身份验证问题。本压缩包提供了CAS服务端自定义认证的实现,以及CAS客户端的配置...

    cas4.2.7服务端和客户端应用

    **CAS (Central Authentication Service) 知识点详解** CAS 是一个开源的身份验证框架,它允许用户通过单一登录(Single Sign-On, SSO)在多个应用系统间自由切换,无需重复登录。CAS4.2.7 版本是 CAS 的一个稳定...

    CAS4.2.7文档 html版本

    **CAS4.2.7文档 HTML版本** CAS(Central Authentication Service)是一种开源的单点登录(Single Sign-On,SSO)框架,它主要用于...通过深入阅读和实践,你可以有效地利用CAS4.2.7来建立安全、高效的单点登录系统。

    CAS-4.2.7源码

    CAS(Central Authentication Service)是基于Java的开源身份验证框架,主要功能是实现单点登录(Single Sign-On,简称SSO)。SSO允许用户在访问多个系统时只需进行一次登录,提高了用户体验并增强了安全性。CAS-...

    CAS4.2.7说明文档

    这是CAS4.2.7的源码编译,并打包好的说明书噢。 目前(2022.3.27)CAS已经升到6版本,4版本以前的说明书,都已经下线,网上找不到任何痕迹。 翻到源码,把相关文档整理,编译成chm,方便大家查阅和使用。 cas最大的...

    cas4.2.7 实现其他系统和cas互相认证互信

    CAS(Central Authentication Service)是一种基于Web的单一登录(Single Sign-On, SSO)协议,用于在多个应用系统间实现统一的认证服务。CAS 4.2.7 是 CAS 的一个特定版本,它提供了与其他系统进行身份验证互信的...

    cas server 4.2.7 环境搭建maven

    CAS(Central Authentication Service)服务器是一种基于Java的开源身份验证服务,它允许用户通过单一登录(Single Sign-On,SSO)访问多个应用系统。在本场景中,我们将讨论如何使用Maven构建工具搭建CAS Server ...

    cas 4.2.7 直接运行文件(含tomcat 无jdk 无mysql)

    CAS(Central Authentication Service)是一种基于Web的单一登录(Single Sign-On, SSO)协议,用于在多个应用系统间实现统一的认证服务。CAS 4.2.7是该框架的一个特定版本,它允许用户通过一个中央认证服务器进行...

    cas4.2.7 实现其他系统和cas互相认证互信2 整包太大这是web项目块,解压放到1里面就可以了

    CAS(Central Authentication Service)是一个开放源代码的单点登录(Single Sign-On,SSO)解决方案,主要用于实现用户在多个应用系统之间共享身份验证。在这个场景中,提到的是CAS服务器版本4.2.7,它是一个专门...

    基于CMS实现的LMCMS内容管理系统 4.2.7_lmcmsencodev4.2.7(使用说明+源代码+html).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。...【项目质量】:所有源码都经过严格测试,可以直接...

    cas-server4.2.7数据库配置相关文件以及说明

    CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single Sign-On,SSO)系统,主要用于统一认证管理。CAS服务器4.2.7版本的数据库配置涉及到多个环节,包括数据库连接、用户数据存储与读取等...

Global site tag (gtag.js) - Google Analytics