本帖最后由 新手小明 于 2023-10-12 09:40 编辑
问题背景: 某学校需要上线自己的移动端门户app,app内部集成了零信任sdk,以达到同时访问内网和外网的效果;
问题现象: 问题1 客户反馈集成sdk后,集成内网的应用无法访问;
环境: 零信任控制中心,代理网关,金智cas服务器,今日校园app,零信任sdk; 零信任直接发布隧道http/https域名资源(移动端sdk是支持的); 今日校园app的内网资源直接配置公网域名; App认证采用金智cas统一认证和用户名密码登录;
问题定位: 1.查看控制中心登录状态; 访问应用时,过了很久才能在控制台查看用户上线信息; 2.查看sdp日志 发现发起请求时,提示资源不存在; 3.使用PC客户端登录访问,能够解析成fake_ip 并可以直接访问站点,但是移动端一直解析成真实的ip,没办法解析成fake_ip;
根因定位: 1.用户访问应用的同时,sdk还没有上线,但是网络链接已经开始,由于sdk还没有上线,则先走了公网DNS,没有走SDK的fake_dns,导致日志中提示资源不存在,因为并没有该ip的资源;
解决方案: 1.临时解决办法,在资源中临时添加域名解析出来的公网ip; 2.客户侧修改sdk使用逻辑,例如访问应用时可以同步拉起sdk;
问题2 打开app内的应用无法访问;速度特别慢,每一个应用打开都需要10几秒的时间;
应用测试:用户访问应用1时,用户未上线,过几秒后,才上线控制中心,访问到应用1; 打开应用2,查看控制台,发现用户下线;过几秒又重新上线;
根因定位: 其实问题也是因为sdk逻辑造成的,当前sdk开发逻辑是用户登录APP时,不会同时登录sdk;需要访问内网应用的时候才会拉起sdk,退出当前应用后,会先退出sdk,访问另外一个应用的时候,又重新拉起sdk,中间客户认证逻辑和sdk建立隧道的时间加起来,让整个访问过程变得比较缓慢(vpn隧道建立时间大概在5s左右,该时间为必要时间);
解决方案: 1.修改应用访问逻辑,比如登录app就拉起sdk,体验性最好,但是会有授权不足的风险; 或者是设置vpn登录开关,访问内网应用的时候,点击vpn开关,即可访问内网资源,一定程度上解决了并发授权不足的问题,但是牺牲了一定的体验; |