CAS客户端服务器端配置步骤.pdf

上传人:tbuqq 文档编号:5054659 上传时间:2020-01-30 格式:PDF 页数:16 大小:1.91MB
返回 下载 相关 举报
CAS客户端服务器端配置步骤.pdf_第1页
第1页 / 共16页
CAS客户端服务器端配置步骤.pdf_第2页
第2页 / 共16页
CAS客户端服务器端配置步骤.pdf_第3页
第3页 / 共16页
CAS客户端服务器端配置步骤.pdf_第4页
第4页 / 共16页
CAS客户端服务器端配置步骤.pdf_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《CAS客户端服务器端配置步骤.pdf》由会员分享,可在线阅读,更多相关《CAS客户端服务器端配置步骤.pdf(16页珍藏版)》请在三一文库上搜索。

1、CAS客户端服务器端配置步骤 cas介绍: CAS 是 Yale 大学发起的一个开源项目,旨在为Web 应用系统提供一种可靠的单点登录 方法, CAS 在 2004 年 12 月正式成为JA-SIG 的一个项目。 CAS 具有以下特点: 开源的企业级单点登录解决方案。 CAS Server 为需要独立部署的Web 应用。 支持非常多的客户端(这里指单点登录系统中的各个Web 应用 ),包括Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。 CAS 原理和协议 从结构上看, CAS 包含两个部分:CAS Server 和 CAS Client 。CAS

2、 Server 需要独立部 署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求, 需要登录时,重定向到CAS Server 。图 1 是 CAS 最基本的协议过程: 图 1. CAS 基础协议 CAS Client 与受保护的客户端应用部署在一起,以Filter 方式保护受保护的资源。对于访 问受保护资源的每个Web 请求, CAS Client 会分析该请求的Http 请求中是否包含 Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的CAS Server 登录地址,并传递Service (也就是要访问的目的资源地址

3、),以便登录成功过后 转回该地址。用户在第3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个 相当长度、唯一、不可伪造的Service Ticket,并缓存以待将来验证,之后系统自动重定向 到 Service 所在地址,并为客户端浏览器设置一个Ticket Granted Cookie(TGC ),CAS Client 在拿到Service 和新产生的Ticket 过后,在第5,6 步中与CAS Server 进行身 份合适,以确保Service Ticket 的合法性。 在该协议中,所有与CAS 的交互均采用SSL 协议,确保, ST 和 TGC 的安全性。协议 工作过程

4、中会有2 次重定向的过程,但是CAS Client 与 CAS Server 之间进行Ticket 验证的过程对于用户是透明的。 另外, CAS 协议中还提供了Proxy (代理)模式,以适应更加高级、复杂的应用场景, 具体介绍可以参考CAS 官方网站上的相关文档。 CAS 服务器端配置 配置服务器环境 首先下载必须的软件: Tomcat6.0: http:/tomcat.apache.org/download-60.cgi Windows Service Installer Jdk: http:/ 你可以选择带有jre 的安装文件或者你机器里现在有jre 环境则只需要下载JDK. Java

5、SE 6 Update 10 Beta (不带JRE) JDK 6 Update 6 (带JRE) Java Runtime Environment (JRE) 6 Update 6 (JRE) 下面按步骤来: 1.安装 JDK和 JRE 一直下一步到安装完成,记住JDK安装的路径。 2.设置 JDK相关的环境变量 1).切换到桌面,右键点击“ 我的电脑 ” - 属性- 高级- 如图建立一个JAVA_HOME 环境 变量,变量值为JDK的根目录。 2).和上面一样的操作,建立环境变量CLASSPATH,值为 “ .;%JAVA_HOrt.jar” 3). 还是 操作 环境 变 量但 不是 新建

6、 ,而 是编 辑。 编辑Path 变 量, 最变 量值 最后 面 加 上 ;%JAVA_HOME%bin; 3.安装 Tomcat 1).一直下一步,中间需要选择安装路径和JVM 目录,如果JDK和 JRE安装没问题,这里他 应该能自动找得到,否则需要你手动指定一下。中间什么也不用管,有一部让你设置端口, 不用动,保持默认的就行了。 2).新增一个CATALINA_HOME 环境变量,变量值为你TOMCAT安装时的根目录。 3.测试运行服务器 安装后的bin 目录共有一下几个文件: bootstrap.jar tom cat-juli.jar tom cat6.exe tom cat6w.ex

7、e 其中 tom cat6w.exe是监控 tom cat运行的,可以直接运行,或者缩小到屏幕右下角成为一个 小图标。 直接运行tom cat6w.exe或者 “tomcat6w /ES/” 都可以进入监控配置窗口; 或者运行 “tomcat6w /MS/”把它缩小到右下角。 也可用 startup.bat和 shutdown.bat 来启动和关闭服务。 web 访问测试 启动后,可以通过浏览器进行访问,测试运行是否正常。 用 IE 或者 Firefox等浏览器,输入地址: http:/localhost:8080/ -如果安装时修改了端口,请把8080用修改后的值替换。 如果能够正常浏览到t

8、om cat欢迎信息, 就是正确了, 否则就要检查安装是否正确、防火墙的设 置等。 经常遇到的一个问题是端口冲突,最常见的就是80 端口被占用,导致服务无法正常启动。如果 通 过tom cat6 /TS/tomcat6来 启 动 , 马 上 就 能 够 发 现 提 示 信 息 。 修 改 一 下 tom cat6confserver.xml中的端口就能够解决。 通常使用80 端口的有: 1. IIS服务器,因为在windows服务器上,很多都安装了IIS ,而 IIS默认的端口就是80. 2. skype即时聊天工具,skype的可以穿透防火墙的本领,也是通过占用80 端口实现的。 查看端口占

9、用的命令: 进入 windows命令行,输入: netstat -an 这个命令返回有4 列: protocol协议、 local address本机地址、 foreign address来访者地 址、 status状态 浏览本机地址一列,可以看到当前主机对外服务的IP 地址、端口都有哪些。 如果一台机器有192.168.1.100和 192.168.1.101两个地址,那么: 0.0.0.0:80表示这台机器上所有80 端口都被使用 127.0.0.1:80表示 127.0.0.1的 80 被使用,但 .100和.101IP地址的 80 还未使用。 192.168.1.100:80表示 .1

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

11、口。 Tomcat配置 HTTPS 方式 1 、开始 - 运行 - cmd 进入到jdk下的 bin目录 2 、输入如下指令 keytool -v -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat.keystore -validity 36500 附: d:/tomcat.keystore是将生成的tom cat.keystore放到 d 盘根目录下。 “-validity 36500 ”含义是证书有效期,36500表示 100 年,默认值是90 天 注意若要放到c 盘, 在 win7系统下, 需要以管理员身份进入到命令行中进行操作,否

12、则是无法 创建 tom cat.keystore的。本例放到d 盘下。 如何以管理员身份进入到命令行下呢?开始- 搜索框中输入c md- 等待(注意不回车)- 出 现 c md.exe- 右键 “ 以管理员身份运行” 即可。 3 、输入keystore密码 密码任意,此处以123456为例,要记住这个密码,之后在进行server.xml配置时需要使用。 4 、输入名字、组织单位、组织、市、省、国家等信息 注意事项: A、Enter keystore password:此处需要输入大于6 个字符的字符串 B、“ What is your first and last name?”这是必填项,并且

13、必须是TOMCAT部署主机的域 名或者 IP 如: gbcom .com 或者 10.1.25.251,就是你将来要在浏览器中输入的访问地址 C、“ What is the name of your organizational unit?”、“ What is the name of your organization?”、“ What is the name of your City or Locality?”、“ What is the name of your State or Province?”、“ What is the two- letter country code for

14、this unit?”可以按 照需要填写也可以不填写直接回车,在系统询问 “correct? ” 时,对照输入信息,如果符合要求则 使用键盘输入字母“y” ,否则输入 “n” 重新填写上面的信息 D、Enter key password for ,这项较为重要,会在tom cat配置文件中使用,建 议输入与keystore的密码一致,设置其它密码也可以 l 完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件 5 、输入之后会出现确认的提示 此时输入y ,并回车。此时创建完成keystore。 进入到 D 盘根目录下可以看到已经生成的tom cat.xml 6 、进入tomcat文

15、件夹 找到 conf目录下的sever.xml并进行编辑 7 、编辑 注: 方框中的keystore的密码,就是刚才我们设置的“123456”. 编辑完成后关闭并保存sever.xml 8 、 Tomcat启动成功后,使用https:/127.0.0.1:8443 访问页面 页面成功打开即tom cat下的 https配置成功。 9 、注意事项: (1)生成证书的时间,如果IE 客户端所在机器的时间早于证书生效时间,或者晚于有效时 间, IE 会提示 “ 该安全证书已到期或还未生效” (2)如果 IE 提示 “ 安全证书上的名称无效或者与站点名称不匹配” ,则是由生成证书时填写 的服务器所在主

16、机的域名“ 您的名字与姓氏是什么?”/ “What is your first and last name?” 不正确引起的 10 、遗留问题: (1)如果 AC 主机不能通过域名查找,必须使用IP,但是这个IP 只有在配置后才能确定,这 样证书就必须在AC 确定 IP 地址后才能生成 (2)证书文件只能绑定一个IP 地址,假设有10.1.25.250 和 192.168.1.250 两个 IP 地址, 在证书生成文件时,如使用了10.1.25.250,通过IE 就只能使用10.1.25.250 来访问 AC-WEB ,192.168.1.250是无法访问AC-WEB的。 配置 CAS 1.

17、下载 cas http:/www.ja-sig.org/downloads/cas/cas-server-3.4.2-release.zip 2. 安装 cas-server ,我们假定安装cas-server 的服务器为server1 (1) 将 cas-server-3.4.2-release.zip 解压,将moudels 目录下 cas-server-webapp-x.x.war拷贝到 tomcat 的 webapps 目录下,修改名称为 cas.war. (2) 生成 server1 的安全证书: keytool -export -alias tomcat -file D:/file

18、.cer -keystore d:/tomcat.keystore -validity 36500 然后输入d:/tomcat.keystore中的 keystore密码 -file D:/file.cer 即为生成的cer 文件,可直接点击安装 (3) 重新启动 server1 上的 tomcat ,检验 cas 配置是否成功,访问https:/ip或域 名:8443/cas/login,如果能看到cas 的登录页面则表示配置成功。 cas 客户端配置 1、准备 CAS的 PHP库和相关库文件 1 )下载 c as php客户端http:/downloads.jasig.org/cas-cl

19、ients/php/current/CAS-1.3.1.tgz 2) 由于其用到了PEAR的 DB库,需要下载 http:/ http:/ 当然不一定是我说的版本,但我给的是我试验成功的版本。 3 ) 用于使用到了SSL所以需要下载openssl 。当然我是在windows 环境下试验的,下载 的 windows 版本。 4 )安装 openssl 。 2、配置 PHP环境 1)将 CAS-1.3.1.tgz、 PEAR-1.7.1.tgz、DB-1.7.13.tgz放在同一个目录如图。 4)由于 phpcas 用到了 CURL (用于连接ssl ),因此需要保证php 解释环境需要有这个 扩

20、展。需要做的就是修改ini文件将 extentions节下的屏蔽符号去掉,然后就是检查PHP 环境的 extentions目录下是否有对应的.dll。一般标准安装都会有。 3、测试 CAS的 php 客户端 1)在 CAS-1.3.1.tgz中的 docs/examples文件夹拷贝到网站的根目录下。 2)config.example.php 修改为 config.php 3) 打开 config.php 进行修改 4)访问 localhost:8080/examples/example_simple.php (客户端的地址) 会跳转到CAS服务器登录页面。默认只要用户名和密码相同就可以通过验

21、证。 登陆成功后会中转到客户端。提示验证成功。 其它客户端的配置按以上步骤配置。即可实现单点。 进阶 CAS服务端使用数据库验证用户 创建表 create table t_user( username varchar( 200 ) primary key, password varchar( 200 ) ); insert into users( username, password) values( test, 123); 添加 jar 将数据库驱动包:mysql-connector-java-5.1.5-bin.jar cas-server-support-jdbc-3.x.x.jar(来

22、自于 cas-server-3.4.2modules) copy到 cas/WEB-INF/lib/下 创建验证 service 层 创建 LoginDAO publicclassLoginDAOextendsJdbcDaoSupport publicList queryList( String sql, Object objs) returnthis. getJdbcTemplate().queryForList( sql , objs); 创建 LoginService publicclassLoginService privateLoginDAO loginDAO; /* * 判断用户登

23、录信息 * param username * param password * return null为用户不存在 ,false密码错误 ,true登录成功 */ publicBoolean isUserCorrect( String username, String password) String sql =“select password from t_user where username=?“; Listresults = loginDAO. queryList( sql ,new Objectusername); if( results= null| results. size()

24、=0) returnnull; else if ( password. equals(Map) results. get ( 0).get ( “password“). toString() returnnewBoolean( true); else returnnewBoolean( false); publicLoginDAO getLoginDAO() return loginDAO; publicvoid setLoginDAO( LoginDAO loginDAO) this. loginDAO = loginDAO; 重写验证类 / 重写 AbstractUsernamePassw

25、ordAuthenticationHandler中验证方法 authenticateUsernamePasswordInternal publicclassUserAuthenticationHandlerextends AbstractUsernamePasswordAuthenticationHandler privateLoginService loginService; Override protectedboolean authenticateUsernamePasswordInternal( UsernamePasswordCredentials credentials)throw

26、s AuthenticationException String username = credentials. getUsername(); String password = credentials. getPassword(); Booleanresult = loginService. isUserCorrect( username, password); if( result= null) / 用户不存 在,“error.authentication.credentials.bad.usernameorpassword.username“必须在 message配置文件中定义, 验证失

27、败时会在登录页面显示信息 thrownew BadPasswordAuthenticationException( “error.authentication.credentials.bad.use rnameorpassword.username“); elseif (! result. booleanValue() / 密码错误 thrownew BadPasswordAuthenticationException( “error.authentication.credentials.bad.use rnameorpassword.password“); else / 登录成功 retur

28、ntrue; publicLoginService getLoginService() return loginService; publicvoid setLoginService( LoginService loginService) this. loginService = loginService; 定义错误信息 在 messages_zh_CN.properties中添加验证出错信息 error.authentication.credentials.bad.usernameorpassword.username=用户不存在 error.authentication.credentials.bad.usernameorpassword.password=密码错误 配置 WEB-INFdeployerConfigContext.xml 文件 com.mysql.jdbc.Driver jdbc:mysql:/localhost:3306/test root root 启动 tomcat, 测试登录 .(如果是使用war 在 tomcat 解压的服务端,必须将上面类的编译完的class 文件 ,包,信息配置文件复制到WEB-INFclasses下)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1