`
boogie
  • 浏览: 234721 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

转帖:利用CAS实现SSO技术

阅读更多
1 安装
1.1系统配置
以下的软件环境是必需的:
1. JDK 1.4.2 or higher
2. Tomcat 5.X

1.2 Tomcat 配置,启用SSL
1. 在要安装CAS的机器上为Tomcat生成用于SSL通讯的密钥:

keytool –genkey –alias tomcat –keyalg RSA
这时需要输入密钥密码和其他参数(第一个参数CN必须设置为CAS机器名,本机使用localhost测试),会在用户目录中生成.keystore密钥文件。

2. 导出密钥文件:

keytool –export –file server.crt –alias tomcat
这时需要输入上一步设定的密码,结果会在当前目录生成server.crt信任状。

3. 为客户端的JVM导入密钥:

keytool –import –keystore $JAVA_HOME\jre\lib\security\cacerts
–file server.crt –alias tomcat
输入密码时注意密码为“changeit”。
4. 修改服务端Tomcat配置文件,启用SSL。修改$CATALINA_HOME\conf\server.xml,去掉有关SSL的那一段的注释,需要在connector字段中加入keystorePass="password"(password即为1、2步中的密码),keystoreFile= "keystorePath"(可以把第一步生成的.keystore复制到$CATALINA_HOME\conf下,这样keystoreFile= "conf/.keystore")。

5. 重启Tomcat,测试https://server:8443是否可以访问(server应换为机器名或IP地址)。

1.3 CAS Server安装

下载CAS Server 3.0.4,将其中的cas.war复制到$CATALINA_HOME\webapps下,当然现在CAS中的用户密码认证Handler是很简陋的,产品化必须重写这部分代码,生成新的cas.jar。这时可以通过访问https://localhost:8443/cas测试CAS是否成功部署,应看到CAS登陆界面。

1.4 CAS Client 部署

利用Tomcat自带的servlets-examples ($CATALINA_HOME\webapps\servlets-examples)和jsp-examples($CATALINA_HOME\ webapps\jsp-examples)进行试验,下载最新版本的Java CAS Client,将casclient.jar复制到这两个项目的WEB-INF目录的lib下(需要新建此目录)。修改两个项目的WEB-INF\ web.xml,添加如下的过滤器:
<!-- CAS Filters -->
    <filter>
        <filter-name>CASFilter</filter-name>
        <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
        <init-param>
            <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
            <param-value>https://server:8443/cas/login</param-value>
        </init-param><!--这里的server是服务端的IP-->
        <init-param>
            <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
            <param-value>https://serName:8443/cas/proxyValidate</param-value>
        </init-param><!--[color=red]这里的serName是服务端的主机名[/color],而且必须是-->
        <init-param>
          <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
          <param-value>client:port</param-value><!--client:port就是需要CAS需要拦截的地址和端口,一般就是这个TOMCAT所启动的IP和port-->
        </init-param>
    </filter>
   
    <filter-mapping>
        <filter-name>CASFilter</filter-name>
        <url-pattern>/servlet/*</url-pattern><!--这里的设置是针对servlets-examples的,针对jsp-examples设置为/*-->
    </filter-mapping>

2 测试
重启Tomcat,定位到servlets-examples,执行任何一个例子都会被重定向到CAS登陆页;再定位到jsp-examples,也会被重定向到CAS登陆页;此时登陆(默认的认证Handler只要求username=password,可任意选择用户名);登录后就会进入jsp- examples;继续定位到servlets-examples,执行任何一个例子也不用再输入密码。


补充:

1、 在多台机器上部署CAS:这些机器必需在同一个域中;服务器端生成证书,客户端导入证书(操作见上)。


2、 CAS服务器与数据库连接:实际环境中我们需要到数据库验证用户有效性,在CAS中配置JDBC连接。

首先,我们需要创建自己的数据库验证器,当然也可以使用Jasig提供的cas-server-jdbc.jar,这里我们修改了cas-server- jdbc的源码满足自己的需要。并把mysql的jdbc驱动和修改后的jar部署到CAS%/WEB_INF/lib/。

修改 %CAS%/WEB_INF/deployerConfigContext..xml,其中关于验证器的一段如下:
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
                            <property name="sql" value="select psw from user where username=?" />
                            <property name="dataSource" ref="dataSource" />
                        </bean>
                    </list>
                </property>
        </bean>

        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
                <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
                <property name="url"><value>jdbc:mysql://192.168.1.246:3306/toodou</value></property>
                <property name="username"><value>username</value></property>
                <property name="password"><value>********</value></property>
        </bean>

分享到:
评论

相关推荐

    Weblogic使用YALE(耶鲁)CAS实现SSO单点登录 的方法.doc

    3. 实现 SSO:在 Weblogic 服务器中实现 SSO 单点登录,使用 CAS 服务器来验证用户的身份。 使用 YALE CAS 实现 SSO 单点登录可以提供一个安全、可靠的身份验证解决方案,适合大多数的企业应用场景。

    CAS实现sso单点登录原理

    "CAS实现sso单点登录原理" CAS(Central Authentication Service)是Yale大学发起的一个企业级的、开源的项目,旨在为Web应用系统提供一种可靠的单点登录解决方法(属于Web SSO)。CAS开始于2001年,并在2004年12月...

    单点登录: 仿CAS sso.zip

    单点登录: 仿CAS。实现了单点登录功能。访问 http://localhost:8090/ssoClient/index/index 或者 http://localhost:8090/ssoClient/login 进行登录 登录成功后会跳转到 ...

    CAS-SSO系统架构 ppt

    ### CAS-SSO系统架构详解:多系统单点登录的实现方案 #### 一、CAS与SSO概念解析 CAS,全称为Central Authentication Service(中央认证服务),是一种集中式身份验证解决方案,旨在统一管理和判断用户的权限。在...

    CAS-SSO-TRIAL.zip_CAS_CAS SSO_java sso_sso

    标签"cas"、"cas_sso"、"java_sso"、"sso"进一步强调了主题内容,分别对应CAS服务、CAS的SSO特性、Java环境下的SSO实现以及SSO技术本身。 在压缩包内的文件" CAS-SSO-TRIAL.doc"很可能是一个详细的文档,提供了关于...

    用YALE -CAS实现SSO

    Yale CAS(Central Authentication Service)是由耶鲁大学开发的一个开源项目,专门用于实现SSO功能。它是一个平台无关的解决方案,易于理解和部署,并且支持代理功能,这意味着它可以与各种不同的应用程序和服务...

    架构师熟悉cas技术方案实现sso

    3. **使用票据实现安全策略**:CAS通过使用票据(Ticket)来实现认证协议的支持,确保数据传输的安全性。 4. **支持授权管理**:CAS允许管理员设置哪些服务可以请求和服务票据(Service Ticket),从而实现更精细的...

    CAS_SSO单点登录实例详细步骤

    CAS(Central Authentication Service)是实现SSO的一种开源解决方案,由耶鲁大学开发并维护。本实例将详细介绍如何配置和实现CAS_SSO单点登录。 **第一步:生成证书** 在部署CAS服务器之前,我们需要创建一个数字...

    CAS(SSO)-.zip_CAS_CAS SSO_java sso_sso java

    5. **CAS协议**:CAS支持多种协议,如原始的CAS协议、CAS 2.0、CAS 3.0、SAML等,这些协议定义了客户端和服务之间交互的格式和流程。 6. **部署和集成**:CAS可以通过修改配置文件轻松地与新的Web应用集成,只需要...

    CAS框架SSO的实现

    CAS框架SSO的实现

    CAS-SSO源码包(两个版本)

    CAS(Central Authentication Service)是基于Java的开源身份验证框架,主要用于实现单一登录(Single Sign-On, SSO)。SSO允许用户在一次登录后访问多个应用系统,而无需为每个系统分别进行认证,大大提升了用户...

    CAS 框架 SSO的实现.pdf

    - **基础协议**:CAS协议的基础流程包括: 1. CASClient接收请求并检查是否有Service Ticket。 2. 如果没有Ticket,则重定向至CASServer进行认证。 3. 用户输入正确的认证信息后,CASServer生成Service Ticket,...

    CAS框架SSO的实现.rar

    使用CAS框架实现SSO单点登录,其中包含: 1、CAS服务器端安装包 2、客户端源码包和所需的所有jar包 3、CAS+框架+SSO的实现.pdf 5、CAS+SSO实例安装和配置指南PDF版.rar 6、Tomcat中使用Yale+CAS实现单点登陆(SSO)....

    落雨博客基于CAS框架的单点登录技术讲解(ppt+code实例+doc)配套资料

    [置顶] SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) http://blog.csdn.net/ae6623/article/details/8851801 [置顶] SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas...

    SSO 单点登录(java)

    3. **中央认证服务器(CAS)**:CAS是SSO的一种实现,它负责验证用户的身份,并向客户端(浏览器)返回一个Ticket。客户端带着Ticket去访问各个子系统,子系统再通过与CAS的交互验证Ticket的合法性。 4. **SAML...

    CAS_SSO框架 官方PPT

    CAS_SSO 框架 官方PPT ....

    cas sso server page

    CAS(Central Authentication Service)是基于Java的开源身份验证框架,主要用于实现单一登录(Single Sign-On,简称SSO)。SSO允许用户在访问多个应用系统时只需登录一次,从而提高用户体验和安全性。在这个“cas ...

    CAS + .net Client 实现 SSO部署说明.rar

    本部署说明主要围绕CAS(Central Authentication Service)服务器与.NET客户端如何协同实现SSO的过程进行阐述。 首先,CAS是一个开源的身份验证协议,它为Web应用程序提供了一个集中式的身份验证服务。CAS服务器...

Global site tag (gtag.js) - Google Analytics