qlikview 权限管理和sso集成
简单总结一下 qlikview 权限管理和SSO集成的过程, 在集成qlikview报表过程中碰到了很多坑, 甚至官方文档也不准确. 如果你也有类似的需求, 可以参考一下本文. 需要说明的是, 本文档方案仅仅是一个次优方案, 最优方案暂不发表.
本人承接qlikview 权限管理和sso集成服务, 有需求者可以联系我, liuzhongwu2008@163.com. 一般经优化后, License节省率在80%以上,每个Document许可目录价900美元(每个Named user许可更达1300美元), 节省率80%, 就能省下一大笔许可费, 经济新常态, 企业都不容易啊, 省了就是挣了.
本方案实施起来十分简单, qlikview server 端仅需做一些简单的配置即可, 最重要的是能大大节省 Qlikview的 license 费用.
总结该方案的特性有:
1. 节省License, 一般能节省80%, 而且用户数数量越多, 节省率越高.
2. 采用SSO账号作为用户ID, 而不必一定是NT域账号, 这样才符合绝大多数企业的管理模式.(企业系统权限管控一般是SSO账号, 而不按照机器登录账号)
3. 完善的报表访问管控机制, 可以按照SSO账号/部门开放报表的访问权.
4. 巧妙的报表数据行级管控机制. 据我所知很多公司就是因为需要做行级数据权限管控, 而不得不采用NT域账号进行Licnese管控, 最终购买非常多的许可证, 花费巨大. 网上也有一些许可证优化手段, 但如果你要做行级权限管控, 这些方法都不行, 本方案能完美解决这个问题.
5. 提供一个内置的报表Portal, 可以直接将这个系统开放给最终用户.
6. 提供系统集成的API, 方便其他系统集成, 本系统帮你搞定和QV交互的一切问题.
关于如何节省 license fee, 奥妙在于我有办法更智能更高效地使用每个许可, 很少量的许可数即可以支持很多用户用户使用. 同时document 许可比Named user 许可便宜不少, 所以我建议最好是使用document 许可.
本文给出一些相关的知识点, 包括下面几个方面, 如需要详细解决方案, 可以联系我, liuzhongwu2008@163.com.
一, DB server
新建qv用户权限表, 存储qv报表和最终用户的权限关系
二, qv server端:
1. 参考参考文献一, 选用适应性较好的webticket方案, 开启一个IP whitelist(白名单机制是最简单, 同时也最安全).
2. 在QMC上, 在qv document的authorization上, 设置一个access规则, access 值取 always, user type 取 all users.
三, client端:
1. #获取web ticket的代码(python)
import requests
from requests.auth import HTTPBasicAuth
req = requests.get('http://your_qv_server/QvAJAXZfc/GetWebTicket.aspx?cmd=<Global method="GetWebTicket"><UserId></UserId><GroupListIsNames>true</GroupListIsNames></Global>')
req.content #得到ticket
2. 访问指定的qv报告
下面访问方式, IE和其他浏览器都可以用:
http://your_qv_server/QvAJAXZfc/Authenticate.aspx?type=html&webticket=jfiVHRbfg22nBSdnFgoJ42IgXLdX1enfZ3JmHAMa&try=/QvAJAXZfc/opendoc.htm?document=your_Report.qvw
IE 浏览器, 也可以使用:
http://your_qv_server/QvAJAXZfc/Authenticate.aspx?type=html&webticket=jfiVHRbfg22nBSdnFgoJ42IgXLdX1enfZ3JmHAMa&try=/QvPlugin/opendoc.htm?document=your_Report.qvw
参考文献:
1. qlik webticket document( server 端设置)
https://community.qlik.com/docs/DOC-3614?
2. qlik webticket and doc access url ( client 端)
https://community.qlikview.com/thread/136599
3. server端和client端的示例与文档
https://github.com/braathen/qv-webticket
4. qlik AJAX and URL parameters
https://community.qlik.com/blogs/qlikviewdesignblog/2014/07/11/ajax-and-url-parameters
https://community.qlikview.com/thread/31497
5. QlikView Mashup
http://tools.qlikblog.at/QlikView-Mashups/QlikView_Mashups_1.html
https://help.qlik.com/en-US/qlikview-developer/12.1/Subsystems/Mashups/Content/mashups-document-integration.htm
http://www.qlikblog.at/2343/qliktip-48-qlikview-mashup-examples-documentation/
6. SSO in Qlikview, 有sso的pdf文档和示例代码
https://community.qlik.com/thread/77105
7. tool which test QlikView Webtickets, 一个 GUI 工具, 附源码
https://community.qlik.com/docs/DOC-7008
8. QlikView系统集成及SSO相关技术
http://www.51yc.cn/?p=22
9. QV行级权限管控 http://help.qlik.com/zh-CN/qlikview/12.0/Subsystems/Client/Content/Security.htm
qlikview 权限管理和sso集成的更多相关文章
- QlikView 权限设置问题和注意
企业级报表通常都涉及到复杂的权限问题, 比如文本级权限和行级权限,某区域经理只能看到该区域的销售数据.QlikView自然也提供了该种功能. 具体方法: 在Edit script中新建一个tab, 输 ...
- 权限管理系统之SpringBoot集成LayUI实现后台管理首页
万事开头难,昨天一直在构思用户权限管理系统怎么实现,实现哪些需求,采用什么技术等,也在网上百度了好多,计划使用SpringBoot + Mybatis + thymeleaf + LayUI + S ...
- SSO集成方案[随笔]
看这个方案之前,先说明下为什么要加入SSO,以防对大家产生不好的影响.我们产品使用传统winform+db服务+Db存储方式开发,一群老菜帮子开发,以传统的datatble做数据传递,很多年了未有变化 ...
- 【权限管理】springboot集成security
摘自: https://www.cnblogs.com/hhhshct/p/9726378.html https://blog.csdn.net/weixin_42849689/article/det ...
- Shiro权限框架与SpringMVC集成
1.Shiro整合SpringMVC 我们学习Shiro框架肯定是要应用到Web项目上的,所以我们需要整合Shiro和SpringMVC 整合步骤: 第一步:SpringMVC框架的配置 spring ...
- 基于 EntityFramework、Autofac 的 UnitOfWork 框架(一)
之前公司项目参考 NopCommerce 开发了一套系统,但是不支持 UnitOfWork,最近想开发新的项目,所以就基于原有的基础上又添加 UnitOfWork 支持,由于目前正在逐步完善中,所以可 ...
- QlikView sheet权限
最近遇到了个新问题,需要针对不同的sheet设置不同的权限,具体是用户登录不同账户,可以看到统一文档的不同sheet 对于Qlikview权限设置就不做描述,下面直接进行sheet操作 第一步,打开脚 ...
- 《浅谈架构之路:单点登录 SSO》
前言:SSO 单点登录 “半吊子”的全栈工程师又来了,技术类的文章才发表了两篇,本来想先将主攻的几个系列都开个头(Nodejs.Java.前端.架构.全栈等等),无奈博客起步太晚,写博文的时间又没有很 ...
- 浅谈架构之路:单点登录 SSO
前言:SSO 单点登录 "半吊子"的全栈工程师又来了,技术类的文章才发表了两篇,本来想先将主攻的几个系列都开个头(Nodejs.Java.前端.架构.全栈等等),无奈博客起步太晚, ...
随机推荐
- Codeforces 1045. A. Last chance(网络流 + 线段树优化建边)
题意 给你 \(n\) 个武器,\(m\) 个敌人,问你最多消灭多少个敌人,并输出方案. 总共有三种武器. SQL 火箭 - 能消灭给你集合中的一个敌人 \(\sum |S| \le 100000\) ...
- Spring MVC工作原理 及注解说明
SpringMVC框架介绍 1) spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面. Spring 框架提供了构建 Web 应用程序的全功 ...
- Nginx代理MysqlCluster集群
-------Nginx代理MysqlCluster 公司有一个公网ip,有公网ip(222.222.222.222)那台服务器上装的nginx,mysql装在公司另外一台服务器上假设ip为192.1 ...
- 如何在Windows 10上运行Docker和Kubernetes?
如何在Windows 10上运行Docker和Kubernetes? 在Windows上学习Docker和Kubernetes,开始的时候会让你觉得无从下手.最起码安装好这些软件都不是一件容易的事情. ...
- Linux基本命令总结(三)
接上篇: 11,more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示 ...
- Mybatis 批量插入时得到插入的id(mysql)
前言: 在开发中,我们可能很多的时候可能需要在新增时得到刚才新增的id,后续的逻辑需要用到这个id. 在插入单条记录的情况下,这个是很简单的问题.多条记录时有个坑在里面. 单条记录的代码如下 < ...
- django orm跨表查询废话最少最精简版
在model.py中: class B1(models.Model): u1= models.CharField(max_length=32) #多 class B2(models.Model): f ...
- (最小生成树 并查集)P1111 修复公路 洛谷
题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时 ...
- bzoj2243 树链剖分
https://www.lydsy.com/JudgeOnline/problem.php?id=2243 新学的树剖,在维护的时候线段树维护区间内颜色数量以及左右两端的颜色.统计的时候区间合并时判断 ...
- CodeForces7D 字符串hash + dp
https://cn.vjudge.net/problem/20907/origin 长度是 n 的字符串 s,如果它自身是回文数,且它的长度为 的前缀和后缀是 (k - )-回文数,则它被称作 k- ...