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

上传人:牧羊曲112 文档编号:4883423 上传时间:2023-05-21 格式:DOCX 页数:16 大小:464.53KB
返回 下载 相关 举报
CAS客户端服务器端配置步骤.docx_第1页
第1页 / 共16页
CAS客户端服务器端配置步骤.docx_第2页
第2页 / 共16页
CAS客户端服务器端配置步骤.docx_第3页
第3页 / 共16页
CAS客户端服务器端配置步骤.docx_第4页
第4页 / 共16页
CAS客户端服务器端配置步骤.docx_第5页
第5页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《CAS客户端服务器端配置步骤.docx》由会员分享,可在线阅读,更多相关《CAS客户端服务器端配置步骤.docx(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 Server需要独立部 署,主要负责对用户的认证工作;C

2、AS Client负责处理对客户端受保护资源的访问请求, 需要登录时,重定向到CAS Server。图1是CAS最基本的协议过程:图1. CAS基础协议重定向Service4一 Service. TicketCAS ClientCAS SetrerCAS 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的安全性。协议 工作过程中会有2次重定向的过程,但是CAS

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

5、6 带 JRE)Java Runtime Environment (JRE) 6 Update 6 (JRE)下面按步骤来:1. 安装JDK和JRE一直下一步到安装完成,记住JDK安装的路径。2.设置JDK相关的环境变量1).切换到桌面,右键点击“我的电脑”- 属性- 高级- 如图建立一个JAVA_HOME环境 变量,变量值为JDK的根目录。昏境登星未密1性受变里值TEMF%USEEPKOFILE%Ap迎aTMF%USERPROFILE%AppDahp的用户变里新建00.变皇值FP_NO_HOST_C.HOJAVA_HOMEE ;Javaj dkl. 6MYSL_HOMEE : Vila ta

6、b az e m mys qlNUMEER_OF_PR.2条统芨里缶)新建/).编辑口编落系鸵变皇变重名(N):JAVA_HOME变更值(V):文档文档:2.93M/2.93M2),和上面一样的操作,建立 环境变量 CLASSPATH,值为.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar;%JAVA_HOME%jrelibVt.jar”变里名0T):CLASSPATH变里值(V):.:%jAVA_HOME%h b; %jAVA_HOME%1 ibVti皿消确定3).还是操作环境变量但不是新建,而是编辑。编辑Path变量,最变量值最后面加上;%JAVA_HOME%

7、bin;E编辑祭藐变号亶里名QT) Path变里值(V):yberLi nki.P ow er2Goj;AVA_HOME淡bin;3.安装 Tomcat1).一直下一步,中间需要选择安装路径和JVM目录,如果JDK和JRE安装没问题,这里他 应该能自动找得到,否则需要你手动指定一下。中间什么也不用管,有一部让你设置端口, 不用动,保持默认的就行了。2),新增一个CATALINA_HOME环境变量,变量值为你TOMCAT安装时的根目录。3. 测试运行服务器安装后的bin目录共有一下几个文件:bootstrap.jartomcat-juli.jartomcat6.exetomcat6w.exe其中

8、tomcat6w.exe是监控tomcat运行的,可以直接运行,或者缩小到屏幕右下角成为一个 小图标。直接运行tomcat6w.exe或者“tomcat6w /ES/”都可以进入监控配置窗口; 或者运行“tomcat6w /MS/”把它缩小到右下角。也可用startup.bat和shutdown.bat来启动和关闭服务。姓计猝说E System (Q)l b Dont Writs D:j画 bootstrap.jar2007-05-05 9:42to meat6.exe2007-05 05 9:422007-05-05 9:422007-05-05 9:42to meat6w.exe3 tom

9、cat-juli.j言息= The Apache Tofiicat Nat iue library uhich allo us optimal performance in pri ction enuironmtents uas not found on the jaua. library upath: E: SJauaXTcmcat 6 n ; . ;C: UindowsSunSJauaXbin ;C: UindowsXsiPstem32 ;C: Uindous ;C: Windowssystem3; :Uindous;C:UindowsSystem32Wbem;C:XPrcgram Fil

10、esCyberLinkxPower2Go;E:Jah jdklifixbin;E:xPHPSeruerphpseruer;E:XDatabases Muysqlxbin;C:XUsersXhpXDesktop 2008-5-24 20:54:42 apache:; coyote ohttpll HttpllPvctcccl in it 隹息=Initializing Coyote HTTP/l. 1 on http-S080908-5-24 20:54:42 orgapache:;catalina.startupCatalina load隹息=Initialization processed

11、in 8267 mts908-5-24 20:54:43 orgapache:;catalinauccve .StandardSeruice start4言,息,= Starting service Catalina908-5-24 20:54:43apache:;catalinaucere .StandavdEngine startStarting Serulet Engine:: Hpache Tomcatz6013008-5-24 20:54:43 apache:;coyote ohttpll HttpllPrctcccl start言息=Starting Coyote HITP/l 1

12、 on http-8080908-5-24 20:54:43 org apac he:; j k u common Channe IScc ket in it on /0000:8009che:;jk.serueriJkMain start言息=Jk punning ID=0 116=0/105 conf ig=null2008-5-24 20:54:43apache:;catalina.startupCatalina start彳言息=Seruev startup in 633 msweb访问测试启动后,可以通过浏览器进行访问,测试运行是否正常。用IE或者Firefox等浏览器,输入地址:h

13、ttp:/localhost:8080/-如果安装时修改了端口,请把8080用修改后的值替换。如果能够正常浏览到tomcat欢迎信息,就是正确了,否则就要检查安装是否正确、防火墙的设 置等。经常遇到的一个问题是端口冲突,最常见的就是80端口被占用,导致服务无法正常启动。如果 通过tomcat6 /TS/tomcat6来启动,马上就能够发现提示信息。修改一下 tomcat6confserver.xml 中的端口就能够解决。通常使用80端口的有:1. IIS服务器,因为在windows服务器上,很多都安装了 IIS,而IIS默认的端口就是80.2. skype即时聊天工具,skype的可以穿透防火

14、墙的本领,也是通过占用80端口实现的。查看端口占用的命令:进入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

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

16、运行-cmd进入到jdk下的bin目录2、输入如下指令keytool -v -genkey -alias tom cat -keyalg RSA -keystored:/tomcat.keystore -validity 36500附:d:/tomcat.keystore是将生成的tomcat.keystore放到d盘根目录下。-validity 36500”含义是证书有效期,36500表示100年,默认值是90天 注意若要放到c盘,在win7系统下,需要以管理员身份进入到命令行中进行操作,否则是无法 创建tomcat.keystore的。本例放到d盘下。如何以管理员身份进入到命令行下呢?开始

17、-搜索框中输入cmd-等待(注意不回车)-出 现cmd.exe- 右键以管理员身份运行”即可。3、输入keystore密码密码任意,此处以123456为例,要记住这个密码,之后在进行server.xml配置时需要使用。4、输入名字、组织单位、组织、市、省、国家等信息注意事项:A、Enter keystore password :此处需要输入大于6个字符的字符串B、“What is your first and last name?”这是必填项,并且必须是TOMCAT部署主机的域 名或者IP如:或者10.1.25.251,就是你将来要在浏览器中输入的访问地址C、“What is the nam

18、e of your organizational unit?”、“What is the nam e 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 this unit?”可以按 照需要填写也可以不填写直接回车,在系统询问“correct?”时,对照输入信息,如果符合要求则 使用键盘输入字母“y”,否则输入“n”重新填写上面的信息D、

19、Enter key password for tomcat ,这项较为重要,会在tomcat配置文件中使用,建 议输入与keystore的密码一致,设置其它密码也可以l完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件5、输入之后会出现确认的提示此时输入y,并回车。此时创建完成keystore。进入到D盘根目录下可以看到已经生成的tomcat.xml6、进入tomcat文件夹找到conf目录下的sever.xml并进行编辑7、编辑Connector port=8443” protocol=HTTP/1.1 SSLEnabled = t rue maxThreads=150 sch

20、em e=https secure=trueclientAuth = false keystoreFile=D:/AppServer/Tom cat/apache-tom cat-6.0.32/conf/tom cat.keystore keystorePass=deleiguo sslProtocol = TLS / 注:方框中的keystore的密码,就是刚才我们设置的“123456”.编辑完成后关闭并保存sever.xml8、Tomcat启动成功后,使用https:/127.0.0.1:8443访问页面页面成功打开即tomcat下的https配置成功。9、注意事项:(1)生成证书的时间,

21、如果IE客户端所在机器的时间早于证书生效时间,或者晚于有效时 间,IE会提示“该安全证书已到期或还未生效”(2)如果IE提示安全证书上的名称无效或者与站点名称不匹配”,则是由生成证书时填写 的服务器所在主机的域名 您的名字与姓氏是什么? /What is your first and last nam e?” 不正确引起的10、遗留问题:(1)如果AC主机不能通过域名查找,必须使用IP,但是这个IP只有在配置后才能确定,这 样证书就必须在AC确定IP地址后才能生成(2)证书文件只能绑定一个IP地址,假设有10.1.25.250和192.168.1.250两个IP地址, 在证书生成文件时,如使用

22、了 10.1.25.250,通过IE就只能使用10.1.25.250来访问 AC-WEB,192.168.1.250 是无法访问 AC-WEB 的。配置CAS1. 下载 cas http:/www.ja-sig.org/downloads/cas/cas-server-3.4.2-release.zip2. 安装cas-server,我们假定安装cas-server的服务器为serverl(1) 将 cas-server-3M.2-release.zip 解压,将 moudels 目录下 cas-server-webapp-x.x.war 拷贝到U tomcat 的 webapps 目录下,修

23、 改名称为 cas.war.(2) 生成server1的安全证书:keytool -export -alias tom cat -file D:/file.cer -keystore d:/tom cat.keystore -validity 36500然后输入 d:/tomcat.keystore 中的 keystore 密码-file D:/file.cer即为生成的cer文件,可直接点击安装(3)重新启动server1上的tomcat,检验cas配置是否成功,访问https:/ip或域名:8443/cas/login,如果能看到cas的登录页面则表示配置成功。cas客户端配置1、准备CA

24、S的PHP库和相关库文件1)下载 cas php客户端 http:/downloads.jasig.Org/cas-clients/php/current/CAS-1.3.1.tgz2)由于其用到了 PEAR的DB库,需要下载当然不一定是我说的版本,但我给的是我试验成功的版本。3) 用于使用到了 SSL所以需要下载opensslo当然我是在windows环境下试验的,下载 的windows版本。4)安装 opensslo2、配置PHP环境1)将 CAS-1.3.1.tgz、PEAR-1.7.1.tgz、DB-1.7.13.tgz 放在同一个目录如图。 include I CASl 1 DB |

25、 PEAR4)由于phpcas用到了 CURL (用于连接ssl),因此需要保证php解释环境需要有这个 扩展。需要做的就是修改ini文件将extentions节下的屏蔽符号去掉,然后就是检查PHP 环境的extentions目录下是否有对应的.dll。一般标准安装都会有。3、测试CAS的php客户端1)在CAS-1.3.1.tgz中的docs/examples文件夹拷贝到网站的根目录下。2)config.example.php 修改为 config.php3)打开config.php进行修改$phpcas_path T include/CAS/T;/ Basic Config of the

26、phpCAS client / Fui 11 HosrtTTrans_ctlyurm CjLS Server $cas host = 1 server.cas;/ Context of trtie_CAS_ erver $cas_context = T/cas T;/ Port of lyuar_server. Normally for a https sex $cas_port - 8443;4)访问 localhost:8080/examples/example_simple.php (客户端的地址) 会跳转到CAS服务器登录页面。默认只要用户名和密码相同就可以通过验证。 T C 含 bt

27、tp$:/server.cas:8443/cas/login?service=http%3A%2F%2Flocalhost%3A8080%2FCAS examplesl%2Fexample simple.php与凤凰网 昭凯迪 8电驴 Q QvoCD ic电驴站SS SimpleCD公天气 圈百度 S Google S CSDN S CSDN社区 CU chinaitlab 58 58 E赶集JASIGCentral Authentication Service (CAS)请输入您的用户名和密码.用户铃密微I口转向其他站点前提示我。is|重置登陆成功后会中转到客户端。提示验证成功。C ill

28、D locallhost:8080/CAS examplesl/example simple.php回凤凰网 厕凯迪电驴Q QvoCD 匚电驴站SS SimpleCD舞天气 圈百度 Google回CSDNSuccessfullAuthentication!i Current script:e k :amp 1 e_s i inp 1 e. phpj session_n;3irie (.):!sessi on_for: e x am 口 le_si Kip 1 e_p:-hp:sessi on_id(.):ST-74)AcHSYylr7S3bQbGH9JT-casthe i_iserJ s lo

29、gin is admin.phpCAS version is 1- 3-1.Leg Lit其它客户端的配置按以上步骤配置。即可实现单点。进阶CAS服务端使用数据库验证用户创建表create table t_user(username varcha (200) primary key,password varcha (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(

30、 来自于 cas-server-3.4.2modules) copy 至Icas/WEB-iNF/lib/下创建验证service层创建 LoginDAOpublic class LoginDAO extends JdbcDaoSupport public List queryList(String sql,Object objs)return this.getJdbcTemplate().queryForList(sql , objs);创建 LoginServicepublic class LoginService private LoginDAO loginDAO;/*判断用户登录信息*

31、 param username* param password* return null为用户不存在,false密码错误,true登录成功*/public Boolean isUserCorrect(String username,String password)String sql = select password from t_user where username=?;List results = loginDAO.queryList(sql, new Objectusername);if(results=null|results.size()=0) return null ;else

32、 if(password.equals(Map)results.get(0).get(password).toString() return new Boolean(true);else return new Boolean(false);public LoginDAO getLoginDAO() return loginDAO;public void setLoginDAO(LoginDAO loginDAO) this.loginDAO = loginDAO; 重写验证类/重写 AbstractUsernamePasswordAuthenticationHandler 中验证方法 auth

33、enticateUsernamePasswordInternalpublic class UserAuthenticationHandler extends AbstractUsernamePasswordAuthenticationHandler private LoginService loginService;Overrideprotected boolean authenticateUsernamePasswordinternal( UsernamePasswordCredentials credentials) throws AuthenticationException Strin

34、g username = credentials.getUsername(); String password = credentials.getPassword();Boolean result = loginService.isUserCorrect(username, password); if(result=null) /用户不存在,error.authentication.credentials.bad.usernameorpassword.username”必须在 message配置文件中定义,验证失败时会在登录页面显示信息 throw newBadPasswordAuthenti

35、cationException(error.authentication.credentials.bad.use rnameorpassword.username);else if(!result.booleanValue() /密码错误 throw newBadPasswordAuthenticationException(error.authentication.credentials.bad.use rnameorpassword.password);else(/登录成功return true;public LoginService getLoginService() return lo

36、ginService;public void 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.Driverjdbc:mysql:/localhost:3306/testrootroot 启动tomcat,测试登录.(如果是使用war在tomcat解压的服务端,必须将上面类的编译完的class 文件,包,信息配置文件复制到WEB-INFclasses下)

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号