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


说明:   

  1. 本文档适用于IdP已经上线,,需要升级到v4.3.3版本的学校;
  2. 适用于需要在openEuler或者AnolisOS系统上重新安装部署IdP的学校;(v4.1.7版本升级,且不需要更换操作系统的请参考:CentOS上IdPv4.1.7升级到v4.3.3
  3. 升级需要搭建新环境安装IdPv4.3.3。在进行IdPv4.3.3安装试验时,保留老版本在线运行和idp服务正常。新版本与老版本配置相同的hostname和域名,区别是:安装调试阶段,新版本将域名解析设置在浏览器本机hosts文件中,安装完成后,修改域名服务器的配置将域名解析到新版本,完成新旧系统切换。

建议升级步骤:

  1. 准备新的虚机或服务器环境,使用新IP地址。
  2. 根据本操作手册安装新版本IdP4.3.3,安装过程中请使用旧版本IdP的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.3.3 新版本的IdP在生成persistent-id时默认采用BASE32 encoding方式,即生成的persistent-id不区分大小写,学校可自行修改saml-nameid.properties配置文件将encoding方式改为BASE64方式。
  7. 如果新旧版本IdPv均使用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配置项)。v4.1.7不需要操作这步。
  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
    数据库导入命令:
    ./mysql -u root -p****** idp_db</root/mysqlbackup-DBidp_db.sql  (此处需要修改)
  9. 修改/opt/shibboleth-idp/conf/metadata-providers.xml文件,IdP433:上线配置(适用于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文件,删除增加的配置。


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