CAS与quickbi集成

本文涉及的产品
智能商业分析 Quick BI,专业版 50license 1个月
简介: cas是一款优秀的单点登录框架,quickbi也有自己的单点登录,当两个产品要进行整合使用一个单点登录,需要怎么改造呢?今天我们就来探讨下。cas使用的是5.2.6版本,quickbi使用的是4.1版本。

目的:用户统一从CAS进行登录,进入到统一门户页面,可以通过统一门户跳转到quickbi页面,在统一门户创建的用户以及用户权限(主要指数据权限,如区县级用户只看到报表区县级数据,地市级看到地市级数据)可以同步到quickbi。
首先第一步,我们先进行CAS与quickbi单点登录的对接,登录流程如下:
image.png

  1. 修改quickbi配置页面(页面地址以及账号可以找部署人员咨询),页面配置如下:
    image.png

image.png
image.png
页面相关配置说明如下:
image.png
按照如上配置完成后效果如下:
image.png
注意:公钥和私钥的生成是从管理员账号下的 组织管理——》识别码 生成的,该参数如果填写错误,创建账号调接口时将会提示Error msgerror response: errorCode: OE10010106, errorMsg: api is not authorized, traceId :

  1. 编写登录态校验接⼝以及⽤户信息接⼝
    登录态校验接口:根据quickbi传输的登录态调用cas的serviceValidate接口获取用户信息(注意:cas的serviceValidate接口参数名称为ticket,因此登录态校验接口的参数名称如果也是ticket,需要将该接口放入到不对接cas单点登录的服务,否则会被cas拦截,导致接口调不到),拿到返回信息后将用户id返回给quickbi,代码如下:
    String url = http://cas ip:端口+/cas/serviceValidate?ticket=登录态+"&service="+http://统一门户 ip:端口+认证接口;
    ValidateTicketResonse validateTicketResonse = new ValidateTicketResonse();
    HttpResponse httpResponse = HttpUtil.createGet(url).execute();
    if(httpResponse.isOk()){
    String body = httpResponse.body();
    log.error("返回信息body:"+body);
    try{

      Document docResult=XmlUtil.readXML(body);
      String value = (String) XmlUtil.getByXPath("//cas:serviceResponse/cas:authenticationSuccess/cas:user", docResult, XPathConstants.STRING);
      String [] strs = value.split(" ");
      String userCode = strs[strs.length-1];
      //根据登录账号查询统一门户用户id
      Long operatorId =  fouraUserInfoService.getUserIdByUserCode(userCode);
      if(operatorId == null || operatorId < 1){
          return new ResultResponse(true,"700","验证失败",validateTicketResonse);
       }
       validateTicketResonse.setIsLogin(true);
       validateTicketResonse.setUserId(operatorId.toString());
       return new ResultResponse(true,"200","验证成功",validateTicketResonse);
     }catch (Exception e){
              log.error("获取用户信息失败",e);
              return new ResultResponse(true,"700","验证失败",validateTicketResonse);
          }
      }else{
          return new ResultResponse(true,"700","验证失败",validateTicketResonse);

    }
    用户信息接口:根据quickbi传输的用户id参数获取用户详细信息
    至此,CAS与quickbi单点登录功能对接完成,可以将quickbi注册到统一门户中,通过统一门户跳转到quickbi页面,但是cas的用户需要手工再quickbi再次创建一遍。
    第二步进行quickbi权限配置

主要进行quickbi工作空间、设置省市县用户标签、新建用户组、将页面集中授权给用户组、设置数据集的行级权限的配置。
新建工作空间:
image.png
设置省市县用户标签:
image.png
新建用户组(所有用户权限是一样的,方便我们授权时将无需关注用户再quickbi的权限):
image.png
将页面集中授权给用户组(数据报表用户组下的人看到的菜单是一样的,数据权限不一样):
image.png
设置数据集的行级权限(控制各个数据源的数据权限,防止所有人看到的数据都是一样的):
image.png
至此,quickbi的配置已完成。
第三步进行cas与quickbi用户的打通,用户对接流程如下:
image.png
按照上图所示,调用quickbi接口。
至此,cas的用户与quickbi的用户打通,cas创建的用户将会同步到quickbi,并授予quickbi相应的权限

相关实践学习
助力游戏运营数据分析
本体验通过多产品组合构建了游戏数据运营分析平台,提供全面的游戏运营指标分析功能,并有效的分析渠道效果。更加有效地掌握游戏运营状态,也可充分利用数据分析的结果改进产品体验,提高游戏收益。
Quick BI在业务数据分析中的实战应用
Quick BI 是一款专为云上用户和企业量身打造的新一代自助式智能BI服务平台,其简单易用的可视化操作和灵活高效的多维分析能力,让精细化数据洞察为商业决策保驾护航。为了帮助您更快的学习和上手产品,同时更好地感受QuickBI在业务数据分析实践中的高效价值,下面将以一个真实的数据分析案例为场景带您开启QuickBI产品之旅。场景:假设您是一家大型互联网新零售企业的数据分析师,您的经理刚刚拿到8月份的月度运营分析数据,他发现近期企业运营状况不佳,8月份毛利额环比前几个月下滑较大,三季度存在达标风险。因此将这个任务交给了您,根据订单信息和流量渠道信息等相关数据,分析企业8月份毛利额下滑的关键要素,并将其分享给团队,以便指导相关业务部门采取决策和行动,提高企业整体毛利额。 &nbsp;
相关文章
|
6月前
|
XML Java 应用服务中间件
在Web Application中集成CAS登录模块
在Web Application中集成CAS登录模块
47 0
|
安全 Java Spring
77分布式电商项目 - CAS 客户端与 SpringSecurity 集成
77分布式电商项目 - CAS 客户端与 SpringSecurity 集成
74 0
|
前端开发 Java
SpringBoot 集成cas5.3 实现客户端接入cas认证中心
前面我们讲解了很多关于cas认证中心的内容,今天我们说一说如何接入客户端
967 0
|
运维 监控 安全
Quick BI产品核心功能大图(六)开放集成:Quick BI+,激发业务新价值
企业想要拥有领先的数据分析能力,自研往往需要投入巨大的人力和财力。 Quick BI作为唯一一个连续两年入选Gartner魔力象限的中国BI产品,具备强大的全链路开放集成能力,可以轻松的与企业原有系统匹配融合,帮助企业快速构建起强大好用的数据分析平台!
740 0
Quick BI产品核心功能大图(六)开放集成:Quick BI+,激发业务新价值
.NetWeb集成cas
仅供参考
799 0
|
PHP
PHP集成cas
仅供参考
975 0
|
Java Apache 数据库
Spring Boot 集成Shiro和CAS
Spring Boot 集成Shiro和CAS 标签: springshirocas 2016-01-17 23:03 35765人阅读 评论(22) 收藏 举报  分类: Spring(42)  版权声明:本文为博主原创文章,未经博主允许不得转载。
2927 0
|
Java 网络安全 API

热门文章

最新文章