手机蓝信APP集成零信任SDK--打开蓝信APP时建立隧道
  

sangfor71613 1361

{{ttag.title}}
本帖最后由 sangfor71613 于 2024-10-8 11:28 编辑

1. 需求环境
终端环境:安卓、IOS
软件版本:蓝信APP,aTrust2.4.10(老版本也可以对接)
用户需求:
客户使用蓝信作为IM办公软件,蓝信服务端部署在内网,内网一些其他业务系,例如OA、报销系统、工单系统内网系统已集成到蓝信工作台。客户当前的使用方式是先手动打开aTrust客户端,建立隧道后然后再使用蓝信的聊天功能、以及访问工作台应用。
客户希望提升用户使用体验,实现打开蓝信APP的同时,自动完成VPN隧道的建立(单点登录),即省去手动打开aTrust客户端建立隧道的步骤。

2. 实现方案
蓝信集成零信任移动端SDK,零信任控制中心通过https认证对接蓝信center(蓝信提供token认证接口,未公开,实际项目里面需要单独沟通)实现单点登录,即蓝信和零信任同时上线,图2-1是某客户蓝信认证上线的局部流程:

从上图中可以看到:
蓝信需要提供token认证接口,集成零信任SDK,零信任需要发布免认证应用以及配置https认证。

3. 配置步骤
3.1. 获取token认证接口信息
此处需要蓝信提供蓝信center的内网访问地址、外网访问地址、token认证接口文档。
示例:
内网访问地址:192.168.100.100
外网访问地址:aaa.lanxin.com
token接口说明:
接口功能:认证center获取的token是否有效
请求方式OST (HTTPS)  Content-Type: application/json
请求地址:https://$center_auth_proxy_addr/v1/CheckAuth
● 请求数据示例:

● 返回数据示例:


业务正常返回:
{
    "status": {
        "errmsg": "OK"
    }
}
业务异常返回:
{
    "status": {
        "code": 1,
        "errmsg": "token not exist"
    }
}


从上述示例信息中,可以得到得出免认证应用应按下图配置:

3.2. 蓝信客户端集成零信任SDK
整体集成方案:1. 简介 · SDK集成文档
在集成认证方式的时候参考外部认证的接口3.2.6 外部认证(https,ldap,radius) · SDK集成文档

3.3. 零信任配置https认证
首先假设SDK传入的认证域是@https
● 创建蓝信的自定义用户目录

● 创建https认证
以下参数均是结合token认证接口配置,如果接口文档定义的参数改变,对应https认证策略的配置也需要修改。
认证域:https
请求方法:POST

请求头部:
Content-Type:application/json

请求URL参数、请求cookie保持默认
请求体:{{user.userPassword}},
说明:{{user.userPassword}}是一个内置变量,它的值等于蓝信在调用SDK的startPasswordAuth接口时在password字段传入的数据

响应配置:
启用响应数据预处理脚本


function AfterResponse(response, result) {
    // TODO: 在此添加nodejs代码
    const res = JSON.parse(response.body);   
        if (res.staus.errmsg == "OK"){
                result.code=1;         
        }else{
                result.code=0;
        }
}
AfterResponse(response, result);

认证成功条件code==1

用户源设置:
认证策略关联刚刚新创建的用户目录“蓝信”

4. 认证对接排障思路
1.  确保网络连通性正常,蓝信客户端发起的请求能到达零信Center,此处参考免认证web应用的排障方法。
2.  参数调试,https认证经常会因为某个标点字符、大小写配置不对导致对接失败,这里就需要抓包或看认证调试日志进行排查,如果是后端服务器是http,则可以直接抓零信任到认证服务器的数据包,查看认证请求和响应报文与接口文档的差异,如果后端服务器是https,则只能看认证调试日志排查。

atrust_tool log set sdp-passport DEBUG        #开启调试日志
atrust_tool log set sdp-passport INFO        #关闭调试日志
cp /hislog/log/sdp-passport/sdp-passport-web.log /shared/web.log #将日志复制到webconsole的文件管理中,可以从文件管理中下载到本地

注意排障结束后关闭调试日志,避免消耗设备额外性能。
分析认证调试日志时可以搜索认证接口路径,例如“/v1/CheckAuth ”,找到对应时间点的认证请求响应报文内容,对比接口文档进行差异分析。
5. 常见对接问题
由于是两个系统对接,对接不成功主要原因还是两边参数不一致,从过去的项目来看,有以下常见原因:
1.  网络连通性异常
2.  零信任配置的认证接口与认证服务器的接口不一致,例如大小写、字符。
3.  SDK传递的用户名认证域与https认证服务器配置的认证域不一致,可通过审计日志中的认证日志判断。
4.  零信任配置的请求参数不对
5.  SDK在password字段传递的参数不对。
6.  响应配置中认证成功条件配置不对
7.  响应数据预处理脚本不对
以上2-7的排障均可通过分析认证调试日志、抓包(非加密流量)定位,除此之外还有其他各种异常问题,均可以分析调试日志定位原因。

打赏鼓励作者,期待更多好文!

打赏
26人已打赏

新手719320 发表于 2024-10-12 23:48
  
感谢分享打开蓝信APP时建立隧道知识
傲世ღ万物 发表于 2024-10-12 09:26
  
多谢分享零信任SDK的集成,很有经验。
新手741261 发表于 2024-10-11 10:34
  
请求方式OST (HTTPS)  Content-Type: application/json
新手780102 发表于 2024-10-11 10:26
  
省去手动打开aTrust客户端建立隧道的步骤。
科思哲 发表于 2024-10-11 09:27
  

这个方法还是很全面的,学习了。
玫瑰花留香 发表于 2024-10-11 09:25
  
首先假设SDK传入的认证域是@https
山东_杨绪旺 发表于 2024-10-11 08:17
  
感谢分享,有助于工作和学习。
奔走的公牛 发表于 2024-10-10 17:53
  
感谢楼主分享,努力学习中!!!!
韩_鹏 发表于 2024-10-10 11:38
  
感谢分享                                      
发表新帖
热门标签
全部标签>
西北区每日一问
技术盲盒
技术咨询
每日一问
干货满满
技术笔记
运维工具
新版本体验
信服课堂视频
每周精选
GIF动图学习
标准化排查
产品连连看
2023技术争霸赛专题
自助服务平台操作指引
功能体验
社区新周刊
POC测试案例
安全攻防
SANGFOR资讯
每日一记
授权
排障笔记本
2024年技术争霸赛
【每周新见闻】
畅聊IT
安装部署配置
玩转零信任
排障那些事
升级&主动服务
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
通用技术
卧龙计划
华北区拉练
天逸直播
以战代练
秒懂零信任
技术晨报
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
北京区每日一练
场景专题
故障笔记
高手请过招
高频问题集锦

本版版主

23
12
4

发帖

粉丝

关注

本版达人