本文为您介绍Dataphin基于客户第三方SSO登录认证,包括Ticket(Cookie)认证接口、登出接口、登录跳转及账号信息获取等内容。
背景信息
若您具备完善的单点登录系统(SSO),并且SSO应用只要提供在和Dataphin系统同域的Cookie里种下Ticket及Ticket认证、登录跳转、登出能力和账号信息获取,就可以和Dataphin系统打通。通过用户的单点认证系统,登录Dataphin的应用。
认证请求时序图
Cookie须和Dataphin应用同域或者同根域。
接口规范
请求方式:GET。
内容类型:Content-Type:application/json;charest=UTF-8。
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":"" }
提供登录认证接口根据target-url重定向能力
若登录认证过期,Dataphin应用则会在登录认证地址URL拼接当前请求地址URL,方便登录认证成功之后回到请求页面。
登出接口
请求路径:/user/logout?ticket={ticket}。
返回格式和定义:
{ "success":true, "data":{ "redirect":"http://127.0.0.1:****" }, "message":"" }
用户详情列表接口
请求路径:/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配置项
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
DataAssets和OneService配置项
需在Dataphin v2.9.1之后,Dataphin v3.2.x之前的版本需要做配置项切换和添加,配置项如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
订正原有账号
以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类型账号不动。
对接完成验证
登录功能验证
可以通过用户登录系统登录到Dataphin且用户信息正常显示。
同步用户验证
在Dataphin管理中心-成员管理 ,单击账号系统同步,未报错。
单击添加成员,能显示同步的用户即为正常
登出功能验证
单击右上角用户信息中的退出账号,能跳转到用户指定的页面,且根据用户需要是否清除Cookie,再检查Cookie是否正常清除。
- 本页导读 (0)