SSO配置和应用说明.doc_第1页
SSO配置和应用说明.doc_第2页
SSO配置和应用说明.doc_第3页
SSO配置和应用说明.doc_第4页
SSO配置和应用说明.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SSO配置和应用说明博科单点登录(SSO-Single Sign On)的解决方案拟采用下述两种方案之一:a) CAS + LDAPb) CAS + MySQL(或其他数据库)CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。CAS 具有以下特点: 开源的企业级单点登录解决方案。 CAS Server 为需要独立部署的 Web 应用。 CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。一、 环境要求序号软件产品版本备注1Java jdk1.6.0_10-rc22Tomcat5.5.273CAS server3.3/cas4CAS client2.0.11casclient.jar5安装JDK后,需配置如下环境变量(变量名=变量值):JAVA_HOME=C:Javajdk1.6.0_10JAVA_OPS=-Xms512M -Xmx1024m -XX:MaxNewSize=128m -XX:PermSize=64M -XX:MaxPermSize=128m二、 部署CAS ServerCAS Server 是一套基于 Java 实现的服务,该服务以一个 Java Web Application 单独部署在与 servlet2.3 兼容的 Web 服务器上,另外,由于 Client 与 CAS Server 之间的交互采用 Https 协议,因此部署 CAS Server 的服务器还需要支持 SSL 协议。最后需要扩展验证用户的接口,如DB或LDAP,以满足实际业务的需求。2.1 配置 Tomcat 使用 Https 协议如果希望 Tomcat 支持 Https,主要的工作是配置 SSL 协议,其配置过程和配置方法可以参考 Tomcat 的相关文档。不过在生成证书的过程中,会有需要用到主机名的地方,CAS 建议不要使用 IP 地址,而要使用机器名或域名。修改文件%CATALINA_HOME%/conf/server.xml,启用SSL协议: 其中 keystorePass, keystoreFile, truststoreFile 三个参数与数字证书有关。2.2 部署 CAS ServerCAS Server 是一个 Web 应用包,将前面下载的 cas-server-3.3-release.zip 解开,把其中的 cas-server-webapp-3.3.war 拷贝到 tomcat的 webapps 目录,并更名为 cas.war。由于前面已配置好 tomcat 的 https 协议,可以重新启动 tomcat,然后访问:https:/localhost:8443/cas ,如果能出现正常的 CAS 登录页面,则说明 CAS Server 已经部署成功。虽然 CAS Server 已经部署成功,但这只是一个缺省的实现,在实际使用的时候,还需要根据实际概况做扩展和定制,最主要的是扩展认证 (Authentication) 接口和 CAS Server 的界面。2.2.1 JDBC 认证用户的认证信息可以保存在数据库中。将cas-server-3.3-release.zip 包解开后,在 modules 目录下可以找到包 cas-server-support-jdbc-3.3.jar,其提供了通过 JDBC 连接数据库进行验证的缺省实现,基于该包的支持,只需要做一些配置工作即可实现 JDBC 认证。DataStore 配置在文件 %CATALINA_HOME%/webapps/cas/WEB-INF/deployerConfigContext.xml,添加新的 bean 标签, MySQL配置示例如下: com.mysql.jdbc.Driver jdbc:mysql:/localhost/lportal lportal lportal其中 id 属性为该 DataStore 的标识,在后面配置 AuthenticationHandler 会被引用,另外,需要提供 DataStore 所必需的数据库驱动程序、连接地址、数据库登录用户名以及登录密码。AuthenticationHandler配置 QueryDatabaseAuthenticationHandler 是通过配置一个 SQL 语句查出密码,与所给密码匹配。其中user表示配置数据源的用户表,userName, password为表user中的用户名和密码字段。表示引用对应ref定义的dataSource。2.2.2 LDAP 认证用户的认证信息可以保存在LDAP目录服务其中。将cas-server-3.3-release.zip 包解开后,在 modules 目录下可以找到包 cas-server-support-ldap-3.3.jar,拷贝到cas应用的/lib目录下。DataStore 配置在文件 %CATALINA_HOME%/webapps/cas/WEB-INF/deployerConfigContext.xml,添加新的 bean 标签, ApacheDS配置示例如下: ldap:/ win2003v1:10389/ java.naming.security.authentication simple 其中 id 属性为该 DataStore 的标识,在后面配置 AuthenticationHandler 会被引用,另外,需要提供 LDAP DataStore 所必需的连接地址、绑定用户、密码和认证方式等信息。AuthenticationHandler配置 !- ou=users,dc=platotex,dc=com 指定了要查询的基路径。 cn=%u 指要匹配的用户名。三、配置服务器端的数字证书 1 生成数字证书keytool -genkey -keyalg RSA -alias tomcatsso -dname CN=johnny-PC -storepass datacvg -validity 3666(注:kingone建议使用你自己的主机名或域名)2 导出数字证书keytool -export -alias tomcatsso -file %java_home%/jre/lib/security/tomcatsso.crt -storepass changeit3 将数字证书导入jre的可信区keytool -import -alias tomcatsso -file %java_home%/jre/lib/security/tomcatsso.crt -keystore C:/Java/jre6/lib/security/cacerts -storepass changeit4 查看可信证书列表(检查证书是否加入成功)keytool -list -keystore C:/Java/jre6/lib/security/cacerts -storepass changeit5 删除数字证书keytool -delete -alias tomcatsso -keystore C:/Java/jre6/lib/security/cacerts -storepass changeitkeytool -delete -alias tomcatsso -storepass changeit 常用命令:-genkey 在用户主目录中创建一个默认文件.keystore,还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书-alias 产生别名-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中-keyalg 指定密钥的算法 -validity 指定创建的证书有效期多少天-keysize 指定密钥长度-storepass 指定密钥库的密码-keypass 指定别名条目的密码-dname 指定证书拥有者信息例如: CN=firstName,OU=org,O=bj,L=bj,ST=gd,C=cn-list 显示密钥库中的证书信息 keytool -list -v -keystore 别名 -storepass .-v 显示密钥库中的证书详细信息-export 将别名指定的证书导出到文件 keytool -export -alias 别名 -file 文件名.crt-file 参数指定导出到文件的文件名-delete 删除密钥库中某条目 keytool -delete -alias 别名 -keystore sage-keypasswd 修改密钥库中指定条目口令 keytool -keypasswd -alias 别名 -keypass . -new . -storepass . -keystore 别名-import 将已签名数字证书导入密钥库 keytool -import -alias 别名 -keystore 证书名-file 文件名(可以加.crt 后缀)注意: 1,生成数字证书的时候必须使用主机名或者域名作为证书名称(CN),例如(CN=, OU=example, O=example, L=beijing, ST=beijing, C=china) 2,检查JAVA_HOME环境变量,确认tomcat使用了那一个jre(有时候一台机器上会有多个jre),需要将生成的证书文件导入至web服务器使用的那个jre的信任证书列表中,可以使用keytool -list 命令检查证书是否导入成功。3,生成的.keystore文件需拷贝到Tomcat所在的./conf/目录下。四、部署客户端应用单点登录的目的是为了让多个相关联的应用使用相同的登录过程.4.1 与 CAS Server 建立信任关系假设 CAS Server 单独部署在一台机器 A,而客户端应用部署在机器 B 上,由于客户端应用与 CAS Server 的通信采用 SSL,因此,需要在 A 与 B 的 JRE 之间建立信任关系。首先与 A 机器一样,要生成 B 机器上的证书,配置 Tomcat 的 SSL 协议。其次,下载/andreas/entry/no_more_unable_to_find 的 InstallCert.java,运行“ java InstallCert compA:8443 ”命令,并且在接下来出现的询问中输入 1。这样,就将 A 添加到了 B 的 trust store 中。如果多个客户端应用分别部署在不同机器上,那么每个机器都需要与 CAS Server 所在机器建立信任关系。4.2 Java web应用web.xml中配置 CAS Filter准备好应用Java web应用,将 cas-client-java-2.1.11.zip 中的 ./java/lib/casclient.jar拷贝到 casTest/WEB-INF/lib目录下,修改 web.xml 文件,添加 CAS Filter,如下清单所示:.CASFilteredu.yale.its.tp.cas.client.filter.CASFilteredu.yale.its.tp.cas.client.filter.loginUrlhttps:/win2003v1:8443/cas/loginedu.yale.its.tp.cas.client.filter.validateUrlhttps:/win2003v1:8443/cas/serviceValidateedu.yale.its.tp.cas.client.filter.serverNamewin2003v1:8080CASFilter/protected-pattern/*.对于所有访问满足 casTest1/protected-pattern/ 路径的资源时,都要求到 CAS Server 登录,如果需要整个 casTest1 均受保护,可以将 url-pattern 指定为“/*”。在Java中调用认证用户名的Java代码:Stringusername=(String)session.getAttribute(CASFilter.CAS_FILTER_USER); String username = (String)session.getAttribute(CASFilter.CAS_FILTER_USER); 根据获得的用户名称再去本地数据库查找用户信息,完成验证及角色权限初始化的工作。4.3 CAS .net client设置可参照:ASP.NET Forms Authentication 中的描述。五、几点总结1 单点登录仅仅帮助我们在各个子系统中间安全的共享了一下用户名,省去了用户重复登陆的麻烦,统一了用户帐户的管理,至于用户在每个系统中的权限分配,还是继续交给子系统完成吧。可以开发一个cas server端的集成界面(portal),方便用户在各个子系统中间的快速切换。2 为了完善cas server的用户管理功能,需要在cas 的server,client端各自开放几个调用接口,保证子系统与cas server端的账户信息同步。3 改造老系统时尽量为portal的集成开发新的访问入口(而不是去修改以前的代码使之兼容),这样既可以从集成portal访问,又可以从原有的访问地址访问。4 配置server端及client的服务器时候一定要找对tomcat究竟在使用那一个jre,windows上查看 %JAVA_HOME%变量,linux上echo $JAVA_HOME.5 server端及client端的服务器均需要导入数字证书,否则cas server端回调客户端页面时将会抛出如下异常: PKIX path building failed: vid

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论