ZCS与CAS(Central Authentication Service)单点登录系统的集成

原文转自:http://opengeek.cn/forum-viewthread-tid-151-fromuid-23.html

 

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客户端


  • [li]从
http://www.ja-sig.org/downloads/cas-clients/下载客户端软件包。3.1.x版本的客户端可以与ZCS 6.0.x、CAS服务器. 3.3.x一起工作。[/li][li]复制cas-client-core-3.1.x.jar文件到/opt/zimbra/jetty/common/lib目录。
[/li]
3.修改ZCS的配置文件

3.1  zimbra应用

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

  1. <filter>
  2.     <filter-name>CasSingleSignOutFilter</filter-name>
  3.     <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
  4. </filter>

  5. <filter-mapping>
  6.     <filter-name>CasSingleSignOutFilter</filter-name>
  7.     <url-pattern>/*</url-pattern>
  8. </filter-mapping>

  9. <listener>
  10.     <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
  11. </listener>

  12. <filter>
  13.     <filter-name>CasAuthenticationFilter</filter-name>
  14.     <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
  15.     <init-param>
  16.         <param-name>casServerLoginUrl</param-name>
  17.         <param-value>https://cas.url.com:port/cas/login</param-value>
  18.     </init-param>
  19.     <init-param>
  20.         <param-name>serverName</param-name>
  21.         <param-value>https://zimbra.url.com:port</param-value>
  22.     </init-param>
  23. </filter>

  24. <filter-mapping>
  25.     <filter-name>CasAuthenticationFilter</filter-name>
  26.     <url-pattern>/public/preauth.jsp</url-pattern>
  27. </filter-mapping>

  28. <filter>
  29.     <filter-name>CasValidationFilter</filter-name>
  30.     <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
  31.     <init-param>
  32.         <param-name>casServerUrlPrefix</param-name>
  33.         <param-value>https://cas.url.com:port/cas</param-value>
  34.     </init-param>
  35.     <init-param>
  36.         <param-name>serverName</param-name>
  37.         <param-value>https://zimbra.url.com:port</param-value>
  38.     </init-param>
  39.     <init-param>
  40.         <param-name>redirectAfterValidation</param-name>
  41.         <param-value>true</param-value>
  42.     </init-param>
  43. </filter>

  44. <filter-mapping>
  45.     <filter-name>CasValidationFilter</filter-name>
  46.     <url-pattern>/*</url-pattern>
  47. </filter-mapping>

  48. <filter>
  49.     <filter-name>CasHttpServletRequestWrapperFilter</filter-name>
  50.     <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
  51. </filter>

  52. <filter-mapping>
  53.     <filter-name>CasHttpServletRequestWrapperFilter</filter-name>
  54.     <url-pattern>/*</url-pattern>
  55. </filter-mapping>
复制代码


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应用


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

5.2  zimbraAdmin应用


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

6.替换登录和注销URL

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


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

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

转载于:https://my.oschina.net/hunte/blog/15649

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值