文档首页> ISDP> 常见问题> 操作使用类> 公共问题> ISDP免密登录解决方案
更新时间:2023-07-07 GMT+08:00
分享

ISDP免密登录解决方案

目的

为实现ISDP系统与第三方系统间页面快速集成,外部系统侧可通过ISDP提供的免密登录方案进行SSO单点登录适配来实现无感登录。

页面集成方案(推荐)

  1. 第三方系统获取isdp+的token。
  2. 通过token访问中间跳转页面。
  3. 该页面拿到isdpToken调用接口模拟登录成功后再重定向实际访问的页面。

    页面url格式:https://{domian}/auth/#/jump?isdpToken=xxxxxx&redirect=https://{domain}/one/#/portal/index

时序图

该时序图着重介绍集成方案的详细过程,请详细查阅。

集成步骤

  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建好的客户端中。

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

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

    isdp+接口格式如下:

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

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

    5. 返回值:
      {
           "access_token":"xxxxxx",
           .....
      }

  5. 集成ISDP+页面(第三方)。

    • 第三方前端拿到isdp颁发的access_token,将token通过encodeURIComponent方法编码后拼接到页面url参数上。
    • 通过iframe或者跳转方式集成ISDP+页面,页面url格式如下:

      https://{domian}/auth/#/jump?isdpToken=xxxxxx&redirect=https://{domain}/one/#/portal/index

分享:

公共问题 所有常见问题

more