页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

例如:http://10.10.202.37:35110/smartbi/vision/ssoopenreport.jsp?resid=xxxxx

1. 需求背景

OAuth2.0 协议在当今的互联网和企业环境中非常普遍。许多大型互联网平台,如谷歌、Facebook 等都采用了该协议来实现用户认证和授权。在企业领域,各种业务系统也常常通过 OAuth2.0 与统一门户集成,以实现单点登录和集中管理。例如:

  • 一家拥有多个业务系统的企业,可以构建一个统一门户,通过 OAuth2.0 协议让员工登录后能够无缝访问财务系统、人力资源系统等。
  • 多个电商平台可以通过 OAuth2.0 实现联合登录,用户在其中一个平台登录后,可以无需再次登录直接进入其他合作平台购物。
  • 在移动应用生态中,不同的应用可以借助 OAuth2.0 与统一的身份认证服务对接,为用户提供便捷的登录体验。

OAuth2.0 协议在实现统一门户认证方面具有重要意义,并且在各种场景中都得到了广泛的应用和推广。

目前Smartbi在对接客户的门户和统一认证中心时,大部分客户的门户和统一认证中心都是采用了OAuth2.0 协议的认证方式,为应对这类使用OAuth2.0 协议作为认证登录对接的系统集成场景,Smartbi单独推出了 “OAuth2.0统一认证门户集成功能” 以满足大部分的这类集成对接场景。

2. 使用说明

2.1 加载扩展包

部署 PD_OAuth2_V11.ext 扩展包,扩展包部署详情请看文档:部署扩展包

注意:上传该扩展包时需进行系统升级。请勿在系统忙碌期间部署该扩展包。

2.2 OAuth2单点管理配置

加载扩展包后,在产品中的【运维设置】→【模块配置与管理】中可见到 “OAuth2单点管理” 的配置入口,在其中需要根据客户的环境情况,完成相关接口的信息配置。

注:【OAuth2单点管理】的权限与【系统选项】配置的操作权限绑定保持一致。

Image Removed

Image Removed

2.2.1 应用配置

应用配置:是全局属性配置,用于设置固定的全局参数信息,后续的接口参数可以${xxx}的方式,引用此处配置的内容。

例如:【应用配置】中配置了appid,则其他配置项中,可通过${appid}进行引用,此时统一认证登录地址生成appid的参数时,对应的是【应用配置】中设置的appid值;

Image Removed

   注:除此处手工配置的全局属性外,还内置有如下的全局属性,这些属性值是动态生成的,内置的全局属性如下:

  1. redirect_url:从请求request中获取到请求的URL,无法作用于注销功能
  2. redirect_url_encode:从请求request获取请求的URL,并进行encodeURL操作,一般来说用于请求页面携带参数时,进行转码处理
  3. timestamp:当前系统的时间戳,精确到毫秒值,数值如:1714289101306
  4. access_token:调用统一认证获取AccessToken接口后返回的accessToken值
  5. date(‘dateFormat’):获取当前系统指定格式的时间,如配置的为date(‘yyyy-MM-dd HH:mm:ss’),则值为:2024-05-10 18:00:00

2.2.2 统一认证平台登录设置

统一认证平台登录设置:统一认证单点登录界面信息配置,子配置项包括:

  1. 登录地址:OAuth2登录地址
  2. 授权码键:统一认证单点成功后,会返回code信息给到集成系统进行集成认证,该值为统一认证登录成功后,回跳到集成系统时,携带给集成系统认证信息参数的key值,一般为code或authorizeCode,需根据实际情况进行配置
  3. 参数配置:用于配置跳转到登录地址所需要的信息,配置的参数会拼接拼接到登录地址后,配置的可写固定值,也可以引用【应用配置】中配置的内容,若需要引用【应用配置】中定义的内容,可通过${配置名称}的方式定义。

 注:访问集成页面时,会获取到配置的地址,将参数拼接到登录地址上,跳转到统一认证的登录地址进行统一认证的登录。

2.2.3 统一认证平台注销设置

统一认证平台注销设置:在导航栏上点击注销操作时,注销smartbi后跳转到的地址,用于同步注销统一认证登录状态,子配置项包括:

  1. 注销地址:跳转到的注销地址
  2. 参数配置:跳转到注销地址所需的地址信息,配置后会拼接到注销地址的URL参数上。

2.2.4 统一认证平台获取AccessToken设置

统一认证平台获取AccessToken设置:根据统一认证登录界面传递的认证信息以及accessToken的接口设置获取accessToken,子配置项包括:

  1. 获取AccessToken地址:获取AccessToken接口地址
  2. AccessToken结构:AccessToken返回的accessToken的结构信息,目前仅支持处理返回JSON格式的内容,比如返回的信息为:{data:{accessToken: “1234”}},则配置为accessToken,若返回的信息为:{data:{token:{accessToken:”1234”}}},则配置为data.token.accessToken,具体需根据实际情况配置
  3. 请求类型:包括POST以及GET请求,POST请求仅支持application/json格式。
  4. Header配置:调用accessToken接口时,需要往request中设置header信息时,则可在此进行配置
  5. 参数配置:调用accessToken接口时,需要往request中设置参数信息时,可在此进行配置,参数请求目前仅支持application/json格式。

2.2.5 统一认证平台获取用户信息设置

统一认证平台获取用户信息设置:根据统一认证accessToken返回的认证信息以及accessToken的接口设置获取用户信息,子配置项包括:

  1. 获取用户信息地址:获取用户信息接口地址
  2. 用户信息结构:用户信息接口返回的用户信息结构,目前仅支持处理返回JSON格式的内容。根据配置的内容获取到用户信息,用获取到的用户信息登录Smartbi,若登录成功,则返回集成的页面,若登录失败,则返回错误页面。

2.2.6 配置注意事项

  1. 地址上支持设置动态参数,如 :https://ip:port/path?code=${authorizeCode},后续会动态替换URL中的参数遍历值。
  2. 所有模块的【Header配置】、【参数配置】都提供了数据处理方式,其中包含:
    1. 默认:对配置的值不进行任何处理。
    2. SM3加密:使用SM3对配置的值进行加密,若配置了秘钥,则作为盐,拼接到配置值后进行SM3加密,即加密的内容为SM3(配置值+加密秘钥),如下配置,最终生成的headsign请求头为SM3(appid + secretKey + timestam)Image Removed
  3. 自定义扩展类:允许用户通过新增扩展包的方式进行值的特殊处理,处理步骤如下:
    1. 参考wiki,了解扩展包开发,新增扩展包:https://wiki.smartbi.com.cn/pages/viewpage.action?smt_poid=43&pageId=114999450
    2. 打开src\web\META-INF\extension.xml,新增depends属性,将【PD_OAuth2_V11】设置为其依赖扩展包。
    3. 在src\web\META-INF下新增lib-compiler目录,引入【jar】,使之能够正常编译通过。示例:PD_OAuth2_V11.jar
    4. 新增处理类,实现【ext.oauth2.paramprocess.IParamProcess】接口以及process方法,返回的值即为最终设置到【Header】或【参数】中的值。
    5. 将扩展包一并添加到smartbi中,并将实现类的全类名路径添加添加到配置项中:

                     Image Removed

2.2.7 其他说明

  • 目前OAuth2扩展包拦截的路径包括:
    1. index.jsp:smartbi本身的首页地址
    2. ssologin.jsp:登录验证成功后,会回跳到index.jsp首页地址。
    3. ssoopenreport.jsp:登录成功后,会回跳到openresource.jsp打开资源地址。
    4. ssoopenmodule.jsp:登录成功后,会回跳到openmodule.jsp打开模块地址。
    5. ssocreateresource.jsp:登录成功后,会回跳到createresource.jsp创建资源地址。

      注:支持集成地址的参数,可实际参考wiki,集成时携带对应的参数

  • 配置了OAuth2认证信息后,用户未登录时,访问时会跳转到配置的统一认证地址,但也提供了逃生通道,逃生访问方式为传递authtype=0,即访问 index.jsp?authtype=0 时,可在未登录时正常访问。
  • 调用用户信息接口后,会根据配置的用户结构获取到用户信息,根据用户信息与Smartbi系统中的用户名称、用户id依次匹配,若匹配到用户且用户启用状态正常时,则可正常登录,若账号不存在或账号异常,会跳转到错误页面进行提示,无法进行登录。因此需要提前做好用户同步,本通用扩展包不支持用户同步功能。

2.3 效果说明

2.3.1 逃生通道访问

配置完成后,重新访问Smartbi,若携带了authtype=0参数,可正常访问Smartbi首页;

例如:http://10.10.202.37:35110/smartbi/vision/index.jsp?authtype=0

Image Removed

2.3.2 统一认证界面登录

配置完成后,若访问Smartbi时,未携带authtype=0参数,则跳转到配置的统一认证地址进行登录。

例如:http://10.10.202.37:35110/smartbi/vision/index.jsp

Image Removed

2.3.3 第三方系统单点登录Smartbi首页访问

例如:http://10.10.202.37:35110/smartbi/vision/ssologin.jsp

Image Removed

2.3.4 第三方系统集成报表资源访问

访问集成资源ssoopenreport.jsp页面,携带resid参数,登录成功后可正常跳转到资源集成页面。

例如:http://10.10.202.37:35110/smartbi/vision/ssoopenreport.jsp?resid=xxxxx

Image Removed

1. 需求背景

OAuth2.0 协议在当今的互联网和企业环境中非常普遍。许多大型互联网平台,如谷歌、Facebook 等都采用了该协议来实现用户认证和授权。在企业领域,各种业务系统也常常通过 OAuth2.0 与统一门户集成,以实现单点登录和集中管理。例如:

  • 一家拥有多个业务系统的企业,可以构建一个统一门户,通过 OAuth2.0 协议让员工登录后能够无缝访问财务系统、人力资源系统等。
  • 多个电商平台可以通过 OAuth2.0 实现联合登录,用户在其中一个平台登录后,可以无需再次登录直接进入其他合作平台购物。
  • 在移动应用生态中,不同的应用可以借助 OAuth2.0 与统一的身份认证服务对接,为用户提供便捷的登录体验。

OAuth2.0 协议在实现统一门户认证方面具有重要意义,并且在各种场景中都得到了广泛的应用和推广。

目前Smartbi在对接客户的门户和统一认证中心时,大部分客户的门户和统一认证中心都是采用了OAuth2.0 协议的认证方式,为应对这类使用OAuth2.0 协议作为认证登录对接的系统集成场景,Smartbi单独推出了 “OAuth2.0统一认证门户集成功能” 以满足大部分的这类集成对接场景。

2. 使用说明

2.1 加载扩展包

部署 PD_OAuth2_V11.ext 扩展包,扩展包部署详情请看文档:部署扩展包

注意:上传该扩展包时需进行系统升级。请勿在系统忙碌期间部署该扩展包。

2.2 OAuth2单点管理配置

加载扩展包后,在产品中的【运维设置】→【模块配置与管理】中可见到 “OAuth2单点管理” 的配置入口,在其中需要根据客户的环境情况,完成相关接口的信息配置。

注:【OAuth2单点管理】的权限与【系统选项】配置的操作权限绑定保持一致。

Image Removed

Image Removed

2.2.1 应用配置

应用配置:是全局属性配置,用于设置固定的全局参数信息,后续的接口参数可以${xxx}的方式,引用此处配置的内容。

例如:【应用配置】中配置了appid,则其他配置项中,可通过${appid}进行引用,此时统一认证登录地址生成appid的参数时,对应的是【应用配置】中设置的appid值;

Image Removed

   注:除此处手工配置的全局属性外,还内置有如下的全局属性,这些属性值是动态生成的,内置的全局属性如下:

  1. redirect_url:从请求request中获取到请求的URL,无法作用于注销功能
  2. redirect_url_encode:从请求request获取请求的URL,并进行encodeURL操作,一般来说用于请求页面携带参数时,进行转码处理
  3. timestamp:当前系统的时间戳,精确到毫秒值,数值如:1714289101306
  4. access_token:调用统一认证获取AccessToken接口后返回的accessToken值
  5. date(‘dateFormat’):获取当前系统指定格式的时间,如配置的为date(‘yyyy-MM-dd HH:mm:ss’),则值为:2024-05-10 18:00:00

2.2.2 统一认证平台登录设置

统一认证平台登录设置:统一认证单点登录界面信息配置,子配置项包括:

  1. 登录地址:OAuth2登录地址
  2. 授权码键:统一认证单点成功后,会返回code信息给到集成系统进行集成认证,该值为统一认证登录成功后,回跳到集成系统时,携带给集成系统认证信息参数的key值,一般为code或authorizeCode,需根据实际情况进行配置
  3. 参数配置:用于配置跳转到登录地址所需要的信息,配置的参数会拼接拼接到登录地址后,配置的可写固定值,也可以引用【应用配置】中配置的内容,若需要引用【应用配置】中定义的内容,可通过${配置名称}的方式定义。

 注:访问集成页面时,会获取到配置的地址,将参数拼接到登录地址上,跳转到统一认证的登录地址进行统一认证的登录。

2.2.3 统一认证平台注销设置

统一认证平台注销设置:在导航栏上点击注销操作时,注销smartbi后跳转到的地址,用于同步注销统一认证登录状态,子配置项包括:

  1. 注销地址:跳转到的注销地址
  2. 参数配置:跳转到注销地址所需的地址信息,配置后会拼接到注销地址的URL参数上。

2.2.4 统一认证平台获取AccessToken设置

统一认证平台获取AccessToken设置:根据统一认证登录界面传递的认证信息以及accessToken的接口设置获取accessToken,子配置项包括:

  1. 获取AccessToken地址:获取AccessToken接口地址
  2. AccessToken结构:AccessToken返回的accessToken的结构信息,目前仅支持处理返回JSON格式的内容,比如返回的信息为:{data:{accessToken: “1234”}},则配置为accessToken,若返回的信息为:{data:{token:{accessToken:”1234”}}},则配置为data.token.accessToken,具体需根据实际情况配置
  3. 请求类型:包括POST以及GET请求,POST请求仅支持application/json格式。
  4. Header配置:调用accessToken接口时,需要往request中设置header信息时,则可在此进行配置
  5. 参数配置:调用accessToken接口时,需要往request中设置参数信息时,可在此进行配置,参数请求目前仅支持application/json格式。

2.2.5 统一认证平台获取用户信息设置

统一认证平台获取用户信息设置:根据统一认证accessToken返回的认证信息以及accessToken的接口设置获取用户信息,子配置项包括:

  1. 获取用户信息地址:获取用户信息接口地址
  2. 用户信息结构:用户信息接口返回的用户信息结构,目前仅支持处理返回JSON格式的内容。根据配置的内容获取到用户信息,用获取到的用户信息登录Smartbi,若登录成功,则返回集成的页面,若登录失败,则返回错误页面。

2.2.6 配置注意事项

  1. 地址上支持设置动态参数,如 :https://ip:port/path?code=${authorizeCode},后续会动态替换URL中的参数遍历值。
  2. 所有模块的【Header配置】、【参数配置】都提供了数据处理方式,其中包含:
    1. 默认:对配置的值不进行任何处理。
    2. SM3加密:使用SM3对配置的值进行加密,若配置了秘钥,则作为盐,拼接到配置值后进行SM3加密,即加密的内容为SM3(配置值+加密秘钥),如下配置,最终生成的headsign请求头为SM3(appid + secretKey + timestam)Image Removed
  3. 自定义扩展类:允许用户通过新增扩展包的方式进行值的特殊处理,处理步骤如下:
    1. 参考wiki,了解扩展包开发,新增扩展包:https://wiki.smartbi.com.cn/pages/viewpage.action?smt_poid=43&pageId=114999450
    2. 打开src\web\META-INF\extension.xml,新增depends属性,将【PD_OAuth2_V11】设置为其依赖扩展包。
    3. 在src\web\META-INF下新增lib-compiler目录,引入【jar】,使之能够正常编译通过。示例:PD_OAuth2_V11.jar
    4. 新增处理类,实现【ext.oauth2.paramprocess.IParamProcess】接口以及process方法,返回的值即为最终设置到【Header】或【参数】中的值。
    5. 将扩展包一并添加到smartbi中,并将实现类的全类名路径添加添加到配置项中:

                     Image Removed

2.2.7 其他说明

  • 目前OAuth2扩展包拦截的路径包括:
    1. index.jsp:smartbi本身的首页地址
    2. ssologin.jsp:登录验证成功后,会回跳到index.jsp首页地址。
    3. ssoopenreport.jsp:登录成功后,会回跳到openresource.jsp打开资源地址。
    4. ssoopenmodule.jsp:登录成功后,会回跳到openmodule.jsp打开模块地址。
    5. ssocreateresource.jsp:登录成功后,会回跳到createresource.jsp创建资源地址。

      注:支持集成地址的参数,可实际参考wiki,集成时携带对应的参数

  • 配置了OAuth2认证信息后,用户未登录时,访问时会跳转到配置的统一认证地址,但也提供了逃生通道,逃生访问方式为传递authtype=0,即访问 index.jsp?authtype=0 时,可在未登录时正常访问。
  • 调用用户信息接口后,会根据配置的用户结构获取到用户信息,根据用户信息与Smartbi系统中的用户名称、用户id依次匹配,若匹配到用户且用户启用状态正常时,则可正常登录,若账号不存在或账号异常,会跳转到错误页面进行提示,无法进行登录。因此需要提前做好用户同步,本通用扩展包不支持用户同步功能。

2.3 效果说明

2.3.1 逃生通道访问

配置完成后,重新访问Smartbi,若携带了authtype=0参数,可正常访问Smartbi首页;

例如:http://10.10.202.37:35110/smartbi/vision/index.jsp?authtype=0

Image Removed

2.3.2 统一认证界面登录

配置完成后,若访问Smartbi时,未携带authtype=0参数,则跳转到配置的统一认证地址进行登录。

例如:http://10.10.202.37:35110/smartbi/vision/index.jsp

Image Removed

2.3.3 第三方系统单点登录Smartbi首页访问

例如:http://10.10.202.37:35110/smartbi/vision/ssologin.jsp

Image Removed

2.3.4 第三方系统集成报表资源访问

访问集成资源ssoopenreport.jsp页面,携带resid参数,登录成功后可正常跳转到资源集成页面。

例如:http://10.10.202.37:35110/smartbi/vision/ssoopenreport.jsp?resid=xxxxx

Image Removed