簡單總結一下 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
