SSO CAS 单点登录

dl_lgf 贡献于2013-03-19

作者 r14433  创建于2012-12-10 09:47:00   修改者r14433  修改于2012-12-11 06:05:00字数6616

文档摘要: 所谓单点登录是指基于用户/会话认证的一个过程,用户只需一次性提供凭证(仅一次登录),就可以访问多个应用。 目前单点登录主要基于Web的多种应用程序,即通过浏览器实现对多个B/S架构应用的统一账户认证。CAS是有耶鲁大学研发的单点登录服务器
关键词:

一、 简介 背景知识: 什么是SSO(Single Sign On)单点登录: 所谓单点登录是指基于用户/会话认证的一个过程,用户只需一次性提供凭证(仅一次登录),就可以访问多个应用。 目前单点登录主要基于Web的多种应用程序,即通过浏览器实现对多个B/S架构应用的统一账户认证。                 1、CAS是有耶鲁大学研发的单点登录服务器                  2、本用例的配置环境 · Tomcat7.0.32 · JDK1.6.0_37 · CAS Service 版本    cas-server-3.5.1-release · CAS Client版本      cas-client-3.2.1-release     二、生成证书 证书对于实现此单点登录非常之重要,证书是服务器端和客户端安全通信的凭证,本用例只是演示,所以用了JDK自带的证书生成工具keytool。当然在实际项目中你可以到专门的证书认证中心购买证书。中文官方网站:http://www.verisign.com/cn/ 1、 用JDK自带的keytool生成证书 命令:keytool -genkey -alias  cas -keyalg RSA -keystore D:/keys/caskey  此命令是生成一个证书,其中 cas 是证书别名,此命令的执行如图所示:                                            其中名字与姓氏这一最好写你的域名,如果在单击测试你可以在C:\Windows\System32\drivers\etc\hosts文件中映射一个虚拟域名,               注意不要写IP。            2、导出证书                 命令:keytool -export -file d:/keys/cas.crt -alias cas -keystore d:/keys/caskey                 如图:                                       密码为上步设置的密码。            3、把证书导入到客户端JDK中。                 命令:keytool -import -keystore d:\keys\cacerts -file D:/keys/cas.crt -alias cas            此命令是把证书导入到JDK中。            如图:                        到此证书导入成功。 4、把d:\keys下生成的cacerts 证书放到客户端的%JAVA_HOME%\jre\lib\security   目录下。若此目录下存在cacerts文件,先删除,在拷贝。             三、配置服务端 1、 下载CAS的服务端,解压,把解压后的文件中modules文件夹中的cas-server-webapp-3.5.1.war文件拷贝的%TOMCAT_HOME%\webapps下,并修改文件名为:cas.war。         2、修改%TOMCAT_HOME%\conf\server.xml文件去掉此文件83到93行之间的注释,修改为:   3、以上配置完成访问http://cas.com:8443/cas出现一下页面                                                               点击继续浏览会出现                                                                    输入用户名admin和密码admin登录则会出现                                                                 登录成功。                          至此,说明服务端配置成功。 四、数据库配置 CAS的服务端,复制modules下面所有jar文件到cas的WEB-INF/lib下,并复制mysql-connector-java-5.1.18.jar (mysql数据库驱动)。 修改配置数据源,在deployerConfigContext.xml中添加数据源。 1、注释下面的代码 这段代码CAS默认的验证方式,就是用户名和密码相同即可通过认证。 2、我们现在做的加入数据库验证,就是用户名密码来自数据库。紧跟上面注释加入以下代码 这个bean 有三参数: a. sql:密码查询语句。 b. dataSource:数据源 c. passwordEncoder:密码的加密算法,若数据库密码字段不加密,可以省略。 3、然后,在上面加入(倒数第二行)数据源 本用例的数据库为mysql,其它的请参照自行配置。 4、若数据库里密码有加密字段,在其后加入   参数:值有MD5,SHA等。        五、LDAP配置 CAS的服务端,复制modules下面所有jar文件到cas的WEB-INF/lib下。下载spring-ldap-1.3.1.RELEASE-all.jar 。放到cas的WEB-INF/lib下。 修改配置数据源,在deployerConfigContext.xml中添加数据源。 1、注释下面的代码 这段代码CAS默认的验证方式,就是用户名和密码相同即可通过认证。 2、我们现在做的加入LDAP验证,就是用户名密码来自数据库。紧跟上面注释加入以下代码 三个参数: a. filter:cn=%u(cn为节点,%u点位符必须为%u或%U) b. serchBase: ou=People,dc=pds,dc=org c. contextSource:LDAP数据源 3. 然后,在上面加入(倒数第二行)数据源    六、配置客户端                    1、添加客户端到你的项目中                           解压cas-client-3.2.1-release.zip,在modules文件夹中有需要的jar包,请根据自己的项目情况选择使用,把相应的jar包放到你项目WEB-INF/lib下。                 2、在客户端项目的web.xml配置过滤器                          view plain 1.    2.        3.        4.         org.jasig.cas.client.session.SingleSignOutHttpSessionListener   5.        6.    7.        8.        9.         CAS Single Sign Out Filter   10.         org.jasig.cas.client.session.SingleSignOutFilter   11.        12.        13.         CAS Single Sign Out Filter   14.         /*   15.        16.    17.        18.        19.         CASFilter   20.         org.jasig.cas.client.authentication.AuthenticationFilter   21.            22.             casServerLoginUrl   23.             https://cas.com:8443/cas/login   24.                25.            26.            27.             serverName   28.    29.             http://cas.com:8080 30.            31.        32.        33.         CASFilter   34.         /*   35.        36.    37.        38.        39.         CAS Validation Filter   40.            41.             org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter   42.            43.             casServerUrlPrefix   44.             https://cas.com:8443/cas   45.            46.            47.             serverName   48.   49.             http://cas.com:8080 50.            51.        52.        53.         CAS Validation Filter   54.         /*   55.        56.    57.        58.        59.         CAS HttpServletRequest Wrapper Filter   60.            61.             org.jasig.cas.client.util.HttpServletRequestWrapperFilter   62.        63.        64.         CAS HttpServletRequest Wrapper Filter   65.         /*   66.        67.    68.        69.        70.         CAS Assertion Thread Local Filter   71.         org.jasig.cas.client.util.AssertionThreadLocalFilter   72.        73.        74.         CAS Assertion Thread Local Filter   75.         /*   76.        77.    78.                         七、常见问题说明                   错误一、                                      若出现以上错原因是:你在客户端的web.xml中①,②的配置有误。              错误二、                           view plain 1. javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:    2. PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:    3. unable to find valid certification path to requested target   若出现此错误是有与你客户端的证书有问题。重新导入你证书。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 3 人已下载

下载文档