IdP4:将IdP 从v3.4.3/v3.4.7升级到v4.1.7

说明:   

  1. 本文档适用于IdP已经上线且版本为v3.4.3或者v3.4.7的学校;
  2. 考虑到IdP配置的复杂性,不建议从IdPv3版本原地升级到IdPv4.1.7,建议搭建新环境安装IdPv4.1.7,以域名切换的方式完成新旧系统切换;
  3. 在进行IdPv4.1.7安装试验时,保留老版本运行环境。新版本与老版本配置相同的hostname和域名,区别是:安装调试阶段,新版本将域名解析设置在本机hosts文件中,安装完成后,修改域名服务器的配置将域名解析到新版本,完成新旧切换。

建议升级步骤:

  1. 准备新的虚机或服务器环境,使用新IP地址。
  2. 根据本操作手册安装新版本IdP4.1.7,安装过程中请使用旧版本IdPv3的hostname及域名。注意:本阶段,请把域名解析配置在本机hosts文件中,不要修改DNS服务配置。
  3. 升级安装与新安装IdP4的步骤中第1到第8步是相同的,第8/11步执行完毕后,请执行下面的步骤从旧版本IdP系统复制相关证书及文件到新装的IdP系统。
  4. 第8/11步执行完成后,从旧版本IdP系统复制credentials目录下的证书文件、metadata文件以及salt值到新系统。
    具体步骤包括:
    复制旧版本IdP系统/opt/shibboleth-idp/credentials目录下 idp-backchannel.crt  idp-backchannel.p12  idp-encryption.crt  idp-encryption.key  idp-signing.crt  idp-signing.key  sealer.jks  sealer.kver等6个证书文件到新IdP系统相同目录下。
    复制旧版本IdP系统/opt/shibboleth-idp/metadata目录下 idp-metadata.xml 到新IdP系统相同目录下。
    复制旧版本IdP系统/opt/shibboleth-idp/conf目录下metadata-providers.xml 文件到新IdP系统相同目录下。
    记录旧版本IdP系统/opt/shibboleth-idp/conf/idp.properties文件中的idp.sealer.storePassword   idp.sealer.keyPassword 两个配置项密码,并将其输入新IdP系统的/opt/shibboleth-idp/credentials/secrets.properties文件中
    记录旧版本IdP系统/opt/shibboleth-idp/conf/saml-nameid.properties(或者attribute-resolver.xml)文件中idp.persistentId.salt 值,并将其输入新IdP系统的/opt/shibboleth-idp/credentials/secrets.properties文件中并替换安装过程中自动生成的salt值。如果是旧IdP是3.4.3版本,salt值可能保存在conf/attribute-resolver.xml文件中。
  5. 请勿直接复制/opt/shibboleth-idp/conf/attribute-resolver.xml配置文件到新IdP系统,请手动根据安装步骤第5/11步配置attribute-resolver.xml文件。
  6. 与旧版本IdP相比,4.1.7新版本的IdP在生成persistent-id时默认采用BASE32 encoding方式,即生成的persistent-id不区分大小写,学校可自行修改saml-nameid.properties配置文件将encoding方式改为BASE64方式。
  7. 如果新旧版本IdP均使用ldap认证源,则请复制旧版本IdP系统/opt/shibboleth-idp/conf目录下ldap.properties到新IdP系统相同目录下,并将该文件中idp.authn.LDAP.bindDNCredential = xxxxxxx配置项移到 /opt/shibboleth-idp/credentials/secrets.properties文件(请删除ldap.properties文件中的idp.authn.LDAP.bindDNCredential配置项)。
  8. 部分学校旧版本IdP使用mysql-mariaDB保存persistentid, 学校可根据自身需要考虑将旧版本IdP服务器中mysql shibpid表中的数据导出并导入新IdP系统的mysql数据库中。
    数据库导出命令:
    /opt/rh/rh-mariadb103/root/usr/bin/mysqldump -uroot -p****** --databases idp_db >/root/mysqlbackup-DBidp_db.sql
    数据库导入命令:
    /opt/rh/rh-mariadb103/root/usr/bin/mysql -u root -p****** idp_db</root/mysqlbackup-DBidp_db.sql
  9. 修改/opt/shibboleth-idp/conf/metadata-providers.xml文件,IdP4:收到上线成功邮件后配置步骤(适用于ldap/oauth/CAS认证方式) 按照方法二介绍的步骤修改配置文件。
  10. 重启新版本IdP jetty服务,重启命令:systemctl restart jetty 。
  11. 准备一台测试PC机,模拟用户访问端,以Windows系统为例,修改C:\Windows\System32\drivers\etc\hosts文件, 添加本校IdP域名解析到新IP地址的解析条目:  xxx.xxx.xxx.xxx  idp.xxx.edu.cn。 
  12. 从测试PC上访问https://sptest.pku.edu.cn/secure, 并测试本校IdP认证功能是否正常。
  13. 升级安装IdP不需要第9-11步等步骤。
  14. 新版本IdP测试成功后,请DNS管理员切换域名解析到新版本IdP系统(修改DNS,将IdP域名解析指向新系统IP地址)即可实现新旧系统的切换。
  15. 测试PC机修改C:\Windows\System32\drivers\etc\hosts文件,删除增加的配置。

版权所有©北京大学计算中心