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相应的权限

相关实践学习
阿里云实时数仓实战 - 用户行为数仓搭建
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3&nbsp;)前置知识要求:熟练掌握 SQL 语法熟悉 Linux 命令,对 Hadoop 大数据体系有一定的了解 &nbsp; 课程大纲 第一章&nbsp;了解数据仓库概念 初步了解数据仓库是干什么的 第二章&nbsp;按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章&nbsp;数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章&nbsp;采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章&nbsp;用户行为数据仓库 严格按照企业的标准开发 第六章&nbsp;搭建业务数仓理论基础和对表的分类同步 第七章&nbsp;业务数仓的搭建&nbsp; 业务行为数仓效果图&nbsp;&nbsp;
相关文章
|
XML Java 应用服务中间件
在Web Application中集成CAS登录模块
在Web Application中集成CAS登录模块
127 0
|
安全 Java Spring
77分布式电商项目 - CAS 客户端与 SpringSecurity 集成
77分布式电商项目 - CAS 客户端与 SpringSecurity 集成
113 0
|
前端开发 Java
SpringBoot 集成cas5.3 实现客户端接入cas认证中心
前面我们讲解了很多关于cas认证中心的内容,今天我们说一说如何接入客户端
1615 0
|
运维 监控 安全
Quick BI产品核心功能大图(六)开放集成:Quick BI+,激发业务新价值
企业想要拥有领先的数据分析能力,自研往往需要投入巨大的人力和财力。 Quick BI作为唯一一个连续两年入选Gartner魔力象限的中国BI产品,具备强大的全链路开放集成能力,可以轻松的与企业原有系统匹配融合,帮助企业快速构建起强大好用的数据分析平台!
981 0
Quick BI产品核心功能大图(六)开放集成:Quick BI+,激发业务新价值
.NetWeb集成cas
仅供参考
916 0
|
PHP
PHP集成cas
仅供参考
1056 0
|
Java Apache 数据库
Spring Boot 集成Shiro和CAS
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/catoop/article/details/50534006 请大家在看本文之前...
2038 0
|
12月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用

热门文章

最新文章