`
fly1206
  • 浏览: 57245 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用CAS实现单点登陆的相关配置

阅读更多

使用CAS实现单点登陆的相关配置,步骤如下:

1. 配置SSL
   a) 生成证书
   b) 将证书导出为证书文件
   c) 将证书文件导入到java证书库cacerts中
   d) 修改<TOMCAT_HOME>/conf下面得server.xml文件
2. 部署CAS服务器
3. 修改CAS登录的用户库
4. 测试是否配置成功
5. 配置过程中可能会出现的错误

下面就按照上面的步骤详细阐述:
1. 使用SSL
   使用SSL需要使用的java提供的keytool.exe工具,如果配置了java环境变量,可以直接在命令窗口使用,如果没有则学要将目录CD到jdk的bin下。

   a) 生成密钥对
    使用下面的的命令
    keytool -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore
    密码是:changeit
    姓名是:localhost
    其他的提示输入的信息可以随便

    这个命令生成的文件默认在当前目录,即CMD的当前目录C:\Documents and Settings\Administrator(如果没有使用cd命令)。

   b) 将服务器证书导出为证书文件
    使用下面的命令
    keytool -export -alias tomcat -file tomcat.crt -keystore tomcat.keystore
    这里注意一点,导出来的crt证书文件在双击打开的时候可能会看到有红叉在证书上, 这个时候只要按照向导安装完成就可以了。
  
   c) 将证书文件导入到java证书库cacerts中
    将在C:\Documents and Settings\Administrator下的tomcat.crt文件和在C:\Program Files\Java\jdk1.5.0_15\jre\lib\
    (JDK不同位置可能不同)下的security拷贝到c:\下,然后运行下面的命令:
    keytool -import -file c:\tomcat.crt -keystore c:\cacerts -alias tomcat
    然后将cacerts文件拷贝回去,注意备份源文件。
    tomcat.crt可以拷到tomcat_home下,这里为C:\Program Files\tomcat5.5.26。
   
    这里还要注意一点的便是,使用的到底是jdk中的jre还是jre,要将证书导入相应的证书库中。
   
   d) <TOMCAT_HOME>/conf下面得server.xml文件
    打开server.xml文件,定位到
   
   
    <!--
    <Connector port="8443" maxHttpHeaderSize="8192"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" disableUploadTimeout="true"
    acceptCount="100" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"/>
    -->
  
    将下面的注释去掉并加入两个属性:
    keystoreFile="C:\Program Files\tomcat5.5.26\tomcat.keystore"
    keystorePass="changeit"
   
    如下:
   
   
    <Connector port="8443" maxHttpHeaderSize="8192"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" disableUploadTimeout="true"
    acceptCount="100" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS" 
   
    keystoreFile="C:\Program Files\tomcat5.5.26\tomcat.keystore"
    keystorePass="changeit"/>
   
    其中keystoreFile指定tomcat.keystore文件的位置,
    keystorePass指定服务器证书文件的密码。

2. 部署CAS服务器的WAR包
将cas-server-3.1.1-release.zip解压缩,把modules文件夹中的cas-server-webapp-3.1.1.war
文件拷贝到<TOMCAT_HOME>/webapps/下,改名为cas(这里的名字只是一种习惯,当然可以改成其他或不改),然后启动服务器,其会自动解压。

3. 修改CAS登录的用户库
CAS的默认设置是只要用户名和密码相同,即可进行登录成功,真正的系统用户名和密码相同的可能性极小,所以我们需要修改默认的设置。

主要的修改在deployerConfigContext.xml文件里
位置:<TOMCAT_HOME>/webapps/cas/WEB-INF。

首先找到
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />

注释该行,加入下面的bean:
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
   <property name="sql" value="select password from clientuser where username=?" />
   <property name="dataSource" ref="dataSource" />
   </bean>

这里bean的class属性用到的是CAS服务器端封装的JDBC包cas-server-jdbc-3.0.5-rc2.jar里的
QueryDatabaseAuthenticationHandler方法,所以要将此包拷贝到/WEB-INF下的lib中。

这里sql属性是从clientuser表中根据cas登陆名查找密码。

dataSource属性需要再添加一个bean,如下:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   <property name="driverClassName">
     <value>com.mysql.jdbc.Driver</value>
   </property>

   <property name="url">
    <value>jdbc:mysql://192.168.1.130:3306/sso</value>
   </property>

   <property name="username">
    <value>root</value>
   </property>

   <property name="password">
     <value>pass</value>
   </property>
</bean>

4. 测试是否配置成功
启动tomcat之后,新打开得浏览器中输入
https://localhost:8443即可看到安全报警对话框,选择是正确显示。说明CAS服务器已经配置成功并完成。 

5. 配置过程中可能会出现的错误
a) 系统找不到指定的文件:(服务器启动时)
   情况一,
   C:\Documents and Settings\Administrator\.keystore (系统找不到指定的文件。)
   情况二,
   C:\Program Files\tomcat-5.5.26\server.keystore (系统找不到指定的文件。)

   如果您只是在tomcat的server.xml配置中打开了8443端口,但没有用keystoreFile属性,
   tomcat默认去找C:\Documents and Settings\Administrator\.keystore文件,如果没有找到就会出现情况一的错误,
   如果使用了keystoreFile属性,但仍然没有server.keystore文件,就会出现情况二的错误。

b) Keystore was tampered with, or password was incorrect(服务器启动时)
   当使用了keystorePass时且提供了错误的密码便会出现这个错误。

c) No name matching localhost found
   这就是步骤 1-a)要求 姓名是:localhost的原因,当姓名不是localhost的时候,我们在CASFilter中使用localhost就会报这个错。

d) unable to find valid certification path to requested target
   当服务器证书没有导入到jre的cacerts证书库的时候会出现这个错误,同样要注意要讲证书导入到tomcat使用的jre中。

分享到:
评论

相关推荐

    基于Cas的单点登录实现

    `cas-shiro-demo-app` 是一个包含CAS和Shiro整合的示例应用,用于演示如何在实际项目中实现单点登录。这个示例可能包含以下组件: 1. **CAS服务器**:部署并配置CAS服务器,处理用户登录和票证验证。 2. **应用...

    集成cas实现单点登录认证.zip

    本压缩包"集成cas实现单点登录认证.zip"显然包含了关于如何使用CAS(Central Authentication Service)框架集成SSO认证的资源。下面我们将详细探讨相关的知识点。 1. CAS简介:CAS是耶鲁大学开源的一个Web应用的...

    CAS5.3+windows AD域实现单点登录免身份认证.docx

    4. 集成 CAS 和 Windows AD:使用 SPN 和 keytab 文件将 CAS 与 Windows AD 集成,实现单点登录免身份认证。 CAS 和 Windows AD 集成 集成 CAS 和 Windows AD 需要使用 SPN(Service Principal Name)和 keytab ...

    CAS多数据库配置单点登录

    为了实现单点登录,需要在CAS服务器端进行相应的配置。下面将详细介绍CAS服务器端配置的步骤: 1. 配置CAS服务器端 在CAS服务器端,需要配置单点登录的服务端口、服务器名称和认证方式等。 2. 配置客户端认证 在...

    用cas实现mantis单点登录和登出

    2. **配置 CAS 客户端**:Mantis 需要集成 CAS 客户端库来实现单点登录。本文档采用的是 PHP 版本的 CAS 客户端。 ##### 第二步:Mantis 程序修改 1. **添加 CAS 客户端文件夹**: - 在 Mantis 根目录下新建一个...

    CAS单点登录配置

    CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源单点登录(Single Sign-On, SSO)系统,它允许用户通过一个入口点登录,然后在多个应用之间无缝切换,而无需再次验证身份。CAS的目的是...

    cas实现单点登录 功能

    本文档将深入探讨如何使用 CAS 实现 Java 应用中的单点登录功能。 一、CAS 概述 CAS 是一个开源的身份验证框架,其核心目标是为用户提供一种集中式的身份验证方式,使得用户在访问各个应用时无需重复输入用户名和...

    开源ITSM工具itop接入单点登录框架cas实现步骤.docx

    "itop接入CAS单点登录框架实现步骤" 本文将详细介绍开源ITSM工具iTop接入开源单点登录框架CAS的实现方法。该方法经过实践验证,已经在作者的单位中应用。 CAS框架简介 CAS(Central Authentication Service)是一...

    使用CAS整合CXF实现单点登录部署步骤

    以上就是使用CAS整合CXF实现单点登录部署的基本流程。在实际操作中,还需要考虑安全性、异常处理、日志记录等多个方面。具体细节可能因项目需求和环境的不同而有所变化,但以上步骤提供了一个基本的指南。参考提供的...

    CAS单点登录服务器配置详情

    通过以上步骤,CAS实现了单点登录的功能,极大地提升了用户体验和系统的安全性。 ### 四、CAS与HTTPS 在配置CAS服务器时,可以选择使用HTTPS协议来增强通信的安全性。如果选择HTTPS协议,则需要在服务器上配置CAS...

    CAS单点登录配置大全

    **CAS单点登录配置大全** CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源单点登录(Single Sign-On,SSO)协议。它允许用户通过一个统一的认证系统访问多个应用系统,而无需在每个系统...

    cas实现单点登录服务端及客户端

    CAS(Central Authentication Service)是一种广泛使用的开放源代码的单点登录(Single Sign-On,SSO)框架,由耶鲁大学开发并维护。SSO允许用户通过一次登录验证就能访问多个应用系统,无需在每个系统之间单独进行...

    cas实现单点登录,登出(java和php客户端)

    标题中的“CAS实现单点登录,登出(Java和PHP客户端)”指的是使用中央认证服务(Central Authentication Service,简称CAS)来构建一个跨域、跨平台的单点登录(Single Sign-On, SSO)系统。在这样的系统中,用户只...

    Jeecg配置单点登录 登录验证完整代码

    在本场景中,我们关注的是Jeecg如何配置单点登录(Single Sign-On,简称SSO)以及相关的登录验证代码。单点登录是一种网络应用架构中的安全机制,允许用户在一次登录后,就能访问多个相互关联的应用系统,而无需再次...

    利用CAS实现单点登录的完整实例

    总结,通过学习和实践这个"利用CAS实现单点登录的完整实例",你将掌握如何使用Jasig CAS构建一个高效的单点登录系统,从而提升用户体验,简化身份验证管理,并加强系统的安全性。记得深入理解每个步骤,并根据实际...

    liferay+cas实现单点登录步骤

    通过以上步骤,你可以成功地在Liferay 6.1.x环境中设置和配置CAS 3.5.0以实现单点登录功能,为用户提供更加便捷和安全的登录体验。在实际部署中,还需要考虑安全性、性能优化以及与其他系统的集成等问题。

    CAS整合LDAP实现单点登录原理及部署

    CAS整合LDAP实现单点登录的原理及部署学习笔记,cas实现单点登录,ldap负责账户管理

    spring boot整合CAS Client实现单点登陆验证的示例

    Spring Boot 整合 CAS Client 实现单点登录验证的示例 Spring Boot 整合 CAS Client 是一种流行的解决方案,用于实现单点登录(Single ...通过配置 CAS Client,我们可以轻松地实现单点登录,提高用户体验和安全性。

    CAS单点登录的经典配置,以及多数据库的处理方案

    例如,在多个域名下面的应用系统,可以使用 CAS 服务器实现单点登录。 CAS单点登录是Single Sign-On(SSO)的一种实现,具有很多优点和广泛的应用前景。CAS单点登录产品的选择和配置对于企业的信息安全和管理非常...

    cas实现单点登录

    ### CAS实现单点登录(Single Sign-On, SSO)及单点登出(Single Sign-Out, SSO)机制详解 #### 一、引言 随着企业级应用的日益增多,多系统之间的集成变得越来越重要。单点登录技术应运而生,解决了用户需要在多个...

Global site tag (gtag.js) - Google Analytics