文档

Dataphin基于客户第三方SSO登录认证

更新时间:

本文为您介绍Dataphin基于客户第三方SSO登录认证,包括Ticket(Cookie)认证接口、登出接口、登录跳转及账号信息获取等内容。

背景信息

若您具备完善的单点登录系统(SSO),并且SSO应用只要提供在和Dataphin系统同域的Cookie里种下Ticket及Ticket认证、登录跳转、登出能力和账号信息获取,就可以和Dataphin系统打通。通过用户的单点认证系统,登录Dataphin的应用。

认证请求时序图

重要

Cookie须和Dataphin应用同域或者同根域。

接口规范

请求方式:GET。

内容类型:Content-Type:application/json;charest=UTF-8。

  1. Ticket(Cookie)认证接口

    • 提供Ticket认证能力。

    • 请求路径:/cookie/validCookie?ticket={ticket}。

      成功:返回true,并携带用户详情信息。

      {
       "success":true,
       "data":{
       "userId":"1",
       "parentUserId":"0",
       "accountName":"account1",
       "displayName":"dataphin1",
       "realName":"张1",
       "nickName":"张1丰",
       "email":"1@alib***.com",
       "mobilePhone":"188****0001"
       },
       "message":null
      }

      data字段详情

      字段

      描述

      userId

      必填项。客户用户系统内的唯一userId。

      parentUserId

      用于有父子关系的用户系统。

      accountName

      必填项。客户用户系统的唯一用户登录账号

      displayName

      Dataphin系统展示名(建议唯一),用于Dataphin内所有用户信息的展示。若displayName为null时,则会取accountName作为用户名

      realName

      姓名。

      nickName

      昵称。

      email

      电子邮箱。

      mobilePhone

      联系方式。

      失败:返回false,并携带重定向认证地址redirectUrl。

      说明

      data.redirect可携带自定义target-url返回,需开启开关isCustomizeTargetUrl。

      {
       "success":false,
       "data":{
       "redirect":"http://127.0.0.1:****"
       },
       "message":""
      }
  2. 提供登录认证接口根据target-url重定向能力

    若登录认证过期,Dataphin应用则会在登录认证地址URL拼接当前请求地址URL,方便登录认证成功之后回到请求页面。

  3. 登出接口

    请求路径:/user/logout?ticket={ticket}。

    返回格式和定义:

    {
     "success":true,
     "data":{
     "redirect":"http://127.0.0.1:****"
     },
     "message":""
    }
  4. 用户详情列表接口

    请求路径:/user/getAllUser。

    返回格式和定义:

    {
     "success":true,
     "data":[
     {
     "userId":"1",
     "parentUserId":"0",
     "accountName":"account1",
     "displayName":"dataphin1",
     "realName":"张1",
     "nickName":"张1丰",
     "email":"1@alib***.com",
     "mobilePhone":"188****0001"
     },
     {
     "userId":"2",
     "parentUserId":"0",
     "accountName":"account2",
     "displayName":"dataphin2",
     "realName":"张2",
     "nickName":"张2丰",
     "email":"2@alib***.com",
     "mobilePhone":"188****0002"
     }
     ],
     "message":null
    }

Dataphin配置项

  1. IDE配置项切换和添加

    dataphin.sso.provider.session=com.alibaba.dataphin.sso.provider.thirdpart.session.ThirdPartSessionProvider
    dataphin.sso.provider.account=com.alibaba.dataphin.sso.provider.thirdpart.account.ThirdPartAccountProvider
    #需对接放提供接口请求地址endpoint
    dataphin.thirdpart.sso.endpoint=http://127.0.0.1:****
    #可配置项
    ## 需向对接方确定确认cookie名称
    dataphin.thirdpart.sso.cookie.name=DPN_SSO_TICKET
    dataphin.thirdpart.sso.cookie.validUrl=/cookie/validCookie?ticket={ticket}
    dataphin.thirdpart.sso.user.logoutUrl=/user/logout?ticket={ticket}
    dataphin.thirdpart.sso.user.getUserUrl=/user/getUser?userId={userId}
    dataphin.thirdpart.sso.user.getAllUserUrl=/user/getAllUser
    dataphin.thirdpart.sso.isCustomizeTargetUrl=false
    ## 需向对接方确定getAllUser接口获取方式,默认为all
    ## all:全部获取 无参数
    ## page:分页获取,自动拼接pageNo,pageSize参数(参数名称可配置)
    ## cursor:游标获取,自动拼接userId,pageSize参数(参数名称可配置)
    dataphin.thirdpart.sso.user.getAllUser.method=all
    dataphin.thirdpart.sso.user.getAllUser.pageSize=30
    dataphin.thirdpart.sso.user.param.name.userId=userId
    dataphin.thirdpart.sso.user.param.name.pageSize=pageSize
    dataphin.thirdpart.sso.user.param.name.pageNo=pageNo
  2. DataAssets和OneService配置项

    需在Dataphin v2.9.1之后,Dataphin v3.2.x之前的版本需要做配置项切换和添加,配置项如IDE配置。

账号系统切换

  1. 将关闭原有账号系统入口,切换为客户提供登录

    dataphin.sso.provider.session=com.alibaba.dataphin.sso.provider.thirdpart.session.ThirdPartSessionProvider
    dataphin.sso.provider.account=com.alibaba.dataphin.sso.provider.thirdpart.account.ThirdPartAccountProvider
  2. 订正原有账号

    以Dataphin系统中Security库下的od_user表为例。

    • SuperOps账号订正:订正Ops账号为客户用户系统中某一用户userId。

      update od_user set source_user_id = '{客户用户系统提供userId}', source_type = 'THIRD_PART' where id = '{od_user表中SuperOps的id}'。
    • SuperAdmin账号订正:订正Admin账号为客户用户系统中某一用户userId。

      update od_user set source_user_id = '{客户用户系统提供userId}', source_type = 'THIRD_PART' where id = '{od_user表中SuperAdmin的id}'。
    • 普通账号订正:需要把od_user表的数据进行订正。

      原有的系统账号的sourceUserId,订正为新的认证系统的userId

      原有的账号类型改为THIRD_PART

      重要

      source_type为BUILTIN_PRODUCKER_USER类型账号不动。

对接完成验证

  1. 登录功能验证

    可以通过用户登录系统登录到Dataphin且用户信息正常显示。

  2. 同步用户验证

    1. 在Dataphin管理中心-成员管理 ,单击账号系统同步,未报错。

      image

    2. 单击添加成员,能显示同步的用户即为正常

      image

  3. 登出功能验证

    单击右上角用户信息中的退出账号,能跳转到用户指定的页面,且根据用户需要是否清除Cookie,再检查Cookie是否正常清除。

    image

  • 本页导读 (0)
文档反馈