简单总结一下 qlikview 权限管理和SSO集成的过程, 在集成qlikview报表过程中碰到了很多坑, 甚至官方文档也不准确. 如果你也有类似的需求, 可以参考一下本文. 本人承接qlikview 权限管理和sso集成服务, 有需求者可以联系我, liuzhongwu2008@163.com
本方案实施起来十分简单, qlikview server 端仅需做一些简单的配置即可, 最重要的是能大大节省 Qlikview的 license 费用.
关于如何节省 license fee, 奥妙在于我们使用 Document CAL 访问报表, 而不是 Named CAL, 另外的好处还有, Named CAL 其实就是 qlikview 的power user, 对于一般的报表用户来讲权限太大, 一旦使用 Named CAL登录进入qv web界面, 该用户就可访问所有的report, 我们失去权限管控的机会.
本文给出了一个集成qv文档的相对简单的方法, 设置包括下面几个方面:
一, DB server
新建qv用户权限表, 存储qv报表和最终用户的权限关系
二, qv server端:
1. 参考参考文献一, 选用适应性较好的webticket方案, 开启一个IP whitelist(白名单机制是最简单, 同时也最安全).
三, 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://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