利用CAS實現SSO技術

 

1 安裝
1.1系統配置
以下的軟件環境是必需的:
1. JDK 1.5.0.6
2. Tomcat 5.X

1.2 Tomcat 配置,啓用SSL
1. 在要安裝CAS的機器上爲Tomcat生成用於SSL通訊的密鑰:

keytool -genkey -alias tomcat -keyalg RSA

這時需要輸入密鑰密碼和其他參數(第一個參數CN必須設置爲CAS機器名,本機使用zhangyp.com測試),會在用戶目錄中生成.keystore密鑰文件。

2. 導出密鑰文件:

keytool -export -file server.crt -alias tomcat

這時需要輸入上一步設定的密碼,結果會在當前目錄生成server.crt信任狀。

3. 爲客戶端的JVM導入密鑰:

keytool -import -keystore D:/jdk1.5.0_06/jre/lib/security/cacerts -file server.crt -alias tomcat

輸入密碼時注意密碼爲"changeit "。

4. 修改服務端Tomcat配置文件,啓用SSL。修改$CATALINA_HOME\conf\server.xml,去掉有關SSL的那一段的註釋,

需要在connector字段中加入keystorePass="password"(password即爲1、2步中的密碼),

keystoreFile= "keystorePath"(可以把第一步生成的.keystore複製到$CATALINA_HOME\conf下,這樣keystoreFile= "conf/.keystore")。

5. 重啓Tomcat,測試https://zhangyp.com:8443 是否可以訪問。

1.3 CAS Server安裝

下載CAS Server 3.0.4,將其中的cas.war複製到$CATALINA_HOME\webapps下,當然現在CAS中的用戶密碼認證Handler是很簡陋的,產品化必須重寫這部分代碼,生成新的cas.jar。

這時可以通過訪問https://zhangyp.com:8443/cas 測試CAS是否成功部署,應看到CAS登陸界面。

1.4 CAS Client 部署

利用Tomcat自帶的servlets-examples ($CATALINA_HOME\webapps\servlets-examples)和jsp-examples($CATALINA_HOME\ webapps\jsp-examples)進行試驗,下載最新版本的Java CAS Client,將casclient.jar複製到這兩個項目的WEB-INF目錄的lib下。修改兩個項目的WEB-INF\ web.xml,添加如下的過濾器:

代碼

<filter>
	<filter-name>CASFilter</filter-name>
	<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
	<init-param>
		<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
		<param-value>https://zhangyp.com:8443/cas/login</param-value>

	</init-param>
	<init-param>
		<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
		<param-value>https://zhangyp.com:8443/cas/proxyValidate</param-value>

	</init-param>
	<init-param>
		<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
		<param-value>zhangyp.com:8080</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>CASFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

 2 測試
重啓Tomcat,定位到servlets-examples,執行任何一個例子都會被重定向到CAS登陸頁;再定位到jsp-examples,也會被重定向到CAS登陸頁;
此時登陸(默認的認證Handler只要求username=password,可任意選擇用戶名);
登錄後就會進入jsp-examples;繼續定位到servlets-examples,執行任何一個例子也不用再輸入密碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章