Shibboleth的安装以及配置CAS作为验证源

安装前准备

本文介绍CAS 安装、Shibboleth-idp linux 版本)安装Shibboleth-sp 安装以及配置CASShibboleth-idplinux 版本)的验证源 。在下面将按照步骤先后顺序进行介绍。

在安装之前,让我们来了解下需要准备些什么。包括安装文件、机器、域名等。

1 、需要有三个独立的域名。比如本文中CAS 的域名是yj.zju.edu.cnShibboleth-idp 的域名是idp.example.org, Shibboleth-sp 的域名是sp.example.org

2 、本文中,实际需要三台机器。其中CAS 安装在windows-xp 系统。Shibboleth-idpShibboleth-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-spShibboleth-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 和冒号键,再按wq ,保存退出。

使环境变量生效:

[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 -->
<context - param >
  <param - name > serverName </param - name >
  <param - value > idp.example.org </param - value >
</context
- param >

 

<!-- CAS client filters -->
    <filter>
        <filter - name > CAS Authentication Filter </filter - name >
        <filter - class >
            org.jasig.cas.client.authentication.AuthenticationFilter
       
</filter - class >
        <init - param >
            <param - name > casServerLoginUrl </param - name >
            <param - value >
                http://yj.zju.edu.cn:8080/cas/login
           
</param - value >
        </init - param >
    </filter>

   
<filter - mapping >
        <filter - name > CAS Authentication Filter </filter - name >
        <url - pattern > /Authn/RemoteUser </url - pattern >
    </filter - mapping >

   
<filter>
        <filter - name > CAS Validation Filter </filter - name >
        <filter - class >
            org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
       
</filter - class >
        <init - param >
            <param - name > casServerUrlPrefix </param - name >
            <param - value > http://yj.zju.edu.cn:8080/cas </param - value >
        </init - param >
        <init - param >
            <param - name > redirectAfterValidation </param - name >
            <param - value > true </param - value >
        </init - param >
    </filter>

   
<filter - mapping >
        <filter - name > CAS Validation Filter </filter - name >
        <url - pattern > /Authn/RemoteUser </url - pattern >
    </filter - mapping >

   
<filter>
        <filter - name > CAS HttpServletRequest Wrapper Filter </filter - name >
        <filter - class >
            org.jasig.cas.client.util.HttpServletRequestWrapperFilter
       
</filter - class >
    </filter>

   
<filter - mapping >
        <filter - name > CAS HttpServletRequest Wrapper Filter </filter - name >
        <url - pattern > /Authn/RemoteUser </url - pattern >
    </filter - mapping >

下面这段代码是 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 的页面,则表示配置成功。

 


 

 

你可能感兴趣的:(cas)