凌枫佳境
风霜凌绝顶,红枫绚佳境

配置Portal 使用CAS  进行SSO


在许多项目中,客户由于成本或者多方面考虑,会使用一些开源的SSO方案。CAS正是其中使用较多的一个。本文结合自己做的测试,说明如何在PORTAL上使用CAS。


CAS 介绍


CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:


   * 开源的企业级单点登录解决方案。

   * CAS Server 为需要独立部署的 Web 应用。

   * CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。


CAS 原理和协议


从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。


标准CAS的重定向是利用FILTER来完成的。对于PORTAL而言,如果使用FILTER进行登录的拦截,LTPA TOKEN无法生成。因此需要考虑其它的方式。

参考CAS官网WIKI上一篇http://www.ja-sig.org/wiki/pages/viewpage.action?pageId=19314 文章所描述的对WAS进行CAS客户端配置。使用TAI方式进行登录。大致的原理如下图。

1、用户访问PORTAL的请求被重定向到CAS。

2、CAS判断用户是否已登录。若是,转回PORTAL。若否,登录建立CAS SESSION再转PORTAL。

3、PORTAL 检测用户是否已登录PORTAL(LTPA)。若是,则进入页面。若否,转TAI。TAI通过配置的属性检查CAS TICKET的有效性。由于WAS 配置TAI后,就可以由信任的TAI进行用户身份验证,而WAS的安全机制不作其它的验证工作。CAS TAI验证用户成功后,即返回用户的相关信息由WAS的安全模块根据这些信息创建WAS 的SESSION(LTPA)。



配置过程比较简单:

1、从http://www.ja-sig.org/wiki/pages/viewpage.action?pageId=19314上下载CasClientWebsphere-x.x.x.jar和 casclient-2.1.1.jar 放到<WPSInstallDirectory>/AppServer/lib/ext的目录中。

2、在WAS管理控制台中配置TAI。

这三个属性是必须的。SSL的端口如果非443就需要写在URL上。

CAS_VALIDATION_URL = your cas server url, ex : 'https://myCasServer/cas/serviceValidate'

PRINCIPAL_PREFIX= prefix to add to principal, in order to allow mapping for groups, ex : 'uid='; default is ""

PRINCIPAL_SUFFIX = suffix to add to principal, in order to allow mapping for groups, ex : ',OU=myOu, O=myCompany' default is ""


3、配置SSL。

方式一:

用IE打开CAS的 https://myCasServer/cas/serviceValidate地址。保存其证书为.cer文件。

(也可以使用CAS服务器端签署的客户证书)

用IKEYMAN将证书添加到 DummyClientTrustFile.jks的签署人证书中。

在PORTAL的JVM属性中添加:

  • Name="java.protocol.handler.pkgs"

      Value="com.ibm.net.ssl.internal.www.protocol"

  • Name="javax.net.ssl.keyStoreType"

Value="jks"

  • Name="javax.net.ssl.keyStorePassword"

       Value="WebAS"

  • Name="javax.net.ssl.trustStore"

Value="${USER_INSTALL_ROOT}/etc/DummyClientTrustFile.jks"

  • Name="javax.net.ssl.trustStorePassword"

Value="WebAS"

  • Name="javax.net.ssl.keyStore"

Value="${USER_INSTALL_ROOT} /etc/DummyClientKeyFile.jks" 

重启PORTAL。


方式二:(如有其它证书需要使用时,可选此方案)

将证书添加到cacerts 库中。

再将证书添加到DummyServerTrustFile.jks文件中。(此文件为HTTP 传输链SSL默认的TRUST STORE)

重启PORTAL。


      验证:

PORTAL启动日志中应该包含有Trust Association Init class com.octo.cas.client.websphere.CasTAI511 loaded successfully类似的信息并打印相关属性。

使用https://myCasServer/cas/login?service=http://portal:10038/wps/myportal 进行登录测试。如果可以登录CAS后直接进入PORTAL,说明SSO配置成功。

 

 原文章地址:http://blog.csdn.net/shuneng/archive/2008/10/26/3151990.aspx

posted on 2009-02-20 14:43  凌枫  阅读(2313)  评论(0编辑  收藏  举报