安装前准备
本文介绍CAS 安装、Shibboleth-idp (linux 版本)安装 、Shibboleth-sp 安装以及配置CAS 为Shibboleth-idp (linux 版本)的验证源 。在下面将按照步骤先后顺序进行介绍。
在安装之前,让我们来了解下需要准备些什么。包括安装文件、机器、域名等。
1 、需要有三个独立的域名。比如本文中CAS 的域名是yj.zju.edu.cn ,Shibboleth-idp 的域名是idp.example.org, Shibboleth-sp 的域名是sp.example.org 。
2 、本文中,实际需要三台机器。其中CAS 安装在windows-xp 系统。Shibboleth-idp 和Shibboleth-sp 分别装在linux 系统上。
3 、在三台机器的系统都已装好的情况下,需要准备如下安装文件:
CAS :
Apache Tomcat (本文采用apache-tomcat-6.0.18 )、
JDK (本文采用jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe )、
cas-server (本文采用cas-server-3.4.2.1-release.zip )。
Shibboleth-idp :
Apache Tomcat (本文采用apache-tomcat-6.0.18 )、
JDK (本文采用jdk-6u14-linux-i586-rpm.bin )、
shibboleth-identityprovider (shibboleth-identityprovider-2.1.5-bin.zip )、
cas-client (cas-client-3.1.10-release.tar.gz )。
Shibboleth-sp :
备注:如果需要使用Shibboleth-sp 来测试,则Shibboleth-sp 和Shibboleth-idp 的两台机器时间要相同。
1 CAS 安装
1.1 系统信息
系统:
Microsoft Window XP
Professional
版本 2002
Service Pack 3
计算机:
Ghost XP SP3 纯净版 Y6.0
Pentium(R) Dual-Core CPU
E5200 @ 2.50GHz
2.52 GHz,1.99GB 的内存
物理地址扩展
2 Shibboleth-idp 安装
2.1 系统信息
[root@idp ~]# lsb_release -a LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch Distributor ID: RedHatEnterpriseServer Description: Red Hat Enterprise Linux Server release 5.2 (Tikanga) Release: 5.2 Codename: Tikanga |
2.2 域名设置
[root@idp ~]# hostname idp [root@idp ~]# domainname example.org |
2.3 linux 下 JDK 安装
1. 准备安装包(jdk-6u14-linux-i586-rpm.bin )
2. 上传到Linux 服务器上(上传到/home/software 目录下)
3. 给安装文件分配可执行权限
[root@idp ~]# cd /home/software [root@idp ~]# chmod 755 jdk-6u14-linux-i586-rpm.bin |
4. 运行文件
[root@idp ~]# ./jdk-6u14-linux-i586-rpm.bin |
接下来会有一段Sun 的协议,敲几次空格键,当询问是否同意的时候,敲yes 就可以了。
程序会自动生成一个jdk-6u14-linux-i586.rpm 文件,这是主程序包。
5. 安装
[root@idp ~]# rpm -ivh jdk-6u14-linux-i586.rpm |
6. 设置环境变量
[root@idp ~]# vi /etc/profile |
在文件末尾添加如何内容:
#set java environment JAVA_HOME=/usr/java/jdk1.6.0_14 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH |
同时按抓shift 和冒号键,再按w 和q ,保存退出。
使环境变量生效:
[root@idp ~]# source /etc/profile |
这样的设置将对所以用户的shell 都生效。
下面来验证一下变量设置是否生效:
[root@idp ~]# java -version java version "1.6.0_14" Java(TM) SE Runtime Environment (build 1.6.0_14-b08) Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing) |
2.4 linux 下 tomcat 安装
1. 准备安装包(apache-tomcat-6.0.18.zip )
2. 上传到Linux 服务器上(上传到/home/software 目录下)
3. 解压安装包
[root@idp ~]# cd /home/software [root@idp ~]# unzip apache-tomcat-6.0.18.zip |
4. 赋权限给相应文件
[root@idp ~]# cd apache-tomcat-6.0.18/bin [root@idp ~]# chmod +x setclasspath.sh [root@idp ~]# chmod +x startup.sh [root@idp ~]# chmod +x shutdown.sh |
4. 启动tomcat
[root@idp ~]# ./startup.sh |
5. 测试
在浏览器输入网址:http://idp.example.org:8080 , 如果能显示tomcat 页面,即表示tomcat 已经正常运行。
2.5 shibboleth-idp 安装
1. 解压shibboleth-idp 的安装文件: [root@idp ~]# cd /home/software [root@idp ~]# jar -xf shibboleth-identityprovider-2.1.5-bin.zip
2. 拷贝endorsed 文件夹到tomcat 目录: [root@idp ~]# cp –rf /export/home/shibboleth-identityprovider-2.1.5/endorsed/ /usr/local/apache-tomcat-6.0.18/
3. 给安装文件install.sh 赋执行权限: [root@idp ~]# cd shibboleth-identityprovider-2.1.5 [root@idp ~]# chmod a+x install.sh
4. 运行安装文件: [root@idp ~]# ./install.sh 这时会要求填写shibboleth 的安装位置( /opt/shibboleth-idp ),本机域名( idp.example.org ),为生成数字证书设置密码(123456 )。
5. 拷贝idp.war 文件到tomcat 应用目录下: [root@idp ~]# cp –rf /opt/shibboleth-idp/war/idp.war /usr/local/apache-tomcat-6.0.18/webapps
6. 启动tomcat : [root@idp ~]# cd /usr/local/apache-tomcat-6.0.18/bin [root@idp ~]# chomd a+x startup.sh shutdown.sh setclasspath.sh [root@idp ~]# ./startup.sh 7. 测试 在浏览器输入地址http://ssoldap.zju.edu.cn:8080/idp/profile/Status ,如果显示ok 则表示shibboleth-idp 安装成功。 |
2.5 HTTPS 验证配置( 8443 端口)
1. 将tomcat6-dta-ssl-1.0.0.jar 文件放置到/usr/local/apache-tomcat-6.0.18/lib 目录下。
2. 修改/usr/local/apache-tomcat-6.0.18/conf/server.xml 文件,在如下内容后添加新的8443 端口配置: <!-- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> --> 新的8443 端口配置: <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLImplementation="edu.internet2.middleware.security.tomcat6.DelegateToApplicationJSSEImplementation" scheme="https" SSLEnabled="true" clientAuth="true" keystoreFile="/opt/shibboleth-idp/credentials/idp.jks" keystorePass="123456" />
3. 重启tomcat : [root@idp ~]# cd /usr/local/apache-tomcat-6.0.18/bin [root@idp ~]# ./shutdown.sh [root@idp ~]# ./startup.sh
4. 测试 在浏览器输入地址https://ssoldap.zju.edu.cn:8443/idp/profile/Status ,如果显示ok 则表示8443 端口配置成功。 |
2.6 HTTPS 验证配置( 443 端口)
1. 如果系统有独立Apache ,443 端口已经被占用了。则需要修改/etc/httpd/conf.d/ssl.conf 文件,将端口443 修改为其他端口(此处修改为1443 端口)。 需要修改两处: “Listen 443 ”修改为“Listen 1443 ”,“ <VirtualHost _default_:443> ”修改为“<VirtualHost _default_:1443> ”。 2. 重启Apache : [root@idp ~]# service httpd restart |
3. 制作密钥库 [root@idp ~]# $JAVA_HOME/bin/keytool -genkey -alias shibbolethidp -keyalg RSA 接着输入相关信息。 注意:名字与姓氏要输入主机名或域名或localhost ,不能随意输入。
4. 修改/usr/local/apache-tomcat-6.0.18/conf/server.xml 文件,在如下内容后添加443 端口配置: <!-- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> --> 443 端口配置: <Connector protocol="org.apache.coyote.http11.Http11Protocol" port="443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="${user.home}/.keystore" keystorePass="123456" clientAuth="false" sslProtocol="TLS"/>
5. 重启tomcat : [root@idp ~]# cd /usr/local/apache-tomcat-6.0.18/bin [root@idp ~]# ./shutdown.sh [root@idp ~]# ./startup.sh
6. 测试 在浏览器输入地址https://ssoldap.zju.edu.cn:443/idp/profile/Status ,如果显示ok 则表示443 端口配置成功。 |
3 Shibboleth-sp 安装
3.1 系统信息
[root@test1 shibboleth]# lsb_release -a LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch Distributor ID: RedHatEnterpriseServer Description: Red Hat Enterprise Linux Server release 5.2 (Tikanga) Release: 5.2 Codename: Tikanga |
3.2 域名设置
3.3 linux 下 JDK 安装
[root@test1 shibboleth]# java -version java version "1.4.2" gij (GNU libgcj) version 4.1.2 20071124 (Red Hat 4.1.2-42)
Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
4 配置 CAS 为 Shibboleth-idp 的验证源
1. 拷贝 casclient 包( cas-client-3.1.10 )中的两个 jar 包( cas-client-core-3.1.10.jar 、 commons-logging-1.1.jar )到 /usr/local/apache-tomcat-6.0.18/webapps/idp/WEB-INF/lib 目录中。 2. 修改 /opt/shibboleth-idp/conf/handler.xml 文件,定义如下验证方法作为 CAS 的验证方法: <LoginHandler xsi:type="RemoteUser"> <AuthenticationMethod> urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified </AuthenticationMethod> </LoginHandler> 3. 修改 /usr/local/apache-tomcat-6.0.18/webapps/idp/WEB-INF/web.xml 文件,增加如下代码: <!-- For CAS client support -->
<!-- CAS client filters --> 下面这段代码是 Define Shib RemoteUser Servlet , web.xml 中已经存在。 <!-- Servlet protected by container user for RemoteUser authentication -->
<servlet>
<servlet-name>RemoteUserAuthHandler</servlet-name>
<servlet-class>edu.internet2.middleware.shibboleth.idp.authn.provider.RemoteUserAuthServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RemoteUserAuthHandler</servlet-name>
<url-pattern>/Authn/RemoteUser</url-pattern>
</servlet-mapping>
4. 重启tomcat : [root@idp ~]# cd /usr/local/apache-tomcat-6.0.18/bin [root@idp ~]# ./shutdown.sh [root@idp ~]# ./startup.sh 5. 测试 在浏览器输入地址https://ssoldap.zju.edu.cn:443/idp/Authn/RemoteUser ,如果能转到cas 的登录页面,并且输入用户名和密码后能跳转回shibboleth-idp 的页面,则表示配置成功。
|