CAS SSO例ノート(オリジナル-梁健)


まず気持ちを書いてください.
去年最初の会社で作ったプロジェクトはCAS SSO単点登録でしたが、私が作ったものではないので、あまり深く研究していませんでした.この間は暇なので、CAS SSO単点登録を新しく勉強しましょう.ポータルサイトなどの大手サイトでも使われるので、これは確かに不可欠な技術です.この2,3日CAS SSOを配置する時に多くの問題に出会って、助けられなかったことがありますが、堅持してあきらめないでください、最終的にはいつも成功します!
-------------------------------------------------------------------------------------------------------------------------------
次の列に問題が発生したプロセスを示します.
まず、Tomcatがhttpsを構成した後、エラーメッセージを起動します.
次に、正常に起動しますが、CASログインページにジャンプできません.httpsでアクセスできません.
また、CASのログインページに正常にジャンプできますが、ログインをクリックすると、成功ページにジャンプしたときに500エラーを報告し、証明書をインポートしていないと言います.
-------------------------------------------------------------------------------------------------------------------------------
ネット上でたくさんの資料を探しましたが、ほとんど配置が成功しませんでした.これが欠けているのではなく、それが少ないのです.ここで私は私のノートを書いて、絶対にあなたが配置することができることを保証します!さあ、気持ちはここまでにしましょう.とにかく成功した瞬間は気持ちがいいです.
 
転載は出典を明記してください:http://liangjian103.iteye.com/blog/1129056
 
メディア1、クライアントメディアcas-client-2.0.11が必要である.zip
2、サービス端媒体cas-server-3.4.8-release.zip
3、          Tomcat6.0
4、          jdk1.5.0_12
 
ダウンロード先:
http://downloads.jasig.org/cas-clients/
http://downloads.jasig.org/cas/
 
cas-server-3.4.8-release.zipcas-server-3.4.8modulesの下のcas-server-webapp-3.4.8.warはTomcatのwebappディレクトリにコピーし、casと名前を変更します.war
 
一、サービス側の構成(以下の構成はバッチを書いた.)Tomcatのパスワードを変更します:changeit、以下はすべてこのパスワードを使うためです.
tomcat-users.xml
<user username="admin" password="changeit" roles="admin,manager"/>

 
CASはドメイン名しか認識できないため、C:WINDOWSsystem 32driversetchostsを修正するしかなく、加入:127.0.0.1 sso.tomcat.comは以下のバッチ処理で実現するので、一歩一歩車に戻って証明書を設定する情報も必要ありません.サービス側の証明書はドメイン名を構成します.例えば、CN=sso.tomcat.comここではhostsで構成されています.この名前は以下にクライアントのwebを構成する.xmlのフィルタに書いてある一致は、以下で説明します.
set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_12
set TOMCAT_HOME=D:\Program Files\Apache Software Foundation\Tomcat 6.0

set SERVER_DN="CN=sso.tomcat.com, OU=share, O=share, L=sz, S=gd, C=CN"
set KS_PASS=-storepass changeit

keytool -delete -alias tomcat -file client.cert %KS_PASS% -keystore server.keystore 
keytool -delete -alias tomcat1 -trustcacerts -file client.cert %KS_PASS% -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -keypass 

changeit

keytool -genkey -alias tomcat -keyalg RSA -keystore server.keystore -dname %SERVER_DN% %KS_PASS% -keypass changeit
keytool -export -alias tomcat -file client.cert %KS_PASS% -keystore server.keystore 
keytool -import -alias tomcat1 -trustcacerts -file client.cert %KS_PASS% -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -keypass 

changeit  -noprompt

mkdir "%TOMCAT_HOME%\keystore\"
copy server.keystore "%TOMCAT_HOME%\keystore\"

@echo off 

echo "-----------------------------------------------------------"

echo  %TOMCAT_HOME%\conf\server.xml 。

echo "<Connector protocol=org.apache.coyote.http11.Http11NioProtocol"
echo           "port=8443 minSpareThreads=5 maxSpareThreads=75"
echo           "enableLookups=true disableUploadTimeout=true"
echo           "acceptCount=100  maxThreads=200"
echo           "scheme=https secure=true SSLEnabled=true"
echo	       "clientAuth=false sslProtocol=TLS"
echo           "keystoreFile=keystore/server.keystore keystorePass=changeit"
echo           "/>"

echo  JAVA_HOME=C:\Program Files\Java\jdk1.5.0_12
echo  TOMCAT_HOME=D:\Program Files\Apache Software Foundation\Tomcat 6.0
echo  :%TOMCAT_HOME%\keystore\server.keystore

echo  CAS 。 SSO 。

echo "-----------------------------------------------------------"
color 3
echo. && pause

 
保存先:証明書構成を生成します.bat、ダブルクリックして実行します.
Tomcat 6.0confserverを変更します.xmlファイル:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" minSpareThreads="5" maxSpareThreads="75"
           enableLookups="true" disableUploadTimeout="true" 
           acceptCount="100"  maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
		   clientAuth="false" sslProtocol="TLS"
           keystoreFile="keystore/server.keystore" keystorePass="changeit"
           />

 
この構成も長い間困っていましたが、最終的にテストに合格しました.
ここで注意しなければならないのは、証明書のパスとパスワード、keystore/serverです.keystoreこのディレクトリとファイルは上のバッチで作成され、パスワードはデフォルトで「changeit」です.
keystoreFile="keystore/server.keystore" keystorePass="changeit"

 
二、クライアントの配置:あなたのアプリケーションで、webを修正します.xmlファイル、SSOフィルタを追加
	<!-- SSO-Start -->
	<filter>
		<filter-name>CAS Filter</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://sso.tomcat.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://sso.tomcat.com:8443/cas/proxyValidate</param-value>
		</init-param>
		<init-param>
			<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
			<param-value>192.168.9.203:8080</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>CAS Filter</filter-name>
		<url-pattern>*.html</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>CAS Filter</filter-name>
		<url-pattern>*.htm</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>CAS Filter</filter-name>
		<url-pattern>*.action</url-pattern>
	</filter-mapping>
	<!-- SSO-END -->

 
 
Tomcatサービスを起動し、SSOフィルタのページにアクセスするとCASのログインページにジャンプできます.ログインに成功すると、自動的にターゲットページにジャンプします.AアプリケーションとBアプリケーションにSSOフィルタが追加されると、CAS認証サーバにジャンプしてログインし、そのうちの1つがCASにログインすると、別のアプリケーションが自動的にログインします.