基于Kerberos的IBM i Java/RPGLE应用Windows单点登录方案咨询
IBM midrange环境Kerberos单点登录落地指引
问题解答
1. KDC部署选型
完全可以复用现有企业内部的Windows Active Directory作为KDC,无需额外独立部署KDC服务。Windows AD原生兼容Kerberos标准协议,本身就是用于Windows域登录校验的KDC实现,复用现有AD可避免多身份源同步成本,符合企业现有权限管控体系。
2. 多台IBM i的EIM配置逻辑
不需要每台单独部署完整EIM服务。可以选择其中一台IBM i作为EIM域控制器完成核心配置,剩余2台IBM i仅需配置EIM客户端加入该统一EIM域即可。如果有高可用需求,也可配置多台IBM i作为EIM冗余控制器,无冗余要求的前提下单域控制器即可满足3台IBM i的身份映射需求。
3. 客户端代码改造点
基于JT400的Kerberos原生支持做改造即可,无需调整后端RPGLE及PCML逻辑:
- 移除原有显式获取用户输入IBM i账号密码的弹窗逻辑
- JDBC连接串新增
kerberos=true参数,初始化连接时不再传入账号密码 - JT400的AS400对象初始化时取消账号密码传参,启用默认的当前操作系统用户Kerberos票证认证逻辑
- 配套在客户端Java运行环境部署对应AD域的krb5配置文件,确保Java层可正常读取当前Windows登录用户的Kerberos票证
整体操作概览
- 第一步 AD侧配置:为3台IBM i分别创建服务主体名(SPN),导出对应keytab文件同步到各IBM i服务器
- 第二步 IBM i侧配置:完成Kerberos对接AD KDC的基础配置,部署EIM域并将3台IBM i全部加入,配置AD域用户与IBM i本地用户的身份映射规则,完成单用户Kerberos登录IBM i的基础验证
- 第三步 客户端环境验证:部署krb5配置文件到客户端Java运行环境,验证客户端可正常从AD获取访问IBM i服务的Kerberos票证
- 第四步 客户端代码改造与联调:替换原有登录逻辑为Kerberos认证模式,验证JDBC调用、RPGLE程序调用的全链路可用性
内容的提问来源于stack exchange,提问作者jemrug
相关产品推荐
相关产品推荐

