1. 需求背景
OAuth2.0 协议在当今的互联网和企业环境中非常普遍。许多大型互联网平台,如谷歌、Facebook 等都采用了该协议来实现用户认证和授权。在企业领域,各种业务系统也常常通过 OAuth2.0 与统一门户集成,以实现单点登录和集中管理。例如:
OAuth2.0 协议在实现统一门户认证方面具有重要意义,并且在各种场景中都得到了广泛的应用和推广。
目前Smartbi在对接客户的门户和统一认证中心时,大部分客户的门户和统一认证中心都是采用了OAuth2.0 协议的认证方式,为应对这类使用OAuth2.0 协议作为认证登录对接的系统集成场景,Smartbi单独推出了 “OAuth2.0统一认证门户集成功能” 以满足大部分的这类集成对接场景。
2. 使用说明
2.1 加载扩展包
部署 PD_OAuth2_V11.ext 扩展包,扩展包部署详情请看文档:部署扩展包
注意:上传该扩展包时需进行系统升级。请勿在系统忙碌期间部署该扩展包。
2.2 OAuth2单点管理配置
加载扩展包后,在产品中的【运维设置】→【模块配置与管理】中可见到 “OAuth2单点管理” 的配置入口,在其中需要根据客户的环境情况,完成相关接口的信息配置。
注:【OAuth2单点管理】的权限与【系统选项】配置的操作权限绑定保持一致。
2.2.1 应用配置
应用配置:是全局属性配置,用于设置固定的全局参数信息,后续的接口参数可以${xxx}的方式,引用此处配置的内容。
例如:【应用配置】中配置了appid,则其他配置项中,可通过${appid}进行引用,此时统一认证登录地址生成appid的参数时,对应的是【应用配置】中设置的appid值;
注:除此处手工配置的全局属性外,还内置有如下的全局属性,这些属性值是动态生成的,内置的全局属性如下:
- redirect_url:从请求request中获取到请求的URL,无法作用于注销功能
- redirect_url_encode:从请求request获取请求的URL,并进行encodeURL操作,一般来说用于请求页面携带参数时,进行转码处理
- timestamp:当前系统的时间戳,精确到毫秒值,数值如:1714289101306
- access_token:调用统一认证获取AccessToken接口后返回的accessToken值
- date(‘dateFormat’):获取当前系统指定格式的时间,如配置的为date(‘yyyy-MM-dd HH:mm:ss’),则值为:2024-05-10 18:00:00
2.2.2 统一认证平台登录设置
统一认证平台登录设置:统一认证单点登录界面信息配置,子配置项包括:
- 登录地址:OAuth2登录地址
- 授权码键:统一认证单点成功后,会返回code信息给到集成系统进行集成认证,该值为统一认证登录成功后,回跳到集成系统时,携带给集成系统认证信息参数的key值,一般为code或authorizeCode,需根据实际情况进行配置
- 参数配置:用于配置跳转到登录地址所需要的信息,配置的参数会拼接拼接到登录地址后,配置的可写固定值,也可以引用【应用配置】中配置的内容,若需要引用【应用配置】中定义的内容,可通过${配置名称}的方式定义。
注:访问集成页面时,会获取到配置的地址,将参数拼接到登录地址上,跳转到统一认证的登录地址进行统一认证的登录。
2.2.3 统一认证平台注销设置
统一认证平台注销设置:在导航栏上点击注销操作时,注销smartbi后跳转到的地址,用于同步注销统一认证登录状态,子配置项包括:
- 注销地址:跳转到的注销地址
- 参数配置:跳转到注销地址所需的地址信息,配置后会拼接到注销地址的URL参数上。
2.2.4 统一认证平台获取AccessToken设置
统一认证平台获取AccessToken设置:根据统一认证登录界面传递的认证信息以及accessToken的接口设置获取accessToken,子配置项包括:
- 获取AccessToken地址:获取AccessToken接口地址
- AccessToken结构:AccessToken返回的accessToken的结构信息,目前仅支持处理返回JSON格式的内容,比如返回的信息为:{data:{accessToken: “1234”}},则配置为accessToken,若返回的信息为:{data:{token:{accessToken:”1234”}}},则配置为data.token.accessToken,具体需根据实际情况配置
- 请求类型:包括POST以及GET请求,POST请求仅支持application/json格式。
- Header配置:调用accessToken接口时,需要往request中设置header信息时,则可在此进行配置。
- 参数配置:调用accessToken接口时,需要往request中设置参数信息时,可在此进行配置,参数请求目前仅支持application/json格式。
2.2.5 统一认证平台获取用户信息设置
统一认证平台获取用户信息设置:根据统一认证accessToken返回的认证信息以及accessToken的接口设置获取用户信息,子配置项包括:
- 获取用户信息地址:获取用户信息接口地址
- 用户信息结构:用户信息接口返回的用户信息结构,目前仅支持处理返回JSON格式的内容。根据配置的内容获取到用户信息,用获取到的用户信息登录Smartbi,若登录成功,则返回集成的页面,若登录失败,则返回错误页面。