文档首页/ ISDP/ 常见问题/ 操作使用类/ 公共问题/ 第三方集成ISDP移动端页面方案
更新时间:2023-07-07 GMT+08:00
分享

第三方集成ISDP移动端页面方案

目的

本案例主要目标用于指导实现ISDP App移动端非H5页面被第三方用户系统App端快速集成,包括实现时序图、关键节点和接口,以及明确实现责任方。

“第三方用户系统”指对接华为ISDP系统的具体用户系统。

时序图

时序图主要包括交互节点,具体如下:

  1. 伙伴移动端登录

    同时,伙伴服务端需要自认证鉴权(保证向ISDP发起的请求是可信的)

  2. 向ISDP发起SSO单点登录认证(getToken)(携带ISDP账号)

    同时,ISDP服务端需要自认证鉴权

  3. ISDP服务端向伙伴服务端返回用户信息和ISDP Token
  4. 伙伴服务端向伙伴移动端返回ISDP Token
  5. ISDP移动端页面调用伙伴移动端端接口,获取ISDP Token
  6. 伙伴移动端向ISDP移动端页面返回ISDP Token
  7. ISDP移动端实现登录ISDP和Appcube(低码平台页面)

伙伴移动端,即第三方用户App移动端;伙伴服务端,即第三方用户系统服务端。

集成步骤

  1. 伙伴App移动端登录。

    伙伴输入登录信息,登录自有App移动端,同时伙伴服务端针对登录信息进行认证鉴权。

  2. 向ISDP发起SSO单点登录认证(getToken)(携带ISDP账号)。

    1. 添加ISDP用户账号。

      在ISDP+人员管理页面https://{domain}/admin/#/pub/personList(页面菜单路径:公共平台 > 系统配置 > 用户权限 > 用户)添加第三方系统账号。

      例如:第三方系统存在账号test,需要在人员管理新建人员账号为test的人员数据。

    2. 分配clientId和clientsecret (ISDP+)。
      1. ISDP超级管理员在console页面oauth2集成配置页面,新建集成客户端。
      2. ISDP控制台地址:https://{domain}/console#/sysAdmin/oauth2IntegrationConfig
      3. 将生成的客户端id和密码发给第三方系统。

    3. 配置IP白名单(ISDP+)。
      1. 第三方反馈他们的服务器ip给ISDP,ISDP超级管理员将ip配置到2.b建好的客户端中。

      2. 第三方的服务器ip申请ISDP开发中心(低码开发工具)的白名单。

        由支持人员在产品内部申请。

        如没申请添加低码开发工具的白名单,第三页面访问时会出现跨域异常(cross-region、或403等信息),主要因为跨域后不允许接口访问。

    4. 开发获取token的接口(第三方)。

      第三方开发一个接口获取isdp+的token供第三方前端使用(请注意不是前端直接访问)。

      isdp+接口格式如下:

      • 请求url:https://{domain}/oauth2/oauth/rest_token
      • 请求方法:POST
      • Content-Type:application/json
      • 请求参数:
        {
             "client_id":"{客户端id}",
             "client_secret":"{客户端密码}",
             "username":"{账号}",
             "login_type":"server_auth"
        }

        客户端id和客户端密码为2.b中分配的clientId和clientsecret。

        同时,ISDP服务端进行认证鉴权。

      • 返回值,如3

  3. 返回用户信息和ISDP Token给伙伴服务端。

    返回值:

    {
         "access_token":"xxxxxx",
         .....
    }

  4. 伙伴服务端把ISDP Token返回给伙伴App移动端。

    {
         "access_token":"xxxxxx",
         .....
    }

  5. ISDP移动端页面调用伙伴移动端接口,获取ISDP Token。

    1. 伙伴移动端开发两个接口给ISDPApp移动端调用,(第三方提供)2个接口包括:
      • 网页js请求Apk的原生方法,getClientToken
      • 方法回调定义window的回调函数getClientTokenCallback

      页面获取到回调之后,立即到将获取的token(下面的access_token)提交到服务器去验证。

    2. ISDP低码开发工具(Appcube)应用引入库:isdpBaskSDK1.2.6。

      该组件功能包括:移动端、web端登录,及token获取,但未包括保活功能。

      这种不需要接口地址是移动端封装好的,我们通过window.webview.postmessage直接调用就行。

  6. 伙伴App移动端返回ISDP Token。

    返回信息,包括:

    {
         "access_token":"xxxxxx",
         .....
    }

  7. 登录ISDP和AppCube。

    免密登录ISDP和AppCube,直接访问ISDP App移动端非H5页面。

    创建隐患

    https://AppCube域名/magno/render/ISDP__SecurityRisk_AppCube租户ID/hiddenTroubleCreateApp

    执行隐患

    https://AppCube域名/magno/render/ISDP__SecurityRisk_AppCube租户ID/mobileRiskControlExecutionPage

相关文档