自建协议单点登录
概述
当客户系统有统一登录认证协议,但并未使用标准行业规范(例如:OAuth2/CAS/LDAP等协议),而是使用自建协议。产品提供了灵活易用的可视化配置界面,方便客户快速实现统一登录平台单点登录到Smartbi应用
前置条件:
...
- 随意增减参数个数
- 自定义参数名称,基于接口实际参数名称填写
- 选择入参设置方式:可设置到header,request(body)、cookie、session
- 入参设置方式说明:
- request/query:查询参数(Query Parameters),附加在URL的?后面,键值对形式,比如。
- request/body:请求体参数(Body Parameters):在请求体中传递,常见于POST、PUT等方法,默认是JSON格式。
- 默认会在请求头中添加:Content-Type:application/json
- 如果需要键值对格式,需要主动增加请求头参数:Content-Type:application/x-www-form-urlencoded
- 暂不支持XML格式。
- request/header:请求头参数(Headers):在HTTP头部中传递,如Content-Type用于设置请求体参数格式。
- cookie:Cookie参数:通过Cookie头传递,键值对拼接,如 。
- session:session参数,通过session传递,键值对拼接。
- 入参设置方式说明:
- 选择参数来源及参数值:
- 可配置静态值、动态时间戳、或者是上个接口的返回值等
- "上个接口返回"用来获取上一个接口的返回值,并传递到当前接口中,第一个接口获取token。
- "Smartbi单点地址"用来获取单点登录Smartbi时使用的Smartbi连接地址,一般在前置请求需要回调url时使用。
- 可配置静态值、动态时间戳、或者是上个接口的返回值等
3、可选择配置登录用户处理规则:
- 当Smartbi的用户未实时跟统一登录的用户同步时,会出现登录用户在Smartbi中不存在的情况。
- 当遇到不存在的用户时,产品默认会提示:当前用户在Smartbi中不存在,请联系管理员添加。
- 客户可选择自动创建用户,并分配到某个默认组,默认角色,以便用户登录后直接访问有权限的资源。
- 当前只支持分配到固定的用户组或角色,不支持同步动态用户组。
...
4、可选择配置逃生通道:
- 逃生通道允许用户绕开oauth2登录协议,直接使用Smartbi账号密码登录,主要是解决oauth2服务异常、Smartbi单点登录配置错误等导致无法正常登录Smartbi的异常情况。
- 产品默认开启了逃生通道,用户可基于实际需求灵活配置。
- 注意:在最后一步单点登录验证成功前,不要禁用逃生通道,否则将无法正常登录Smartbi继续调整配置。
...
5、可选接口入参特殊处理:
- 当接口参数需要额外处理时使用,比如要特殊加密,或者在上一个接口的返回值+前缀后传给下一个接口等。
- 该场景需要额外定制开发,基于实际业务场景,通过java扩展接口实现。
- 产品提供了灵活的扩展接口,通过接口入参的高级配置实现。
...
6、可选择配置多系统登录Smartbi:
- 当客户的统一登录体系还不完善,有多套统一登录应用需要单点登录同一套Smartbi应用时,可启用该配置。
- 需要先在Smartbi单点登录配置中注册各个统一登录应用的id及名称,并在统一登录应用访问Smartbi的连接中携带应用id;此时各个统一登录应用有自己独立的单点登录配置,使用方式跟单个统一登录平台的使用完全相同。
- 为了减少各个统一登录应用的重复配置,提供了一键复制配置到其它应用的功能。
...
7、验证单点登录是否成功:有以下几种方式验证
- 通过第二步中添加的Smartbi访问入口,如果能正常单点登录到Smartbi,则成功。
- 打开浏览器独立新窗口,直接在地址栏中输入Smartbi的访问连接(见第二步说明),正常跳转到统一登录平台登录页,输入统一登录的账号密码后,正确跳转回Smartbi,则成功;
- 如果配置了统一注销接口,在Smartbi中点击注销,会调用OAuth2接口登出,并回到统一登录平台登录页
- 如果单点登录不成功,可基于具体的错误提示信息进行调整。
自建协议场景配置示例
场景1:统一登录平台携带token参数跳转到Smartbi,Smartbi回调统一登录平台接口校验并直接获取合法用户信息
- 原始需求描述:
在统一登录平台中,用户点击BI平台菜单时,前端会携带该 session 跳转到BI平台的 web 端。跳转url格式是:http:{ip}:{port}/bi/index.html?token=sessionId}&tenantId=3849234893
BI平台获取到token后,可以携带这个 sessionId 来调用一体化平台的接口。当 sessionId 有效时,便可以正常获取用户的唯一标识和用户名称。
请至钉钉文档查看「电子表格」
- Smartbi单点登录配置信息
场景2:金蝶云之家单点登录到Smartbi
适用类似场景:统一登录平台不携带token,需要先通过统一登录接口获取token,再基于token获取合法用户信息
...