统一登录对接方案
注意:目前只支持私有化/多租户部署使用
#
一、概述【目标】甲方系统有统一身份认证能力,希望在其平台登录后,无需二次登录即可进入问卷系统。
【小结】本方案提供一个账号体系集成的能力,需要由合作方定制开发一个连接器,先跳转甲方系统登录,再通过接口调用,将甲方的账号关联到问卷系统中的一个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