Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25881500
  • 博文数量: 271
  • 博客积分: 10025
  • 博客等级: 上将
  • 技术积分: 3358
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-12 15:28
文章分类

全部博文(271)

文章存档

2010年(71)

2009年(164)

2008年(36)

我的朋友

分类:

2010-05-17 18:41:22

CAS( Central Authentication Service)是由JA-SIG开发的一套开源的单点登录系统,在教育行业有着非常广泛的应用,有不少企业也在使用它。CAS的特点是安全性非常高,可维护性高。下面详细描述一下如何实现ZCS与CAS的集成。

1.配置ZCS的CACert keystore

在zimbra用户下执行以下脚本,将CAS的服务器证书(证书或证书链)导入到ZCS的CACert keystore中:
复制代码
  1. /opt/zimbra/java/bin/keytool -import -file casserver.cert -alias cascert -trustcacerts -keystore /opt/zimbra/java/jre/lib/security/cacerts -storepass changeit
  2. /opt/zimbra/java/bin/keytool -import -file casserver.chain -alias caschain -trustcacerts -keystore /opt/zimbra/java/jre/lib/security/cacerts -storepass changeit


2.部署CAS客户端

  • 从下载客户端软件包。3.1.x版本的客户端可以与ZCS 6.0.x、CAS服务器. 3.3.x一起工作。
  • 复制cas-client-core-3.1.x.jar文件到/opt/zimbra/jetty/common/lib目录。

3.修改ZCS的配置文件

3.1  zimbra应用

将下列代码加入到/opt/zimbra/jetty/etc/zimbra.web.xml文件中,插入位置应在前(约230行),然后替换cas.url.com:port和 zimbra.url.com:port。
默认的端口:CAS为8443,ZCS为443或80。

复制代码
  1.     CasSingleSignOutFilter
  2.     org.jasig.cas.client.session.SingleSignOutFilter
  3.     CasSingleSignOutFilter
  4.     /*
  5.     org.jasig.cas.client.session.SingleSignOutHttpSessionListener
  6.     CasAuthenticationFilter
  7.     org.jasig.cas.client.authentication.AuthenticationFilter
  8.     
  9.         casServerLoginUrl
  10.         
  11.     
  12.     
  13.         serverName
  14.         
  15.     
  16.     CasAuthenticationFilter
  17.     /public/preauth.jsp
  18.     CasValidationFilter
  19.     org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
  20.     
  21.         casServerUrlPrefix
  22.         
  23.     
  24.     
  25.         serverName
  26.         
  27.     
  28.     
  29.         redirectAfterValidation
  30.         true
  31.     
  32.     CasValidationFilter
  33.     /*
  34.     CasHttpServletRequestWrapperFilter
  35.     org.jasig.cas.client.util.HttpServletRequestWrapperFilter
  36.     CasHttpServletRequestWrapperFilter
  37.     /*


3.2  zimbraAdmin应用

针对/opt/zimbra/jetty/etc/zimbraAdmin.web.xml文件进行同上一步的操作(插入内容、替换关键字)。
ZCS管理控制台的默认端口是7071。

4.建立PreAuth键

在zimbra用户身份下执行以下脚本:
[pre]
复制代码
  1. zmprov gdpak yourdomain.com

[/pre]将会得到这样的PreAuth键值: "359d722926fc3daebd0fee5d8b9dad9bbe1646e68041afa8ab662c6a9152e6b9"。

5.建立preauth.jsp文件

5.1  zimbra应用

  • 将附件(附件为ZIP压缩文件,请将扩展名由GIF改为ZIP后打开)中的preauth.jsp-zimbra复制为: /opt/zimbra/jetty/webapps/zimbra/public/preauth.jsp
  • 用上一步提到的PreAuth键值替换其中的DOMAIN_KEY
  • 替换第90处的domainname.com

5.2  zimbraAdmin应用

  • 将 preauth.jsp-zimbraadmin复制为: /opt/zimbra/jetty/webapps/zimbraAdmin/public/preauth.jsp
  • 用上一步提到的PreAuth键值替换其中的DOMAIN_KEY
  • 替换第92处的domainname.com

6.替换登录和注销URL

以zimbra用户身份执行以下脚本,替换ZCS默认的登录和注销URL:
[pre]
复制代码
  1. zmprov md yourdomain.com zimbraWebClientLoginURL
  2. zmprov md yourdomain.com zimbraWebClientLogoutURL
  3. zmprov md yourdomain.com zimbraAdminConsoleLoginURL
  4. zmprov md yourdomain.com zimbraAdminConsoleLogoutURL


默认端口同前。
[/pre]
7.重启ZCS

以zimbra身份运行zmcontrol restart命令重启ZCS服务。



原文:
阅读(8097) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~