Qlik Sense SaaS中的行级安全性

在Qlik Sense SaaS中实现部门访问可能会充满挑战。有几个障碍:云中的用户名可能与本地安装中的用户名不同,并且Qlik Sense和QlikView之间的部分访问中的逻辑是不同的。本文将帮助您设置安全的解决方案。

Qlik应用程序中的安全性通常是通过使用“部分访问”功能来实现的。这是一个非常灵活和有用的功能,允许在应用程序内进行行级安全性。它还允许数据驱动的安全性定义,而不是手动定义的静态规则。

基本思想是加载授权表,该表定义允许哪些不同的用户查看:

节访问1

打开应用程序后,Qlik引擎将进行一个与适当的用户范围(COUNTRY)相对应的不可见选择,并删除所有排除的数据,以及其他表中的数据。这样,每个用户将只能看到他或她有权看到的内容。

 

用户名

在Windows上的QlikView和Qlik Sense中,用户名必须采用NetBIOS格式:

NetBIOS用户名2

但是,不能总是在云中使用的身份提供商的声明中找到该用户名。要查看您的身份提供商的声明,您需要登录Qlik Sense SaaS并将“ / api / v1 / diagnose-claims ”附加到URL。

ApiCallForClaims

然后,您将获得类似于以下内容的内容:

Claims

在这里,您可以看到身份提供者发送给Qlik Sense SaaS的属性。在此示例中,声明中没有与NetBIOS用户名相对应的属性。

 

解决方案1

设置Qlik Sense SaaS租户时,应确保将NetBIOS用户名(也称为sAMAccountName)映射到“ sub”声明。它将与“节访问”中的NTNAME和USERID进行比较。

ClaimsSub

如果执行此操作,则您的本地部门访问将在Qlik Sense SaaS中工作。无需其他更改。您可以在内部和在云中使用下面的授权表,因为NTNAME字段现在可在所有Qlik平台上使用。

Section Access 2

 

解决方案2

如果没有NetBIOS用户名,则需要以其他方式(例如,通过电子邮件地址)对用户进行身份验证。但这意味着您需要稍微修改授权表。新表可能如下所示:

Section Access 3

请注意,每个用户现在都有两条记录:一条用于本地访问,一条用于云访问。通配符确保仅使用相关的身份验证字段。

创建重复记录的最简单方法是在脚本中添加第二条Load语句:

两个Load statement

SERIAL字段用于环境测试。没有它,与云有关的记录将为内部QlikView环境中的所有用户提供访问权限:现有QlikView安装会忽略USER.EMAIL字段。但是使用SERIAL字段时,QlikView将拒绝对SERIAL没有通配符的所有记录的访问。

 

解决方案3

使用NTNAME或GROUP中的组来标识用户。这些字段将与“组”声明进行比较。

 

概要

  • NTNAME可以在所有环境中使用。在本地,将根据已验证用户的名称进行检查。在Qlik Sense SaaS中,将根据“子”声明和“组”声明进行检查。
  • USERID可以在Qlik Sense SaaS中使用。对照“次级”要求对其进行检查。
  • GROUP可以在Qlik Sense SaaS中使用。将根据“组”声明对其进行检查。
  • USER.EMAIL可以在Qlik Sense SaaS中使用,并根据“电子邮件”声明进行检查。它不适用于其他平台。
  • SERIAL可以在Qlik Sense SaaS中用作环境测试。如果它包含字符串“ QLIKCLOUD”,则它通过测试。相应的检查在QlikView中尚不起作用。
  • 前缀“ USER”。保留用于新的“节访问”字段。

 

关于Qlik

Qlik的愿景是一个数据素养的世界,每个人都可以使用数据来改善决策并解决他们最具挑战性的问题。只有Qlik提供端到端的实时数据集成和分析解决方案,以帮助组织访问所有数据并将其转化为价值。Qlik帮助企业领导数据,以更深入地了解客户行为,重塑业务流程,发现新的收入流以及平衡风险和回报。