Shibboleth IdP安装指南(Windows版)
在Windows平台上,为了安装Shibboleth IdP,需要先安装JDK, Apache (支持SSL), JK, Tomcat, Ant, 再使用Shibboleth IdP的安装包进行安装。
示例安装中使用的安装包如下:
u jdk-1_5_0_06-windows-i586-p.exe
u apache_
u apache-2[1].0.59_openssl-
u apache-tomcat-
u mod_jk-apache-
u apache-ant-
u shibboleth-idp-
假设IdP安装在DNS名字为idp.pku.edu.cn的电脑上。
参照本安装说明进行安装,将使IdP加入CERNETFed联盟。在安装之前,CERNETFed联盟会为每一台加入的IdP提供以下4个文件:
u 名为idp.pku.edu.cn.crt的服务器证书;
u 名为idp.pku.edu.cn.key.nopwd的服务器私钥;
u 名为cernet-fed-metadata.xml的联盟元文件;
u 名为idp.xml的配置文件;
本次安装中,以上所有源文件放在D:\shibboleth_backup下,记该路径为$BACKUP。
所有软件安装在D:\shibboleth,记该路径为$HOME。
双击安装文件jdk-1_5_0_06-windows-i586-p.exe,将JDK安装到$HOME\jdk_1.5下,将JRE安装到$HOME\jre
在右键单击“我的电脑”,选择“属性”->“高级”->“环境变量”,在用户变量中,如果没有”PATH”,增加PATH,值设为”D:\shibboleth\jdk_1.5\bin”;如果已经有”PATH”,增加路径”D:\shibboleth\jdk_1.5\bin”。
双击安装文件apache_
在用户环境变量PATH中,加入D:\shibboleth\apache_2.0\Apache2\bin .
解压apache-2[1].0.59_openssl-
修改$HOME\apache_2.0\Apache2\conf\httpd.conf,如下:
ServerName idp.pku.edu.cn
(以下内容是根据Apache的安装路径更改原来的httpd.conf中的相应路径)
ServerRoot "D:/shibboleth/apache_2.0/Apache2"
DocumentRoot "D:/shibboleth/apache_2.0/Apache2/htdocs"
<Directory "D:/shibboleth/apache_2.0/Apache2/htdocs">
Alias /icons/ "D:/shibboleth/apache_2.0/Apache2/icons"
<Directory "D:/shibboleth/apache_2.0/Apache2/icons">
AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|ru))?(/.*)?$ "D:/shibboleth/apache_2.0/Apache2/manual$1"
<Directory "D:/shibboleth/apache_2.0/Apache2/manual">
ScriptAlias /cgi-bin/ "D:/shibboleth/apache_2.0/Apache2/cgi-bin/"
<Directory "D:/shibboleth/apache_2.0/Apache2/cgi-bin">
修改$HOME\apache_2.0\Apache2\conf\ssl.conf,如下:
ServerName idp.pku.edu.cn:443
DocumentRoot "D:/shibboleth/apache_2.0/Apache2/htdocs"
将联盟提供的idp.pku.edu.cn.crt和idp.pku.edu.cn.key.nopwd上传到$HOME\apache_2.0\Apache2\conf下。
修改$HOME\apache_2.0\Apache2\conf\ssl.conf,
SSLCertificateFile conf/idp.pku.edu.cn.crt
SSLCertificateKeyFile conf/idp.pku.edu.cn.key.nopwd
双击apache-tomcat-
将mod_jk-apache-
在$HOME\apache_2.0\Apache2\conf\httpd.conf下,加入如下内容:
LoadModule jk_module
modules/mod_jk-apache-
JkLogFile "logs/mod_jk.log"
JkLogLevel debug
JkMount /shibboleth-idp/* ajp13w
JkMount /jsp-examples/* ajp13w
JkWorkerProperty worker.list=ajp13w
JkWorkerProperty worker.ajp13w.type=ajp13
JkWorkerProperty
worker.ajp13w.host=localhost
JkWorkerProperty
worker.ajp13w.port=8009
在$HOME\Tomcat
5.5\conf\server.xml中的元素<Connector port=”
address="127.0.0.1" request.tomcatAuthentication="false"
将Ant安装包apache-ant-
设置用户环境变量ANT_HOME=
D:\shibboleth\apache-ant-
设置用户环境变量JAVA_HOME= D:\shibboleth\jdk_1.5
启动Httpd,必须使用命令行方式,方法如下:
在路径$HOME\apache_2.0\Apache2\bin下
# Apache.exe -k start -DSSL
启动Tomcat,可以使用图形界面方式,也可以使用命令行方式,建议使用命令行方式。
如果使用命令行方式,在路径$HOME\Tomcat 5.5\bin下,
# tomcat5.exe
为了检查到目前为止的安装是否正确,在浏览器中输入以下2个地址:
http://idp.pku.edu.cn/jsp-examples/
https:// idp.pku.edu.cn/jsp-examples/
如果能够显示Tomcat自带的示例程序jsp-examples的页面,则安装正确;否则,之前的安装过程存在错误。
在$HOME\apache_2.0\Apache2\conf下,
#htpasswd �Cc user.db Test_User_01
#htpasswd user.db Test_User_02
此时,在$HOME\apache_2.0\Apache2\conf下出现文件user.db。
在$HOME\apache_2.0\Apache2\conf\httpd.conf中,加入
<Location /shibboleth-idp/SSO>
AuthType Basic
AuthName "Villain Verification Service (VVS)"
AuthUserFile conf/user.db
require valid-user
</Location>
在$HOME\apache_2.0\Apache2\conf\ssl.conf中,加入以下内容:
Listen 8443
<VirtualHost _default_:8443>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
SSLVerifyClient optional_no_ca
SSLVerifyDepth 10
SSLOptions +StdEnvVars +ExportCertData
SSLCertificateFile conf/idp.pku.edu.cn.crt
SSLCertificateKeyFile conf/idp.pku.edu.cn.key.nopwd
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
</VirtualHost>
在$HOME下创建目录shibboleth-idp。
把shibboleth-idp-
在$BACKUP/shibboleth-
#ant
当ant要求提供IdP home directory时,输入:
#D:\shibboleth\shibboleth-idp
当ant要求提供Tomcat home directory时,输入:
#D:\shibboleth\Tomcat 5.5
①将联盟提供的文件cernet-fed-metadata.xml和idp.xml拷贝到$HOME\shibboleth-idp\etc下。
②修改$HOME\shibboleth-idp\etc\idp.xml,
将<FileResolver Id="cernetfed_creds">元素中的两个<Path>元素中的路径进行修改:
<Key>
<Path>file:/d:/shibboleth/apache_2.0/Apache2/conf/idp.pku.edu.cn.key.nopwd</Path>
</Key>
<Certificate>
<Path>file:/d:/shibboleth/apache_2.0/Apache2/conf/idp.pku.edu.cn.crt</Path>
</Certificate>
③修改$HOME \shibboleth-idp\etc\idp.xml,将其中的5处”file:/home/ncpku”改为”file:/d:/shibboleth”。
重启Httpd和Tomcat。
为了检查到目前为止的安装是否正确,在浏览器中输入以下地址:
https://idp.pku.edu.cn/shibboleth-idp/SSO
首先出现一个对话框询问是否接受证书,选择“是”后,弹出窗口要求输入用户名和密码,输入3.1节中设置的用户名和密码,出现包含如下信息的错误页面:
“Shibboleth
Identity Provider Failure
org.opensaml.SAMLException: Invalid data from Service Provider: no target URL
received”
这说明到此为止的安装正确。否则,安装存在错误。
①在$HOME\apache_2.0\Apache2\conf\httpd.conf中,将3.1节中加入的内容注释掉。
②在$HOME\shibboleth-idp下创建文件user.conf,该文件每行的内容为“用户名:密码”,如“haha:haha”。这是以后用户要在门户上输入的用户名和密码。
③在$BACKUP\shibboleth-idp
<filter>
<filter-name>Client Cert AuthN Filter</filter-name>
<filter-class>edu.internet2.middleware.shibboleth.utils.ClientFlatFileFilter</filter-class>
<init-param>
<param-name>portalURL</param-name>
<param-value>interia.pku6.edu.cn</param-value>
</init-param>
<init-param>
<param-name>cmdfile</param-name>
<param-value>D:/shibboleth/shibboleth-idp/user.conf</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Client Cert AuthN Filter</filter-name>
<url-pattern>/SSO</url-pattern>
</filter-mapping>
④把ClientFlatFilter.java拷贝到$BACKUP\shibboleth-idp
⑤在$BACKUP/shibboleth-idp
#ant
此时,若在某个SP上将资源指向该IdP,当用户试图访问资源时,会被重定向到门户,输入②中设定的用户名和密码,就可以访问该资源。也可以先访问认证门户,输入②中设定的用户名和密码,再访问该资源。