由於信息系統集成需要,最近研究了一下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配置成功。
待續...