本帖最后由 武汉通威—大佬刘超 于 2024-8-16 15:46 编辑
前言 酷暑难耐,零信任产品就像武汉的夏天一样,火热到了无语伦比的地步,茫茫多的测试、交付项目,在某客户的测试过程中,需要测试一个比较新的版本比较新的功能,需要测试零信任对接企业微信实现扫码认证,并且联动AC同步上线,此次测试又又遇到什么问题呢,这个问题如何解决的呢?让我来细细道来~ 一、问题描述 某客户需求单独搭建环境进行测试,搭建环境拓扑如下图,实现效果就是研发PC访问外网网页会重定向到零信任认证页面,用户企业微信扫码认证后,零信任上线后,会同步在AC上上线,注销后会同步在AC上下线,目前遇到的问题就是零信任注销后,无法在AC上同步下线 二、告警信息 零信任注销后,无法在AC上同步下线,用户依然可以正常访问外网 三、处理过程 1.按照惯例先检查配置上有没有问题,因为可以跳转认证页面同步上线,核对配置,没得问题 2.测试联动使用的端口1775和9999,端口通信正常 3.协调400大佬,进行登录和注销操作进行抓包,抓包发现用户访问零信任的包源地址被AC转换了,因为测试环境AC是网关部署,要能通过域名访问零信任进行企业微信扫码认证,所以做了双向地址转换,源被转换为AC的地址,然后在零信任上线变成AC的lan口地址
调整网络架构,取消双向地址转换,AC上添加hosts,将零信任域名和零信任IP绑定,然后使用AC的dns代理功能,将域名指向零信任设备地址,PC内网访问域名会通过ACdns代理功能解析到零信任综合网关,调整后设备上线正常
设备上线正常后再进行注销操作,抓包分析,发现数据包返回异常
研发定位,/ac/module/openresty/restful/app/middleware/http目录文件有异常,移除非相关文件,重启nginx服务,完成后再进行注销操作, 抓包分析
确认为调用API接口时校验md5失败,后和零信任研发确认后,这个校验和联动配置的密钥、AC和零信任设备的时间相关,建议修改两端密钥,校准两个设备的时间 按照研发大佬的建议进行操作, 修改AC api接口配置的密钥,零信任对接AC模块也修改为一致,校准AC和atrust的设备时间,保持时间一致,测试后同步注销正常。 四、根因 1.对于零信任对接企业微信认证,并且要联动AC上线这种特殊场景,需要配置内外网域名解析分开,不能采用双向源地址转换这种方式。 2.零信任联动AC场景,需要校准零信任和AC的设备时间保持一致,需要确保两端设置的对接密钥一致,建议使用简单密钥。 五、解决方案 1.调整网络架构,取消双向地址转换,配置内网域名解析,使用户在零信任上线时以设备的真实IP上线(后续需要其他场景也需要注意这个问题,零信任需要获取到终端用户真实IP)。 2.修改零信任联动AC的设备时间,保持设备时间一致。 六、建议与总结 建议新版本发布功能文档时,能注明一些注意事项,比如联动注意事项,要注意设备时间、密钥复杂度等等这些,避免进行功能测试时未注意导致测试周期拉长; |