写点什么

Shibboleth IdP4 升级指南

用户头像
冯骐
关注
发布于: 2021 年 03 月 05 日

背景

Shibboleth 的上一个大版本 IdP3 自 2020 年 12 月 31 日以后,就算结束生命周期停止维护了。新的 IdP4 也已经发布,目前最新的版本是 4.0.1


和当初 IdP2 升级 IdP3 相比,这次的大版本升级平滑许多了,配置文件也基本保持了上一个版本的风格。如果你的 IdP3 所用的 Java 环境已经是 11 的话,他甚至可以直接覆盖升级,他会自动兼容旧版的配置文件。但是如果是全新安装的 IdP4,则需要手动去重新做配置工作。老的配置文件直接覆盖会出现问题。


大体上,IdP4 相比 IdP3 的变化主要有:

  • Java 最低版本要求从 8 提高到 11

  • 现在默认开启了单点注销的功能

  • 属性定义抽象了出来,配置文件更简洁了

  • 更多的属性获取方式,例如 HTTP 接口获取数据


更详细的可以参考我们汉化整理的 ReleaseNote


升级指南

简单来说,如果现在的 IdP3 已经是 Java11 了,并且又没啥时间操心这东西。那下载新的安装包原地覆盖升级即可。Shibboleth 的安装程序会自动解决配置兼容的问题。


但是如果你的 IdP3 现在是 Java8 的环境,或者你有一定的时间来折腾一下这个玩意。那我们强烈建议新装一台 IdP4,使用新的官方建议的配置风格进行配置。通过本地 Host 域名解析的方式,可以在完全不影响现网生产环境的情况下完成测试验证,实现无感知的 IdP 升级。

前通道和后通道

跨校认证(上海教育认证)是一种认证的漫游,无线网络(eduroam)的漫游似乎也是一种认证的漫游。但是这两种模式的架构却是截然不同的。他们的区别在于数据交互的通道。

对于 eduroam 这样的无线漫游而言,他是一种典型的 Backend Channel,也就是后通道的模式。

如下图所示,Radius 的报文通过树状层次组织的服务器,层层的转发直至完成漫游。在这里认证的数据主要是直接在服务器之间转发的,服务器之间必须确保网络通讯是畅通的。所以这是后通道



但是对于跨校认证而言,他的所有数据实际上都是通过用户,或者更准确的说是浏览器来进行交互的。如图所示



一个跨校认证的流程简化来描述,大概是这样


  • 用户(浏览器)请求 SP

  • 用户(浏览器)被重定向至 (E)DS 选择 IdP

  • 用户(浏览器)跳转到 IdP 上认证

  • 用户(浏览器)被重定向回 SP,访问资源

可以看到其实所有的交互都是通过浏览器发起的,服务器之间并没有通讯,服务器之间甚至不需要保障网络互通,只要他们到用户(浏览器)通就可以了。所以这是前通道


既然前通道的模式,只需要服务器和浏览器之间可以通讯即可。那么我们就可以构建出与生成环境完全一致的本地测试服务器,并且可以与生成环境共存。只需要通过修改本地域名解析等方式,就可以在完全不影响生产环境的情况下完成对测试服务器的测试。直至测试完成切换上线,期间生产服务器始终可以正常对外提供服务。


因此采用这个方案,IdP 的升级就完全不存在时间窗口,我们完全可以很悠闲的慢慢配置新的 IdP 服务器,慢慢完成测试,最后切换上线。

升级关注重点

上海教育认证中心已经推出了详细的 IdP4 升级指南,可依据指南逐步操作完成升级。这里列了几条个人觉得比较重要的地方,供大家参考。


  • LDAP 认证部分,密码部分迁移到了 /opt/shibboleth-idp/credentials/secrets.properties 。注意不要漏了,否则肯定配不通。

  • 建议参照属性定义部分的文档,统一定义属性,这样后面的属性获取的配置里会简洁很多

  • 迁移证书时,注意证书的密码要前后一致

  • 建议开启单点注销并重新提交 Metadata 给联盟,这个过程不会影响业务的。

  • 建议上海的用户参考 属性释放配置,通过同步的方式自动更新属性释放的策略,从而在不产生运维负担的前提下,保障属性释放的安全可控。

  • eptID 注意加密的盐和编码的算法要前后一致。建议配置数据库来存储映射关系满足溯源的需求。

  • 原先使用 httpd + ajp 方式代理发布的 IdP,建议参照文档升级至 nginx + http 代理,性能更好且更容易维护

  • 建议上海的用户参考单点注销,增加非 SAML 模式的单点注销功能,为有注销后回调跳转的应用提供一个更好的注销选择


参考文档

上海教育认证中心

Shibboleth


以上


发布于: 2021 年 03 月 05 日阅读数: 118
用户头像

冯骐

关注

教育行业码农 2020.06.19 加入

一个教育行业的码农

评论

发布
暂无评论
Shibboleth IdP4 升级指南