(转)Yale CAS + .net Client 实现 SSO(1)

由于信息系统集成需要,最近研究了一下CAS。从网上找了不少资料,很多是针对Java平台的,为数不多的针对.net Client的文章往往片面的介绍某个方面,照着去做确会遇到大量的问题,特别是“重定向循环”问题,网上的解决方案多种多样,而且并不能完全解决问题。通过最近几天的摸索,终于调试成功,为此,本系列随笔将详细介绍在ASP.NET中,如何通过CAS实现单点登录(Single Sign On),并针对网上的一些资料进行讨论,并提供本人针对“重定向循环”问题的解决办法。

  • 第一部分:安装配置 Tomcat
  • 第二部分:安装配置 CAS
  • 第三部分:实现 ASP.NET WebForm Client
  • 第四部分:实现基于数据库的身份验证
  • 第五部分:扩展基于数据库的身份验证
  • 第六部分:自定义登录页面

软硬件环境

 

  服务器 客户机
IP 地址
  • 192.168.0.123
  • 192.168.0.153
操作系统
  • Windows 2008 x64
  • Windows 7 x64
软件
  • JDK 7u11 Windows x64
  • Apache Tomcat 7.0.35
  • CAS 3.5.1
  • Visual Studio 2012
  • IIS 7(可选)

第一部分:安装配置Tomcat

1. 在服务器上安装JDK。

CAS001001

单击“下一步”。

CAS001002

单击“下一步”。

CAS001003

单击“下一步”。

CAS001004

 

CAS001005

单击“关闭”。

 

2. 在服务器上安装Tomcat。

CAS001006

单击“Next”。

CAS001007

单击“I Agree”。

CAS001008

选择“Full”安装类型,单击“Next”。

CAS001009

单击“Next”。

CAS001010

单击“Next”。

CAS001011

单击“Install”。

CAS001012

 

CAS001013

单击“Finish”。

 

3. 在Tomcat上配置SSL。

(1)生成证书

在C盘根目录下建立子文件夹“Keys”,用于存放证书。

单击“开始 -> 运行",输入“cmd”,单击“确定”启动命令提示符窗口。

输入“cd "c:\Program Files\Java\jre7\bin"”进入jre7的bin目录下。

执行命令“keytool -genkey -alias tomcat -keyalg RSA -storepass changeit -keystore c:\keys\.keystore -validity 3600”创建证书。如图:

CAS001014

 

(2)将证书导入的JDK的证书信任库中

第一步:导出证书。

执行命令“keytool -export -trustcacerts -alias tomcat -file c:\keys\tomcat.cer -keystore c:\keys\.keystore -storepass changeit”将证书导出到Keys文件夹。

第二步:将证书导入到JDK证书信任库。

执行命令“keytool -import -trustcacerts -alias tomcat -file c:\keys\tomcat.cer -keystore "C:\Program Files\Java\jre7\lib\security\cacerts" -storepass changeit”。系统询问是否信任此证书,回答“y”。

CAS001015

其他有用keytool命令(列出信任证书库中所有已有证书,删除库中某个证书):

keytool -list -v -keystore "C:\Program Files\Java\jre7\lib\security\cacerts"

keytool -delete -trustcacerts -alias tomcat -keystore "C:\Program Files\Java\jre7\lib\security\cacerts" -storepass changeit

 

4. 配置server.xml文件。

以管理员身份运行文字编辑器,打开%TOMCAT_HOME%\conf\server.xml。查找SSL配置并将如下内容插入其中。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" 
               maxThreads="150" scheme="https" secure="true" 
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="C:/Keys/.keystore" 
               keystorePass="changeit" />

如下图所示:

 CAS001017

 

4. 测试Tomcat上SSL是否配置成功。

(1)重启Tomcat服务。如图,单击“Stop”,然后单击“Start”。

 CAS001016

(2)打开IE浏览器,分别测试“http://localhost:8080”和“https://localhost:8443/”

CAS001018

由于此网站出具的安全证书不是由受信任的证书颁发机构颁发的,因此IE会有警告信息,这里我们直接点击“继续浏览此网站(不推荐)。 ”。

CAS001019

如果看到上面的界面,说明Tomcat的SSL配置成功。

posted @ 2015-08-26 13:12  海上浪子  阅读(181)  评论(0编辑  收藏  举报