Skip to main content
Version: v24.03

统一登录对接方案

注意:目前只支持私有化/多租户部署使用

一、概述#

【目标】甲方系统有统一身份认证能力,希望在其平台登录后,无需二次登录即可进入问卷系统。

【小结】本方案提供一个账号体系集成的能力,需要由合作方定制开发一个连接器,先跳转甲方系统登录,再通过接口调用,将甲方的账号关联到问卷系统中的一个SSO 账号,关联关系由连接器保存起来。

【业务流程】

正向登录未登录回跳退出登录

【开发过程】在本方案中,连接器可以自主选择开发语言、存储组件等,不需要关心问卷账号如何写入问卷系统的数据库,只需要调接口创建、修改、删除账号,以及获取登录码、跳转进入问卷系统。

【部署过程】连接器打包成镜像,集成到交付的镜像列表里,随着问卷系统启动;需要在问卷系统的入口配置访问连接器的路由;连接器最终通过内网调用问卷系统的接口。

二、对接登录流程#

1.【通用】获取接口地址、凭据

2.【通用】获取 AccessToken

3.【配置】设置连接器登录/退出登录地址,调用接口进行设置

登录地址:POST {{scheme}}://{{host}}/api/sso/login/url?appid={{appid}}&access_token={{access_token}}

退出登录地址:POST {{scheme}}://{{host}}/api/sso/logout/url?appid={{appid}}&access_token={{access_token}}

参数:{"url":"https://www.wj.qq.com"}

4.【配置】设置了登录地址后,用户在进入问卷系统的工作台、答题页时,未登录情况下会出现“统一登录按钮”, 点击按钮后会跳转到连接器,也可以根据需求设置静默跳转。

调试过程可以自行部署一个域名,假设登录地址是 https://www.wj.qq.com 那么按钮会跳转到 https://www.wj.qq.com/sso/?action=login&scene_type=user&redirect_url=xxx 也可以根据需求设置静默跳转。redirect_url 表示登录成功后会进入哪个问卷页面

5.连接器引导用户跳转到甲方系统进行统一登录,然后回跳连接器;

6.连接器获得甲方系统的用户信息,自行保存;

7.【创建账号】连接器调用问卷接口,创建一个问卷SSO账号 注册第三方账号

连接器自行保存第7步返回的 user_id 和 respondent_id, 分别代表问卷系统中的编辑者账号和回答者账号。

8.【登录问卷】连接器调用问卷接口 获取一次性登录码

9.【登录问卷】连接器构造登录链接,带上登录码,在用户浏览器里跳转

redirect_url 为问卷系统的一个地址,前面的登录按钮有传;或者按照甲方需要进行修改,主要参数要做一次 url encode,无论“正向登录”还是“未登录跳转”,这一步都是最关键的。

登录后进入工作台:https://{{host}}/api/v2/redirect?appid=tpidMdxJLJvc&code=6f3955eaa4e1bab47fc8891a6a5c14244bb1d67d&action=raw_url&redirect_url=https%3A%2F%2Fv2207.dev.1700.cn%2Fmine.html
登录后进入某个问卷填答:https://{{host}}/api/v2/redirect?appid=tpidMdxJLJvc&code=6f3955eaa4e1bab47fc8891a6a5c14244bb1d67d&action=raw_url&redirect_url=https%3A%2F%2Fv2207.dev.1700.cn%2Fs2%2F10013%2F5f05%2F

10.【被动退出登录】连接器调用问卷接口退出登录

POST {{scheme}}://{{host}}/api/sso/logout?appid={{appid}}&access_token={{access_token}}

12.【主动退出登录】如果配置了退出登录地址,退出后默认跳转到该地址

调试过程可以自行部署一个域名,假设退出登录地址是 https://www.wj.qq.com 那么按钮会跳转到 https://www.wj.qq.com/sso/?action=logout&scene_type=user&redirect_url=xxx