cas服务器端和客户端配置.docx

上传人:小飞机 文档编号:4883429 上传时间:2023-05-21 格式:DOCX 页数:16 大小:482.10KB
返回 下载 相关 举报
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需要独立部 署,主要负责对用户的认证工作;CAS Cl

2、ient负责处理对客户端受保护资源的访问请求, 需要登录时,重定向到CAS Server。图1是CAS最基本的协议过程:图1. CAS基础协议CAS Client与受保护的客户端应用部署在一起,以Filter方式保护受保护的资源。对于访 问受保护资源的每个Web请求,CAS Client会分析该请求的Http请求中是否包含 Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的CAS Server登录地址,并传递Service (也就是要访问的目的资源地址),以便登录成功过后 转回该地址。用户在第3步中输入认证信息,如果登录成功,CAS Server随机产生

3、一个 相当长度、唯一、不可伪造的Service Ticket,并缓存以待将来验证,之后系统自动重定向 到Service所在地址,并为客户端浏览器设置一个Ticket Granted Cookie (TGC),CAS Client在拿到Service和新产生的Ticket过后,在第5,6步中与CAS Server进行身 份合适,以确保Service Ticket的合法性。在该协议中,所有与CAS的交互均采用SSL协议,确保,ST和TGC的安全性。协议 工作过程中会有2次重定向的过程,但是CAS Client与CAS Server之间进行Ticket 验证的过程对于用户是透明的。另外,CAS协议中

4、还提供了 Proxy (代理)模式,以适应更加高级、复杂的应用场景, 具体介绍可以参考CAS官方网站上的相关文档。CAS服务器端配置配置服务器环境首先下载必须的软件:Tomcat6.Q http:/tomcat.apache.org/download-60.cgiWindows Service InstallerJdk: 你可以选择带有jre的安装文件或者你机器里现在有佗环境则只需要下JDK.Java SE 6 Update 10 Beta (不带 JRE)JDK 6 Update 6 (带 JRE)Java Runtime Environment (JRE) 6 Update 6 (JRE)

5、下面按步骤来:1. 安装JDK和JRE一直下一步到安装完成,记住JDK安装的路径。文件去名称惨改EE:Javajdkl.62.设置JDK相关的环境变量1).切换到桌面,右键点击“我的电脑”- 属性- 高级- 如图建立一个JAVA_HOME环境 变量,变量值为JDK的根目录。文档-1.19M/1.19M系统厘性1编辑任编辑a编云祭统变号文档:2.93M/2.93M珏境登星变重值TEMP%USEEFKDFTLE%AppDaTMP%USEllFRDFILE%AppDa新建QT)登皇值FF_NO_HOST_C.HOJAVA_HOMEE :Javaj dkl. 6MYSQL_HOMEE: i.Dat a

6、t ases mys qlNUMBER_OF_FR.2系统变里后)2 建房二变里名(N):2),和上面一样的操作,建立 环境变量 CLASSPATH,值为.;%JAVA_HOME%Jib;%JAVA_HOME%libtools.jar;%JAVA_HOME%jrelibt.jar”变里名 W):CLASSPATH变里值(V):. ; VAVA_HOME%hh; %JAVA_HOME%libVb: 磁定 )| 取消 :编辑Path变量,最变量值最后面加3).还是操作环境变量但不是新建,而是编辑。上;%JAVA_HOME%bin;- - , El V - u&.匕z. 寄 奇3.安装 Tomcat

7、1).一直下一步,中间需要选择安装路径和JVM目录,如果JDK和JRE安装没问题,这里他 应该能自动找得到,否则需要你手动指定一下。中间什么也不用管,有一部让你设置端口, 不用动,保持默认的就行了。2),新增一个CATALINA_HOME环境变量,变量值为你TOMCAT安装时的根目录。3. 测试运行服务器安装后的bin目录共有一下几个文件:bootstrap.jartomcat-juli.jartomcat6.exetomcat6w.exe其中tomcat6w.exe是监控tomcat运行的,可以直接运行,或者缩小到屏幕右下角成为一个 小图标。直接运行tomcat6w.exe或者“tomcat

8、6w /ES/”都可以进入监控配置窗口;或者运行“tomcat6w /MS/”把它缩小到右下角。也可用startup.bat和shutdown.bat来启动和关闭服务。catalina. co re .AprLif eci/cleListener niz library uhich allous optimal performancE in pr was not found on the Java.library.path: E:SJauaxTomcat 6UindawsXsystem32 ;C: Uindous ;C: Windowssystert3i xProgram Files jCyb

9、erLin kxPower2Ga; E: Jah DatabasesMnysqlxbinMJsersXhpSDesktop org.apache.coDtehttpll.HitpllPrctoco1 niz Coyote H TlP/l .1 on http-8080.apache.catalina.startup.Catalina load recessed in 8267 ms .apache.catalina.corE.StandardSeruicE start Catalina.apache.catalina.core uStandardEngine startEngine: Apac

10、he Io!(itcatz6.0.13.apache.coDtehttpll.HttpllPrctocol startHTTP/1.1 on http-3080mon.ChannelSocket init ing on /000.0:8009.apache.Jk.seruEF.JkHain start tinte =0/105 conf ig=null.apache.catalina.startup.Catalina startK908-5-24 20:54:3& org.apache. 言,用The Apache Tomcat Natiue ction enuironrtentsn;.;C:

11、UindawsSunJauaXbin :XWindows;C:UindawsSystem32xWbem jdkl .6xbin ;E: xPHPSerueFphpserueF KS98-5-24 23:54:42 隹息=Initializing K008-5-24 20:54:42Initialization p :丽日-24 20:54:43 org 信息=Starting seruice 2008-5-24 20:54:43 org Starting Serulet :丽日-24 20:54:43 org Starting Coyote :丽日-24 20:54:43 org 1 言息=心

12、 ajp!3 listen 003-5-24 20:54:43 org 信息=k running ID=0 :丽日-24 20:54:43 org 4言息=Server startup i文醇V名称修改日期1公用*3_ bootstrap.jar2007-05-05 9:42漏计笄肛一 -to me at6.exe2007-05-05 9:42# System (C)Vjtomcat6w.exe2007-05-05 9:42,顼 Dont Write【:翌tomcatjulijar2007-05-05 9:42V餐 E:VavaTomcat 6.0b i ntorn cat6.exeu回web

13、访问测试启动后,可以通过浏览器进行访问,测试运行是否正常。用IE或者Firefox等浏览器,输入地址:http:/localhost:8080/-如果安装时修改了端口,请把8080用修改后的值替换。如果能够正常浏览到tomcat欢迎信息,就是正确了,否则就要检查安装是否正确、防火墙的设 置等。经常遇到的一个问题是端口冲突,最常见的就是80端口被占用,导致服务无法正常启动。如果 通过tomcat6 /TS/tomcat6来启动,马上就能够发现提示信息。修改一下 tomcat6confserver.xml 中的端口就能够解决。通常使用80端口的有:1. IIS服务器,因为在windows服务器上,

14、很多都安装了 IIS,而IIS默认的端口就是80.2. skype即时聊天工具,skype的可以穿透防火墙的本领,也是通过占用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

15、.1的80被使用,但.100和.101IP地址的80还未使用。192.168.1.100:80表示.100IP地址的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部署在服务器上就能

16、正常运行了,不 过,在真正使用之前,还需要扩展验证用户的接口。Tomcat配置HTTPS方式1、开始-运行-cmd进入到jdk下的bin目录2、输入如下指令keytool -v -genkey -alias tomcat -keyalg RSA -keystored:/tomcat.keystore -validity 36500附:d:/tomcat.keystore是将生成的tomcat.keystore放到d盘根目录下。-validity 36500”含义是证书有效期,36500表示100年,默认值是90天 注意若要放到c盘,在win7系统下,需要以管理员身份进入到命令行中进行操作,否则

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

18、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 this unit?可以按 照需要填写也可以不填写直接回车,在系统询问“correct?”时,对

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

20、1.1 SSLEnabled = true maxThreads=150 scheme=https secure=true clientAuth = falsekeystoreFile=D:/AppServer/Tomcat/apache-tomcat-6.0.32/conf/tomcat.keystore keystorePass=deleiguo sslProtocol = TLS / 注:方框中的keystore的密码,就是刚才我们设置的“123456”.编辑完成后关闭并保存sever.xml8、Tomcat启动成功后,使用https:/127.0.0.1:8443访问页面页面成功打开即

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

22、192.168.1.250两个IP地址, 在证书生成文件时,如使用了 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

23、.war 拷贝到U tomcat 的 webapps 目录下,修改名称为cas.war.(2) 生成server1的安全证书:keytool -export -alias tomcat -file D:/file.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,如果能看到ca

24、s的登录页面则表示配置成功。cas客户端配置1、准备CAS的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 放在同一

25、个目录如图。 includeL. CAS 1 DB | 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

26、/CAS/T;/ Basic Config of the phpCAS client / Full Hcd_cnfyulljl_ LS Sexvex$ca5_ho5t = T server.cas T;/ Context of trtreCAS erver$cas_context = T/cas T;/ Port of lyuLLi._server. Normally for a https sex $cas_port - S443;4)访问 localhost:8080/examples/example_simple.php(客户端的地址)会跳转到CAS服务器登录页面。默认只要用户名和密码相

27、同就可以通过验证。6 C H &bttp?:/server.cas:8443/cas/loghi?service=http%3A%2F%2Flocalhost%3A8080%2FCASexarnplesl%2Fexamplesimple:php凤凰网 施凯迪5电驴Q QvoCD 1匚电驴站SS SimpleCD公天气 圈百度 O Google H CSDN S CSDN社区 CU物chinaitlab 58 El赶集JASICCentral Authentication Service (CAS)请输入您的用户名和密码.用户名;密玛:I口履向其碱点前提gIH重置登陆成功后会中转到客户端。提示验

28、证成功。C D localhost:8080/CAS examplesl/example simple.php回凤凰网 浇凯迪弓电驴Q QvoCD i匚电驴站SS SimpleCD龄天气 圈百度 Google 3 CSDN 口Successfull Authentication!:Current script:ex:airiple_siirip 1 e. php;session_n;3irie ):sessi on_for: e k :amp 1 e_s i mp 1 e_tz:-hp:sessi on_idO :ST-7AcHSYylr7S3bQbGH9JT-casthe user s lo

29、gin is admin.phpCAS version is 1. 3. 1.L匚俱mit其它客户端的配置按以上步骤配置。即可实现单点。进阶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 至I cas/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;/*判断用户登录信息* p

31、aram 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;elseif(

32、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 中验证方法authentica

33、teUsernamePasswordInternalpublic class UserAuthenticationHandler extends AbstractUsernamePasswordAuthenticationHandler private LoginService loginService;Overrideprotected boolean authenticateUsernamePasswordinternal ( UsernamePasswordCredentials credentials) throwsAuthenticationException String user

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

35、eption(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 loginService;

36、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号