CAS示例環(huán)境部署及配置(完整版)
CAS 示例環(huán)境部署及配置一、 示例說明在本示例中將使用cas-server-3.5.0和cas-client-3.2.1搭建一個SSO 測試環(huán)境,在同一臺機器上安裝3個tomcat ,分別部署一個c
CAS 示例環(huán)境部署及配置
一、 示例說明
在本示例中將使用cas-server-3.5.0和cas-client-3.2.1搭建一個SSO 測試環(huán)境,在同一臺機器上安裝3個tomcat ,分別部署一個cas server和兩個cas client,這三個應用使用不同的域名訪問(通過配置hosts 文件實現多個域名)。配置完成之后,應達到如下效果:
1、首先訪問app1,此時需要跳轉到cas 登錄頁面,要求用戶進行登錄;
2、輸入正確的用戶名和密碼,登錄成功之后自動跳轉到app1,而且可以獲取到用戶的登錄信息;
3、在同一個瀏覽器中直接訪問app2,此時不需要再次用戶登錄即可正常訪問,而且可以獲取到登錄用戶的信息;
4、反復訪問app1和app2,只要不關閉瀏覽器,就可以一直正常訪問并且可以獲取到用戶信息;
5、在瀏覽器地址欄輸入CAS 登出的路徑(https://cas.demo.com:8443/cas/logout),系統(tǒng)提示成功注銷;
6、此時無論訪問app1還是app2,都會跳轉到cas 登錄頁面,要求用戶重新登錄。
二、 部署文件清單
三、 準備部署環(huán)境
本文演示過程在同一個機器上的(也可以在三臺實體機器或者三個的虛擬機上),根據演示需求,我們需要準備三個不同的域名,分別對應cas server和兩個cas 客戶端應用,用修改hosts 文件的方法添加域名最簡單方便(這個非常重要),在文件 c:windowssystem32driversetchosts 文件中添加三條
127.0.0.1 cas.demo.com
127.0.0.1 app1.demo.com
127.0.0.1 app2.demo.com
其中:cas.demo.com 對應部署cas server的tomcat ,如果這個tomcat 使用https 協(xié)議,則這個虛擬域名還用于證書生成;另外兩個域名對應兩個不同的客戶端應用。
安裝JDK ,配置JAVA_HOME、PATH 環(huán)境變量;在D 盤根目錄復制三個TOMCAT 文件夾,分別命名為tomcat-for-cas 、tomcat-for-client-1、tomcat-for-client-2; 這個詳細過程就不再詳細描述。
四、 CAS SERVER部署及通用配置
3.1 CAS SERVER部署
cas-server-xxxx.war 的下載地址為http://www.jasig.org/cas/download,本文以cas-server-3.5.0.zip 為例,解壓提取cas-server-3.5.0/modules/cas-server–webapp -3.5.0.war 文件,把此文件復制到tomcat-for-caswebapps目錄并解壓到cas 文件夾(如果不準備對CAS 的文件做修改,則可以直接將WAR 文件修改為cas.war 即可)。
啟動tomcat (此tomcat 的默認監(jiān)聽端口為8090),在瀏覽器地址欄輸入:
,在登錄窗口中,用戶名和密碼都輸入admin (實際上可以輸入任何值,只要用戶名和密碼一致,就可以成功登錄,這個是CAS 的默認驗證規(guī)則),然后點擊登錄,會出現如下界面:
至此,CAS SERVER的應用已經部署成功,接下來就是根據情況進行配置。
3.2 CAS SERVER通用配置
1. 配置CAS SERVER節(jié)點名稱
在文件${CAS}/WEB-INF/cas.properties中host.name 的值,比如修改為cas01。
2. 去除登錄頁面的“Non-secure Connection”提示
如果部署CAS SERVER 的TOMCAT 沒有啟用HTTPS 或者沒有通過HTTPS
端口
,訪問,則會出現如下提示,想要去掉這個提示,只能修改登錄頁面。
五、 CAS 客戶端的部署及配置
4.1 客戶端應用的部署
按照常規(guī)方式部署使用CAS 作為單點登錄服務器的應用,并測試此應用是否能正常訪問,我們使用的是一個測試應用,只有一個jsp 頁面,將這個應用放到準備好的tomcat-for-client-2/webapps下面即可,訪問應用的跟目錄http://app2.demo.com:5090/c2,如果顯示正常的頁面即表示應用部署成功,我的測試應用顯示如下信息:
4.2 復制CAS CLIENT需要的JAR 文件
復制CAS 核心文件和其所依賴的JAR ,不同版本的CAS 需要的JAR 文件可能稍微有所不同,本例使用的是cas-client-core-3.2.1,需要的JAR 文件如下所示:
4.3 配置web.xml 文件
有關cas-client 的web.xml 修改的詳細說明見官網介紹:
我們這里只介紹將會用到的最簡單的配置,將如下內容復制到web.xml 中,需要注意的是SingleSignOutFilter 的映射一定要寫在其他過濾器的最前面,至少是過濾器CAS Authentication Filter的前面,然后根據實際情況修改參數即可,如下所示突出顯示的部分:
4.4 部署結果測試
配置完成后,啟動CAS SERVER所在的tomcat 和CAS 客戶端所在的tomcat ,然后打開瀏覽器輸入網址http://app2.demo.com:5090/c2,此時瀏覽器會自動進
,行跳轉到CAS 的登錄頁面,地址欄會顯示如下的地址:
在登錄窗口中,用戶名和密碼都輸入admin ,然后點擊登錄,系統(tǒng)會自動跳轉到登錄之前我們要訪問的地址,出現如下界面:
至此,一個簡單的CAS 測試環(huán)境就搭建成功了。
六、 為CAS SERVER配置HTTPS
5.1 獲取安全證書
通??梢詮囊恍┌踩珯C構申請安全證書,但是要支付一定的費用,在本試驗
,中,我們使用JDK 自帶的工具keytool 生成一個證書,生成證書的命令為:
在上面的命令行中,突出顯示的部分為需要修改的部分,其他參數可以默認,也可以參照keytool 的參數說明進行修改;其中參數alias 指定了證書的別名,以后對證書的操作會用到此名稱,我們這里設置為cas ,keystore 指定了證書存在磁盤上的文件路徑,即我們需要將生成的證書存放在哪里。
創(chuàng)建證書的過程如下所示,需要注意的是途中畫紅方框的地方,這個值需要與訪問cas 時的域名或者cas 所在的計算機名保持一致;最后一個密碼和keystore 的密碼保持一致即可,密碼是casserver 。
5.2 配置CAS SERVER使用的TOMCAT
默認情況下,tomcat 是沒有開
啟https 端口的,因此需要在TOMCAT/conf/server.xml中進行手動配置。
首先找到如下代碼的位置:
,在配置文件中添加紅框中所示的代碼,其中keystoreFile 為我們生成的證書文件的存放路徑,keystorePass 為生成證書時輸入的密碼,本實驗中我把證書文件復制到了server.xml 的目錄下。
5.3 通過HTTPS 訪問CAS 應用
在瀏覽器中輸入https://cas.demo.com:8443/cas,出現如下所示的界面: