CAS 服务端3.5.2与客户端3.2.1配置
CAS单点登录配置全过程
CAS配置全过程软件工具:1.cas-server-3.3.5-release.zip(CAS服务端)2.cas-client-3.1.10-release.zip(CAS客户端)3.apache-tomcat-7.0.40mons-dbcp-all-1.3-r699049.jar5.mysql-connector-java-5.1.18-bin.jar6.cas-server-jdbc-3.0.5-rc2.jar写在前面的话此配置是根据当前系统,当前的版本,仅供参考,如果有什么其他的问题可以一起研究。
第一节:先走通技术障碍第一步:环境部署1.在Tomcat 根目录下创建一个cas目录。
2.下载CAS服务器并解压,打开cas-server-3.3.5\modules,将cas-server-webapp-3.3.5.war复制到刚刚在Tomcat创建的cas目录下,并重命名为ROOT.war3.修改host文件(C:\Windows\System32\drivers\etc)添加127.0.0.1 注意:如果想在一台PC机上模拟这个单点登录,就必须域名重定向,如果是多台PC机,可以不配置此项,下文有用到,可以用相应PC机的IP代替4.修改Tomcat文件下的server.xml(apache-tomcat-7.0.40\conf\server.xml)添加内容:<Host name="" appBase="cas"unpackWARs="true" autoDeploy="true"></Host>5.启动Tomcat服务,查看信息,(如果有报错,可以根据信息查找错误),打开浏览器,输入:8080如果出现以下界面,则CAS服务端配置成功。
注:这个是最简单的CAS服务,只要输入的用户名跟密码一样,就可以正常登陆,在我们实际开发中,这个验证因为跟数据库作比较,接下来,我们就配置数据库校验。
CAS客户端服务器端配置步骤
CAS客户端服务器端配置步骤CAS(Central Authentication Service)是一种Web单点登录协议,允许用户在一次登录后访问多个应用程序。
CAS客户端和服务器端的配置步骤通常包括以下几个方面:一、CAS客户端配置步骤:1.引入CAS客户端依赖。
首先需要在应用程序的构建配置文件中引入CAS客户端的依赖关系,以便在应用程序中使用CAS客户端的功能。
2.配置CAS客户端。
在应用程序的配置文件中添加CAS客户端的相关配置项,包括CAS服务器的地址、端口、协议类型等。
3.设置应用程序的登录认证方式为CAS客户端。
通过配置应用程序的认证方式为CAS客户端,可以将用户的登录认证转交给CAS服务器处理。
4.配置CAS客户端认证过滤器。
CAS客户端通常会提供一个认证过滤器,用于拦截用户的请求并进行认证处理。
配置认证过滤器的URL模式以及其他参数,以确保认证过程正确执行。
5.编写CAS客户端回调处理逻辑。
当用户在CAS服务器上成功登录后,CAS服务器会将用户重定向回客户端应用程序,并在URL中添加一个包含用户信息的票据参数。
客户端应用程序需要编写相应的回调处理逻辑,以解析该票据参数并进行相关的用户信息处理。
二、CAS服务器端配置步骤:1.安装和配置CAS服务器。
首先需要在服务器上安装CAS服务器,并使用CAS服务器提供的配置文件对服务器进行配置。
配置项包括CAS服务器的地址、端口、协议类型等。
2.配置CAS服务器的用户认证源。
CAS服务器通常需要与一个或多个用户认证源(如LDAP、数据库等)进行集成,以验证用户的用户名和密码。
配置CAS服务器与用户认证源的相关参数,确保用户可以被正确认证。
3.配置CAS服务器的服务清单。
在CAS服务器上配置服务清单,即允许用户访问的应用程序列表。
可以指定应用程序的URL地址、安全策略等信息。
4.配置CAS服务器的票据生成和验证方式。
CAS服务器会生成一个票据(Ticket)并返回给客户端应用程序,客户端应用程序在后续请求中需要解析和验证该票据。
CAS客户端获取更多用户信息
CAS客户端获取更多用户信息总述首先,我是用的CAS Server版本是3.5.2,Servlet容器是Tomcat程序中也可能遇到客户端需要得到更多的用户信息,如姓名,手机号,email等更多用户信息的情况。
cas各种版本配置方式也不尽相同,这里讲的是3.5.2版本。
此文章中的CAS 基础环境如下:CAS服务端:cas-server-3.5.2CAS客户端:cas-client-3.2.1第一种方式服务器端配置一、首先需要配置属性attributeRepository首先,你需要到WEB-INF目录找到deployerConfigContext.xml文件,同时配置attributeRepository 如下:<bean class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao"id="attributeRepository"><constructor-arg index="0" ref="dataSource"/><constructor-arg index="1" value="select * from lead_system_user where {0}"/><property name="queryAttributeMapping"><map><entry key="username" value="login_name"/>// 这里的key需写username,value对应数据库用户名字段</map></property><property name="resultAttributeMapping"><map>// 在这里key代表返回数据库对应的字段名// value对应的是客户端获取值的时候的key值// 有的资料说返回的名称字段不能有下划线,这里特意测试了一下发现有下划线也是可以正常能拿到值的,所以如果客户端获取不到值不用担心这里的问题,可能是其它的地方导致的问题。
casserver配置详细过程
看了很多关于sso-cas的源代码调试过程,但是自己做的时候,发现都不全面,自己决定做一个全面的调试过程。
但由于自己对maven项目不熟悉,所以自己新建的web project,一点一点复制核心代码和jar包。
软件:可以去/cas/download上下载cas的最新server端和client端我用的软件是cas-server-3.5.2和cas-client-3.2.1,myeclipse10.0和tomcate7.0, jdk1.7.0_09一、配置cas_server端1.解压后本地可看到2.打开myeclipse--------------->新建web project------------>命名为cas_server3.将cas-server-3.5.2\cas-server-core\src\main\java下面的org拖入项目中的scr文件夹,之后将cas-server-3.5.2\cas-server-webapp\src\main\java\org\jasig\cas\web下的FlowExecutionExceptionResolver.java复制到src目录下的org.jasig.cas.web的包名下,之后将cas-server-3.5.2\cas-server-webapp\src\main\java\org\jasig\cas\web\flow下的所有文件复制到src目录下的org.jasig.cas.web.flow的包名下,将cas-server-3.5.2\cas-server-webapp\src\main\webapp\WEB-INF\classes下面的所有文件夹拖入项目中的src文件夹,可得到如下:报错没有关系,是有些格式不支持,不影响运行。
4.然后找到cas-server-3.5.2\modules下面的cas-server-webapp-3.5.2.war用解压工具解压, 打开压缩包,将其下所有的东西,复制到webroot下,到此,服务器端的部署完成,将其发布到tomcate,启动,输入网址启动后浏览器地址栏输入https://localhost:8443/cas_server/login,出现只要输入相同的用户名和密码就可以登陆成功,进入登陆成功界面。
SSO之CAS单点登录详细搭建
SSO之CAS单点登录详细搭建:环境说明:同一个机器上环境如下:操作系统:windows7 64位JDK版本:1.7.0_80web容器版本:apache-tomcat-7.0.70 64位服务端:cas-3.5.2.1.zip服务端现在地址:https:///apereo/cas/archive/v4.2.3.zip客户端:cas-client-3.3.3-release.zip客户端下载地址:/cas-clients/eclipse版本:eclipse-jee-luna-SR2-win32-x86_64.zip1、将cas-3.5.2.1 cas-client-3.3.3 标准maven工程导入eclipse 打包编译;2、修改本机C:\Windows\System32\drivers\etc\hosts (CAS单点登录系统是基于JAVA安全证书的https 访问,要使用CAS单点登录必须要配置域名, cas是不能通过ip访问的.)附件-->记事本管理员权限编辑hosts文件,加入如下三行代码后保存。
127.0.0.1 127.0.0.1 127.0.0.1 解释: =>> 对应部署cas server的tomcat,这个虚拟域名还用于服务端证书生成 =>> 对应部署client1客户端应用的tomcat =>> 对应部署client2客户端应用的tomcat3、安全证书配置3.1、管理员模式打开cmd命令窗口,生成证书,在cmd窗口输入以下命令:C:\Users\Administrator>keytool -genkey -alias ssoflyer -keyalg RSA -keysize 1024 -keypass flyer2016 -validity 365 -keystore D:\app\flyer.keystore -storepass flyer2016说明:-alias自定义的别名;-keypass指定证书密钥库的密码;-storepass和前面keypass密码相同,否则下面tomcat配置https会访问失败;-keystore指定证书的位置,例如:D:\app\目录,密钥库名称可以自定义,例如:flyer.keystore特别注意:您的名字与姓氏是什么?该项一定要使用网站的域名,例如: ,Cas Client使用httpclient访问cas server的时候,会严格的检查证书。
CAS客户端服务器端配置步骤
CAS客户端服务器端配置步骤CAS(Central Authentication Service)是一种单点登录认证协议,它通过一个中央认证服务器来管理用户凭证,实现不同应用间的认证和授权。
CAS客户端和服务器端的配置是使用CAS进行单点登录的基础,本文将详细介绍CAS客户端和服务器端的配置步骤。
一、CAS服务器端配置步骤1. 安装CAS服务器首先,需要在服务器上安装CAS服务器。
可以从CAS官方网站下载CAS服务器的安装包,并按照官方文档进行安装步骤。
2. 配置CAS服务器在安装完成后,需要进行CAS服务器的配置。
配置文件通常位于CAS安装目录下的config文件夹中,其中最重要的配置文件是cas.properties文件。
在该文件中,可以设置CAS服务器的基本配置信息,如CAS的URL、端口号等。
3. 配置用户存储方式CAS服务器需要一个用户存储方式来管理用户凭证。
可以选择使用数据库、LDAP等作为用户存储方式。
根据实际需求和系统架构,配置相应的用户存储方式,并将其相关配置信息写入cas.properties文件中。
4. 配置服务端接入网址CAS服务器需要知道哪些应用想要接入单点登录系统。
在配置文件中,可以通过添加服务端应用的网址来启用相应的单点登录功能。
配置完成后,服务端应用会被添加到CAS服务器的服务注册列表中。
5. 配置CAS登录界面通过配置CAS登录界面,可以对登录界面进行自定义,以适应不同系统的需求。
CAS登录界面通常包括用户名和密码的输入框以及登录按钮。
可以通过编辑配置文件中的模板文件来自定义CAS登录界面的内容和样式。
二、CAS客户端配置步骤1. 引入CAS客户端库首先,需要将CAS客户端库引入到需要接入单点登录的应用中。
CAS客户端库通常提供了与CAS服务器通信所需的API和身份认证相关的方法。
2. 配置CAS客户端在应用的配置文件中,需要添加CAS客户端配置相关的信息。
配置信息包括CAS服务器的URL、CAS客户端的URL、CAS登录成功后的跳转路径等。
CAS客户端服务器端配置步骤
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 Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CAS Server。
图1 是CAS 最基本的协议过程:图 1. CAS 基础协议CAS Client 与受保护的客户端应用部署在一起,以Filter 方式保护受保护的资源。
对于访问受保护资源的每个Web 请求,CAS Client 会分析该请求的Http 请求中是否包含Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的CAS Server 登录地址,并传递Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。
用户在第3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的Service Ticket,并缓存以待将来验证,之后系统自动重定向到Service 所在地址,并为客户端浏览器设置一个Ticket Granted Cookie(TGC),CAS Client 在拿到Service 和新产生的Ticket 过后,在第5,6 步中与CAS Server 进行身份合适,以确保Service Ticket 的合法性。
CAS3.5.2单点登录详解
服务端cas:从网上下载cas:/在cas下:在cas-client下:解压cas-server-3.5.2-release.zip\cas-server-3.5.2\module\cas-server-webapp-3.5.2.war部署到tomcat上,设置F:\apache-tomcat-6.0.30\webapps\cas\WEB-INF\cas-servlet.xml(大家取实际情况的路径) <bean id="logoutController" class="org.jasig.cas.web.LogoutController"p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"/> 默认为false,这个设置是为了让登出(logout)以后进入到指定页面.设置deployerConfigContext.xml配置数据源和加密:<beanid="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <propertyname="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property> <propertyname="url"><value>jdbc:oracle:thin:@127.0.0.1:1521:orcl</value></property><property name="username"><value>require</value></property><property name="password"><value>require</value></property></bean><!-- <beanid="MD5PasswordEncoder"class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"><constructor-arg index="0"><value>MD5</value></constructor-arg></bean> -->然后注释掉下面这行,这行是为了测试使用,只要账号密码相同就可以通过验证<beanclass="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthentication Handler" />这里看sql语句就知道是连数据库验证账号密码了<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"> <property name="dataSource" ref="dataSource"></property> <property name="sql"value="select userpassword from user_ where useraccount=?"></property><!--<property name="passwordEncoder" ref="MD5PasswordEncoder"></property>--> </bean>CAS服务器端的修改:修改spring-configuration/ticketGrantingTicketCookieGenerator.xml<="" span="">p:cookieSecure="true"p:cookieMaxAge="-1"p:cookieName="CASTGC"p:cookiePath="/cas" />将p:cookieSecure="true" 改为 false false才能避免取消ssl后重复登录这个设置完大家就不要用https了直接使用http:xxx还有一个地方要特别说明:有一个地方设置系统数量的:在spring-configuration/ticketExpirationPolicies.xml设置c:numberOfUses="2";你要加多少个系统就写多少数字。
CAS3.2.1内外网映射问题的解决办法
CAS3.2.1内外网映射问题的解决办法一般项目绝大数都是部署于某一个网络,要吗在内网,要不在外网,部署在内网的目前很多都通过VPN进行内网的访问。
但对于一些项目是部署在内网,然后通过网络路由映射方式进行外网的访问,一般情况如果是通过自己开发的登陆此问题不需要进行任何改动,而当您使用了通用的CAS统一认证服务时,由于WEB应用工程中web.xml配置的CAS地址是固定的,而不是一个动态的地址,当将WEB应用服务器例如TOMCAT端口映射外网后,在访问应用时会自动根据在web.xml文件中去配置对应的CAS地址,而此时的地址只能是内网使用,外网自然无法找到,则无法登陆,而由于项目的本身需要,必须要同时内外网都能访问,而应用已使用了CAS再来变更带来一些不便,同时CAS统一认证方面安全性还是较为有优势的,根据这一情况,前期进行了大量的咨询,都没能找得很好的解决办法,对于公司内部也无人能够解决,后通过百度搜索到了大量信息,并进行了测试,发现很多都无法满足自己的需要,后在无意中发现CNBlogs的一位作者名为BetterFuture的在自己博文中对CAS 内外网功能的一个介绍,但由于没有进行全部的解说和一些代码的问题,并未能成功解决,后联系上了作者,并在其指导下完成自己的项目内网外功能,在此本人根据自己项目的情况进行了一次总结,以便于帮助更多的人;本案例以CAS-Client-3.2.1为例进行说明,对应的服务端为CAS-Server-3.5.2,目前客户端最新的为CAS-Client-3.3.3,对应CAS-Server-4.0以上,其不同版本源码虽有所改变,但此方法仍适用,可以直接用于CAS-Client-3.3.3版本。
第一步,首先要先下载cas-client-3.2.1-release.zip源文件,使用压缩软件打开,其中cas-client-core即为cas-client-core-3.2.1.jar的源代码,其下载地址为:/cas-clients/第二步,将解压的cas-client-core目录导入到Eclipse或MyEclipse工程中,建立JavaProject,生成.project和.classpath文件,即可开始源代码的修改工作,目前这些源代码工程都是使用Maven来构建的,关于Maven不在本文范畴故而不再赘述!第三步,修改源代码,新增工具类,以实现内外网的访问,当完成上述导入后,在Eclipse 或MyEclipse中的目录结构应如下:第五步,在org.jasig.cas.client.util下继续新增工具类HttpConnectionUtil代码如第七步,完成上述源代码的增加工具类后,开始修改CAS中的源代码了,首先修改AuthenticationFilte ,添加静态属性:public static final String CONST_CAS_GATEWAY = "_const_cas_gateway_";第八步,由于修改了constructServiceUrl这个方法,增加了一个参数,由原来该方法只有两个参数现在修改为3个,需要找到该方法的类AbstractCasFilter(源代码的第113或114行中的constructServiceUrl方法)进行修改重载该方法:第九步,由于该方法在其他几处也有调用,故而需要对其他调用的地方进行一一修改,但其他调用处最后Type的参数都统一修改成“validation”,“auth”仅上述AuthenticationFilte方法中的doFilter中使用,具体涉及到的类分别为:AbstractTicketValidationFilter中doFilter方法第169和184行constructServiceUrl方法的调用,增加“validation”参数即可,同时测试类CasFilterTests中也需要进行修改,参数同样为“validation”,具体代码如下:constructServiceUrl(request, response,"validation")到此已完成了CAS-Client-core源代码的修改.第十步,完成上述源代码的增加与修改后,进行编译打成cas-client-core-3.2.1.jar包,分别放置于cas工程以及调用cas的其他WEB应用工程中,同时需要在调用cas的WEB应用工程中增加两个配置文件(放置于web-inf/classes目录下),分别为:cas-service.properties与segment.properties。
CAS3.5.2单点登录详解
服务端cas:从网上下载cas:/在cas下:在cas-client下:解压cas-server-3.5.2-release.zip\cas-server-3.5.2\module\cas-server-webapp-3.5.2.war部署到tomcat上,设置F:\apache-tomcat-6.0.30\webapps\cas\WEB-INF\cas-servlet.xml(大家取实际情况的路径) <bean id="logoutController" class="org.jasig.cas.web.LogoutController"p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"/> 默认为false,这个设置是为了让登出(logout)以后进入到指定页面.设置deployerConfigContext.xml配置数据源和加密:<beanid="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <propertyname="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property> <propertyname="url"><value>jdbc:oracle:thin:@127.0.0.1:1521:orcl</value></property><property name="username"><value>require</value></property><property name="password"><value>require</value></property></bean><!-- <beanid="MD5PasswordEncoder"class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"><constructor-arg index="0"><value>MD5</value></constructor-arg></bean> -->然后注释掉下面这行,这行是为了测试使用,只要账号密码相同就可以通过验证<beanclass="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthentication Handler" />这里看sql语句就知道是连数据库验证账号密码了<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"> <property name="dataSource" ref="dataSource"></property> <property name="sql"value="select userpassword from user_ where useraccount=?"></property><!--<property name="passwordEncoder" ref="MD5PasswordEncoder"></property>--> </bean>CAS服务器端的修改:修改spring-configuration/ticketGrantingTicketCookieGenerator.xml<="" span="">p:cookieSecure="true"p:cookieMaxAge="-1"p:cookieName="CASTGC"p:cookiePath="/cas" />将p:cookieSecure="true" 改为 false false才能避免取消ssl后重复登录这个设置完大家就不要用https了直接使用http:xxx还有一个地方要特别说明:有一个地方设置系统数量的:在spring-configuration/ticketExpirationPolicies.xml设置c:numberOfUses="2";你要加多少个系统就写多少数字。
cas单点登录系统:客户端(client)详细配置
cas单点登录系统:客户端(client)详细配置最近⼀直在研究cas登录中⼼这⼀块的应⽤,分享⼀下记录的⼀些笔记和⼼得。
后⾯会把cas-server端的配置和重构,另外还有这⼏天再搞nginx+cas的https反向代理配置,以及cas的证书相关的知识分享出来。
Cas由两部分组成,Cas Server和Cas Client。
Cas Server是Cas⾃⼰的服务端,⽽Cas Client是Cas客户端,往往客户端需要和我们具体的业务系统进⾏集成,这⾥我们主要详述cas 客户端的配置以及实例第⼀步:我们得有⼀个现成的web项⽬,然后我们要加⼊cas-client-core-xxx.jar到classpath;maven项⽬⽤这个:<dependency><groupId>org.jasig.cas.client</groupId><artifactId>cas-client-core</artifactId><version>3.3.3</version></dependency>第⼆步:配置Filter我们需要在应⽤的web.xml⽂件中配置四个Filter,这四个Filter必须按照固定的顺序来进⾏配置,⽽且它们必须配置在应⽤的其它Filter之前。
它们的先后顺序要求如下:1、AuthenticationFilter2、TicketValidationFilter3、HttpServletRequestWrapperFilter4、AssertionThreadLocalFilter1.1、 配置AuthenticationFilter1.1.1、AuthenticationFilter有两个必须指定的参数:casServerLoginUrl⽤来指定Cas Server登录地址,serverName或service⽤来指定认证成功后需要跳转地址。
CAS配置指南
1准备工具2CAS验证服务器配置1、解压cas-server-3.5.1-release.zip到磁盘,进入modules文件夹下,把cas-server-webapp-3.5.1.war拷贝到Tomcat安装目录的webapps文件夹下。
为了方便在浏览器中浏览,把cas-server-webapp-3.5.1.war文件名修改为cas.war。
2、运行Tomcat。
在浏览器中输入http://localhost:8080/cas,显示登录界面。
输入用户名和密码(用户名和密码相等即可),登录成功。
这样最简单的CAS 验证服务器搭配成功。
图1 Modules文件夹截图图2 SIG-CAS服务端页面3数据库验证方式3.1密码已明文存在数据库中1、复制modules下面所有jar包到tomcat webapps\cas\WEB-INF\lib下。
数据库为Oracle,因此把Oracle驱动包也复制到lib文件夹下。
注意删除重复的jar 包。
Oracle10g.jar 及spring-jdbc.jar。
2、打开D:\apache-tomcat-6.0.30\webapps\cas\WEB-INF\deployerConfigContext.xml文件,在<bean id="authenticationManager"节点上面添加数据源信息:<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property><property name="url"><value>jdbc:oracle:thin:@10.12.21.140:1521:orcl</value></property><property name="username"><value>scott</value></property><property name="password"><value>tiger</value></property></bean>在该文件中搜索“SimpleTestUsernamePasswordAuthenticationHandler”<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHan dler"/>这是cas提供的最简单的验证方式,即用户名和密码相等即可登录成功。
CAS的客户端与服务器配置
一.生成证书并配置服务器:(域名:)第一步:为服务器生成证书:(C:\Program Files\Java\jdk1.6.0_19\bin>)keytool -genkey -v -alias server -keyalg RSA -validity 365 -keystore D:\pccw.keystore -dname "CN=,OU=cn,O=cn,L=cn,ST=cn,C=cn" -storepass 111111 -keypass 111111 //其中CN的值为域名第二步:为客户端生成证书:(C:\Program Files\Java\jdk1.6.0_19\bin>)keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystore D:\pccw.p12 -dname "CN=,OU=cn,L=cn,ST=cn,C=cn" -storepass 111111 -keypass 111111第三步:让服务器信任客户端证书:(C:\Program Files\Java\jdk1.6.0_19\bin>)keytool -export -alias client -keystore D:\pccw.p12 -storetype PKCS12 -storepass 111111 -rfc -file d:\pccw.cer第四步:将该文件导入到服务器的证书库,添加为一个信任证书:(C:\Program Files\Java\jdk1.6.0_19\bin>)keytool -import -v -file D:\pccw.cer -keystore D:\pccw.keystore -storepass 111111keytool -import -alias pccw -keystore cacerts -file D:\pccw.cer -trustcacerts第五步:通过list命令查看服务器的证书库,我们可以看到两个输入,一个是服务器证书,一个是受信任的客户端证书L:(C:\Program Files\Java\jdk1.6.0_19\bin>)keytool -list -keystore D:\pccw.keystore -storepass 111111完成后将生成的.keystore文件放到Tomcat中的conf目录下修改Tomcat中的srever.xml文件:这段代码本来是注释掉的,把注释去掉,并且加上两个属性之后,如下:<Connector port="8443" maxHttpHeaderSize="8192"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" disableUploadTimeout="true"acceptCount="100" scheme="https" secure="true"keystoreFile="conf/odc.keystore" keystorePass="111111"clientAuth="false" sslProtocol="TLS"/>//keystoreFile="conf/server.keystore" 根据实际路径改写//keystorePass="111111" 设置密码将cas-server-3.4.8\modules中的cas-server-webapp-3.4.8.war复制到Tomcat中的webapps目录下,并改名为cas.war开启服务器并输入https://localhost:8443/cas查看是否显示页面P.S. 删除:keytool -delete -trustcacerts -alias tomcat -keystore D:/sdks/jdk1.5.0_11/jre/lib/security/cacerts -storepass changeit 、二.部署客户端:A为cas服务器B为其他电脑上的应用在B电脑中作如下操作:像前面一样生成证书文件下载InstallCert.java文件,javac编译,生成两个文件(InstallCert$SavingTrustManager.class 和InstallCert.class),运行"java InstallCert compA:8443"命令,并且在接下来出现的询问中输入1这样,就将A 添加到了B 的trust store 中。
CAS客户端服务器端配置步骤
CAS客户端服务器端配置步骤CAS(Central Authentication Service)是一种单点登录(SSO)协议,用于统一管理用户登录状态。
CAS客户端和服务器端之间的协作是实现CAS登录功能的关键。
本文将介绍CAS客户端和服务器端的配置步骤。
CAS服务器端配置步骤:2. 配置CAS服务器:安装完成后,需要对CAS服务器进行配置。
主要的配置文件是`cas.properties`,包括CAS服务器的基本设置、日志输出配置等。
根据实际需求,修改配置文件中的参数值,确保服务器按照预期工作。
3.配置认证策略:在CAS服务器上,还需要配置认证策略。
认证策略是用于验证用户身份信息的规则和规定。
常见的认证策略包括用户名密码认证、LDAP认证、数据库认证等。
选择适合自己应用场景的认证策略,并进行相应的配置。
4.配置授权策略:在认证成功后,CAS服务器还需要对用户进行授权。
授权策略定义了哪些用户可以访问哪些资源,以及访问权限的范围和级别。
可以根据需求选择适合的授权策略,并进行相应的配置。
5.配置服务列表:服务列表是CAS服务器管理的所有可以提供认证服务的应用。
需要在CAS服务器中配置服务列表,以便客户端能够识别并与CAS服务器进行交互。
6. 配置CAS登录页面:CAS服务器提供了默认的登录页面,可以通过修改默认的登录页面模板文件,添加自己的Logo、样式等,以便与自己的应用风格保持一致。
2. 配置CAS客户端:在引入CAS客户端库后,需要对CAS客户端进行配置。
主要的配置文件是`cas.properties`,包括CAS服务器的地址、端口号等。
根据实际情况,修改配置文件中的参数值,确保客户端与CAS 服务器能够正常通信。
3.配置应用回调URL:在CAS客户端应用中,需要配置应用的回调URL。
回调URL是CAS服务器验证成功后,将用户重定向到的客户端应用的URL。
确保回调URL与CAS服务器中配置的服务列表中的URL匹配。
CAS详细配置说明
CAS详细配置说明开发环境和工具Jdk1.6cas-client-3.2.1cas-server-3.4.8tomcat-6.0.20配置Tomcat 使用Https 协议Cas单点登陆需要Tomcat 支持Https,主要的工作是配置SSL 协议,其配置过程和配置方法可以参考Tomcat 的相关文档。
不过在生成证书的过程中,会有需要用到主机名的地方,CAS 建议不要使用IP 地址,而要使用机器名或域名。
示例步骤如下:启动cmd:进入tomcat目录1)生成服务端密匙keytool -genkey -alias casserver -keyalg RSA -keypasschangeit-storepasschangeit -keystoreserver.keystore2)生成服务端证书3)keytool -export -alias casserver -storepasschangeit -file server.cer-keystoreserver.keystore命令执行后生成一个server.cer的证书文件拷贝<JAVA_HOME>\jre\lib\security目录下的cacerts文件到当前目录下,导入证书文件到cacerts文件中,执行以下命令keytool -import -trustcacerts -alias server -file server.cer -keystorecacerts -storepasschangeit4)客服端:keytool -import -trustcacerts -alias client -file client.cer-keystorecacerts -storepasschangeit把cacerts文件,拷贝到<JAVA_HOME>\jre\lib\security目录下,覆盖原来的cacerts文件注意:客服端和服务器端都需要生成证书,在生成证书时,需要输入主机名所在地方,请使用域名,如。
CAS示例环境部署及配置完整版
CAS示例环境部署及配置一、示例说明在本示例中将使用cas-server-3.5.0和cas-client-3.2.1搭建一个SSO测试环境,在同一台123456、此时无论访问app1还是app2,都会跳转到cas登录页面,要求用户重新登录。
二、部署文件清单文件安装JDK,配置JAVA_HOME、PATH环境变量;在D盘根目录复制三个TOMCAT文件夹,分别命名为tomcat-for-cas、tomcat-for-client-1、tomcat-for-client-2;这个详细过程就不再详细描述。
四、CAS SERVER部署及通用配置3.1CAS SERVER部署cas-server-xxxx.war的下载地址为,本文以cas-server-3.5.0.zip 为例,解压提取cas-server-3.5.0/modules/cas-server–webapp -3.5.0.war文件,把此文件复制到2.去除登录页面的“Non-secure Connection”提示如果部署CAS SERVER的TOMCAT没有启用HTTPS或者没有通过HTTPS端口访问,则会出现如下提示,想要去掉这个提示,只能修改登录页面。
五、CAS客户端的部署及配置4.1客户端应用的部署按照常规方式部署使用CAS作为单点登录服务器的应用,并测试此应用是否能正常访问,我们使用的是一个测试应用,只有一个jsp页面,将这个应用放到准备好的CAS5.1获取安全证书通常可以从一些安全机构申请安全证书,但是要支付一定的费用,在本试验中,我们使用JDK自带的工具keytool生成一个证书,生成证书的命令为:在上面的命令行中,突出显示的部分为需要修改的部分,其他参数可以默认,也可以参照keytool的参数说明进行修改;其中参数alias指定了证书的别名,以后对证书的操作会cas5.3通过HTTPS访问CAS应用在浏览器中输入,出现如下所示的界面:点击“继续浏览此网站”即可跳转到我们熟悉的登录界面,此时你会发现,那个令人讨厌的“Non-secure Connection”提示也没有了:在登录窗口中,用户名和密码都输入admin(实际上可以输入任何值,只要用户名和密码一致,就可以成功登录,这个是CAS的默认验证规则),然后点击登录,会出现如下界面5.4修改CAS 客户端的配置”;CAS客户端在验证时,会从后台通过代码访问CAS SERVER,此时是通过HTTPS进行访问的,因此运行CAS客户端的JVM会在JVM的证书库中查找与访问的域名对应的证书,然后使用此证书与CAS SERVER建立会话。
CAS客户端服务器端配置步骤
CAS客户端服务器端配置步骤为了实现CAS(Central Authentication Service)客户端和服务器端的配置,我们需要按照以下步骤进行操作:1.安装CAS服务器端:- 部署CAS服务器端,将war文件放置在应用服务器的webapps目录下,并启动应用服务器。
2.配置CAS服务器端:- 打开CAS服务器端的配置文件cas.properties,通常位于WEB-INF/classes目录下。
-在配置文件中,根据需求修改以下配置项:- :CAS服务器的域名或IP地址。
- cas.server.prefix:CAS服务器的URL前缀。
- cas.server.login_url:CAS登录页面的URL。
- cas.server.logout_url:CAS登出页面的URL。
- cas.server.validate_url:CAS票据验证的URL。
- cas.server.service_url:CAS服务的URL。
- cas.server.proxy_callback_url:CAS代理回调的URL。
-保存配置文件并重启CAS服务器。
3.安装CAS客户端:- 将CAS客户端的jar包添加到应用项目中的依赖中。
4.配置CAS客户端:-在应用项目的配置文件中,添加CAS客户端的配置项。
-根据CAS服务器的配置,修改以下配置项:- cas.client.hostname:CAS服务器的域名或IP地址。
- cas.client.login_url:CAS登录页面的URL。
- cas.client.logout_url:CAS登出页面的URL。
- cas.client.service_url:CAS服务的URL。
- cas.client.server_name:CAS客户端的域名或IP地址。
- cas.client.validation_type:CAS票据验证的类型。
- cas.client.proxy_callback_url:CAS代理回调的URL。
cas服务器端和客户端配置
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 Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CAS Server。
图1 是CAS 最基本的协议过程:图 1. CAS 基础协议CAS Client 与受保护的客户端应用部署在一起,以Filter 方式保护受保护的资源。
对于访问受保护资源的每个Web 请求,CAS Client 会分析该请求的Http 请求中是否包含Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的CAS Server 登录地址,并传递Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。
用户在第3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的Service Ticket,并缓存以待将来验证,之后系统自动重定向到Service 所在地址,并为客户端浏览器设置一个Ticket Granted Cookie(TGC),CAS Client 在拿到Service 和新产生的Ticket 过后,在第5,6 步中与CAS Server 进行身份合适,以确保Service Ticket 的合法性。
CAS单点登录HTTP协议版本配置指南
CAS单点登录配置配置(HTTP协议版本)一、CAS版本:服务端是cas-server-3.4.7。
这里不需要源代码,解压zip包中的cas-server-webapp-3.4.7.war 出来即可。
客户端是cas-client-3.2.0。
这里主要用到cas-client-core-3.2.0.jar包,当然在后面如果需要用到,可自行添加。
Apache的日志包这里常用的包是需要的。
二、环境搭建Tomcat6.x + JDK6.x关于搭建基本环境,网上已经一大把:官方WIKI:https:///display/CASUM/HomeIBM技术社区:/developerworks/cn/opensource/os-cn-cas/ITeye技术社区:/topic/544899还有很多就不列举了。
总体来说,使用Http协议的CAS比Https版本的步骤少了ssl的配置,然后在服务端需要修改部分配置文件即可。
基本上的配置是大同小异的,下面就详细记录下来,日后参考。
三、部署配置环境搭建完毕后,按下面的步骤,按部就班走完下面的步骤即可1.CAS服务端配置。
服务端主机名假定为。
(1).端口配置。
我们不使用8443,直接使用80端口,这样看上去舒服点。
进入部署CAS服务端的Tomcat的conf目录下,配置service.xml即可,主要代码如下:...<Connector port="80" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="gbk"/>...<Engine name="Catalina" defaultHost=""><Host name="" appBase="webapps"unpackW ARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"><Context path="" debug="0" docBase="G:/projects//web" reloadable="true" /></Host>...</Engine>...注意到这里之际设置默认的主机是了,另外我将下载下来的cas-server-webapp-3.4.7.war解压到Eclipse中的一个工程中去了(G:/projects//web 目录下),同时把docBase指向该工程的目录下,这样可以随时在IDE中修改配置文件,比用普通的文本编辑器编辑配置文件方便很多。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CAS服务端3.5.2 HTTP SSO 配置四、数据库验证配置在deployerConfigContext.xml中添加配置数据源:<bean id="casDataSource" class="mons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://192.168.1.194:3306/authority"></property> <property name="username" value="root"></property><property name="password" value="123456"></property><property name="maxActive" value="50"></property><property name="maxIdle" value="30"></property><property name="maxWait" value="500"></property><property name="defaultAutoCommit" value="true"></property></bean>authenticationHandlers里添加<bean class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler"><property name="dataSource" ref="casDataSource" /> 数据源<property name="tableUsers" value="user" /> 表名<property name="fieldUser" value="user_name"/> 用户名字段<property name="fieldPassword" value="psw"/>密码字段<property name="passwordEncoder" ref="passwordEncoder"/> 密码加密</bean><bean id="passwordEncoder"class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder" autowire="byName"><constructor-arg value="MD5"/></bean>五,返回用户多个信息<bean id="attributeRepository"class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao"><constructor-arg index="0" ref="casDataSource"/><constructor-arg index="1" value="select user_code,user_name,name real_name,unit_code from user where user_name=?"/><property name="queryAttributeMapping"><map><entry key="username" value="user_name" /> 前面的key一定要是username,后面的user_name就是where后面的</map></property><property name="resultAttributeMapping"><map><!--key为对应的数据库字段名称,value为提供给客户端获取的属性名字,系统会自动填充值--><entry key="user_code" value="user_code"/> 前面是返回的,后面对应的字段名<entry key="user_name" value="user_name"/><entry key="real_name" value="real_name"/><entry key="unit_code" value="unit_code"/></map></property></bean>修改<bean class="org.jasig.cas.services.RegexRegisteredService"><property name="id" value="0" /><property name="name" value="HTTP and IMAP" /><property name="description" value="Allows HTTP(S) and IMAP(S) protocols" /><property name="serviceId" value="^(https?|imaps?)://.*" /><property name="evaluationOrder" value="10000001" /><property name="allowedAttributes"><list><value>user_code</value><value>real_name</value><value>unit_code</value></list></property></bean>六.修改JSP文件增加<c:iftest="${fn:length(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attri butes) > 0}"><cas:attributes><c:forEach var="attr"items="${assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes}"><cas:${fn:escapeXml(attr.key)}>${fn:escapeXml(attr.value)}</cas:${fn:escapeXml(attr.key)}></c:forEach></cas:attributes></c:if>客户端配置:客户端WEB.XML配置<!-- cas client configure start --><filter><filter-name>CAS Authentication Filter</filter-name><filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</f ilter-class><init-param><param-name>casServerLoginUrl</param-name><param-value>http://192.168.1.144:8000/cas</param-value> </init-param><init-param><param-name>serverName</param-name><param-value>http://192.168.1.111:8080</param-value></init-param><init-param><param-name>renew</param-name><param-value>false</param-value></init-param><init-param><param-name>gateway</param-name><param-value>false</param-value></init-param></filter><filter><filter-name>CAS Validation Filter</filter-name><filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketVa lidationFilter</filter-class><init-param><param-name>casServerUrlPrefix</param-name><param-value>http://192.168.1.144:8000/cas/</param-value> </init-param><init-param><param-name>serverName</param-name><param-value>http://192.168.1.111:8080</param-value></init-param><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter><filter-name>CAS HttpServletRequest Wrapper Filter</filter-name><filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</ filter-class></filter><filter><filter-name>CAS Assertion Thread Local Filter</filter-name><filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filte r-class></filter><filter-mapping><filter-name>CAS Authentication Filter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>CAS Validation Filter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>CAS HttpServletRequest Wrapper Filter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>CAS Assertion Thread Local Filter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- cas client configure end -->页面获取用户相关信息<%Assertionassertion=(Assertion)session.getAttribute(AbstractCasFilter.CONST_CAS_ASSERT ION);AttributePrincipal principal=assertion.getPrincipal();String name=principal.getName();Map<String,Object> attributes=principal.getAttributes();Object real_name=attributes.get("real_name");%>。