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

时间:2021-01-13 08:20:31

由于信息系统集成需要,最近研究了一下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。

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

单击“下一步”。

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

单击“下一步”。

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

单击“下一步”。

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

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

单击“关闭”。

2. 在服务器上安装Tomcat。

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

单击“Next”。

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

单击“I Agree”。

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

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

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

单击“Next”。

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

单击“Next”。

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

单击“Install”。

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

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

单击“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”创建证书。如图:

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

(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”。

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

其他有用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" />

如下图所示:

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

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

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

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

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

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

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

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

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