由于信息系统集成需要,最近研究了一下CAS。从网上找了不少资料,很多是针对Java平台的,为数不多的针对.net Client的文章往往片面的介绍某个方面,照着去做确会遇到大量的问题,特别是“重定向循环”问题,网上的解决方案多种多样,而且并不能完全解决问题。通过最近几天的摸索,终于调试成功,为此,本系列随笔将详细介绍在ASP.NET中,如何通过CAS实现单点登录(Single Sign On),并针对网上的一些资料进行讨论,并提供本人针对“重定向循环”问题的解决办法。
- 第一部分:安装配置 Tomcat
- 第二部分:安装配置 CAS
- 第三部分:实现 ASP.NET WebForm Client
- 第四部分:实现基于数据库的身份验证
- 第五部分:扩展基于数据库的身份验证
- 第六部分:自定义登录页面
软硬件环境
服务器 | 客户机 | |
IP 地址 |
|
|
操作系统 |
|
|
软件 |
|
|
第一部分:安装配置Tomcat
1. 在服务器上安装JDK。
单击“下一步”。
单击“下一步”。
单击“下一步”。
单击“关闭”。
2. 在服务器上安装Tomcat。
单击“Next”。
单击“I Agree”。
选择“Full”安装类型,单击“Next”。
单击“Next”。
单击“Next”。
单击“Install”。
单击“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”创建证书。如图:
(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”。
其他有用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" />
如下图所示:
4. 测试Tomcat上SSL是否配置成功。
(1)重启Tomcat服务。如图,单击“Stop”,然后单击“Start”。
(2)打开IE浏览器,分别测试“http://localhost:8080”和“https://localhost:8443/”
由于此网站出具的安全证书不是由受信任的证书颁发机构颁发的,因此IE会有警告信息,这里我们直接点击“继续浏览此网站(不推荐)。 ”。
如果看到上面的界面,说明Tomcat的SSL配置成功。