Spotfire® 用户指南

管理信任

许多 Spotfire 用户希望以不同的方式扩展 Spotfire 环境。当允许自定义代码在分析中运行时,或者当启用与其他系统的直接交互时,考虑安全性非常重要。怀揣恶意的人员创建的任何自定义项目都可能会执行意外或不受欢迎的操作。因此,Spotfire 使用不同的信任机制来保证系统安全。

在内部部署环境中,管理员可以控制能够生成自定义内容、并通过许可证和组归属验证的用户,还可以预定义信任。如果没有预定义的信任,使用自定义项目时会收到警告。

注: 用户可以在“文件” > “管理信任”下检查分析中需要某种信任的所有自定义项目。仅应信任您确定来源可靠的项目。

Spotfire 图表 mod、操作 mod 和外部操作

具有足够权限的用户可以创建 Spotfire mod 并将其上传到 Spotfire 库,同样,具有足够权限的用户可以配置可能发送数据或与外部系统交互的外部操作。内部部署 Spotfire 管理员可以访问多种工具,以确保仅允许受信任的开发人员或配置人员添加和执行代码,或配置外部操作。有关详细信息,请参见《Spotfire Server 和环境 – 安装和管理》指南中的信任 Spotfire 环境中的自定义内容

作为最终用户,您可能有不同的选项来信任其他人添加的项目,具体取决于您在环境中的角色。

已签名项目

创建 mod(或外部操作)或将其添加到 Spotfire 环境的任何用户都可以对其进行签名。该签名会告知其他用户项目的来源信息,帮助用户对于是否信任该项目做出正确决定。通过已签名项目,可以验证代码或操作的真实性、完整性和发布者。

用户可以通过证书颁发机构 (CA) 创建的证书对 mod 进行签名,或使用将 mod 项目加载到分析文件的人员的 Spotfire 帐户自动进行签名。当您处于离线状态时,只能使用 CA 证书对 mod 进行签名,而无法使用 Spotfire 帐户。有关使用证书对 mod 进行签名的详细信息,请参见 Spotfire 开发人员文档 > Spotfire 包生成程序

外部操作始终使用您的 Spotfire 帐户进行签名。
注: 默认情况下,只能信任有效的签名。在特殊情况下,内部部署系统中的管理员可以解除此限制,方法是更改管理器中的偏好(“应用程序” > “信任” > “需要有效签名才能允许信任”)。在没有服务器的情况下运行已安装的 Spotfire 客户端的用户总是可以信任无效的签名,因此应格外小心。

信任 mod、操作或签名者

当 mod 或外部操作经过签名后,更易于决定是否对其信任。也就是说,您将信任建立在签名该项目的公司或个人身上。您可以选择信任某个人添加的所有 mod 或外部操作,即信任签名者,也可以仅信任特定的项目。由 Cloud Software Group 签名的数据科学加载项将自动受信任。对于数据科学加载项,信任只能由 Cloud Software Group 或管理员撤销。

如果您信任某个特定的 mod 版本,则该 mod 在其所在的所有分析中都会视为受信任,但是,如果以后对 mod 做出任何更改,就需要重新信任。外部操作始终在分析的上下文中进行配置,如果分析发生更改以致配置可能导致数据泄漏,则需要重新配置外部操作并因此对其重新签名。如果您决定信任签名者,而不是某个特定的项目,则将自动信任该签名者所有未来的项目(或新版 mod)。

信任可以由拥有信任项目权限的最终用户在个人层面上执行,但管理员也可以为 Spotfire 环境中的一组用户定义信任。为了避免不必要的信任提示,如果可能的话,通常首选后者。

不受信任的 mod

无论是否对 mod 进行了签名,尝试向分析中添加不受信任的 mod 都会引发一个问题,即是否应该信任该 mod(也就是说,如果您没有信任权限,就无法添加 mod)。仅应信任您确定来源可靠的 mod。

不受信任的操作

如果将操作添加到分析中,并且管理员未将 mod 开发人员或配置人员添加为受信任的签名者,则单击图表中操作的触发器(例如,浮动按钮或弹出式菜单)时,系统将会询问您是否信任该操作,如果是外部操作,还将向您显示该操作将会影响哪些数据。

撤销信任

如果您有权信任签名者和项目,则还可以使用“文件” > “管理信任”对话框,撤销已添加到分析中的信任。单击对话框中的“查看所有受信任的签名者”按钮,可转到服务器上的“我的帐户”页面,在该页面中,用户可以查看所有受信任的签名者和项目的概览,并撤销管理员尚未分配的信任。请注意,管理员可以随时撤销对您已信任内容的信任,或使用户的签名作废。

使签名无效

如果您的用户帐户已被用于对您不想支持的项目签名,您可以使您的所有签名从特定时间到目前为止无效。此操作在“我的帐户”页面完成(如果有签名)。

管理员还可以撤销签名者的证书,使签名无效,或者阻止签名者或特定的 mod,以防止用户添加 mod。

对以 IronPython、JavaScript 编写或数据函数内的脚本的信任

IronPython 和 JavaScript 脚本及数据函数不支持签名,因此这些项目始终显示在“管理信任”对话框的“未签名项目”下。而 Spotfire 会使用一种信任机制,在这种机制中,通过许可证和组成员关系验证的名为“脚本作者”的用户是唯一能够使脚本受组织中的任何人信任的用户。

在 Web 客户端中,不可能将信任分配给此类脚本。如果您遇到具有不受信脚本的分析,则必须在保存文件之前在已安装的客户端中打开分析并信任脚本,或者联系脚本作者为您执行此操作。

脚本作者

作为脚本作者,您有责任为公司的其他用户提供安全的工作脚本。如果您开发了包含脚本的数据函数或分析,在将其保存到库中之前,必须确保脚本或数据函数受信任,从而确保其他人可以使用。您可以查看分析中的所有脚本和数据函数,并逐个信任它们,或者通过选择“文件” > “管理信任”并单击“全部信任”来批准分析中的所有脚本。

如果在信任脚本前需要对其进行编辑,请转到“文件”>“文档属性”>“脚本”或“数据”>“数据函数属性”,您可以在其中分别看到所有脚本和数据函数的概览。

通过将脚本保存在操作 mod 中,而不是仅仅在分析中使用 IronPython 添加脚本,可以让管理员和其他用户更轻松地信任和共享脚本。

Spotfire 分析作者

如果您是一位分析作者,有时您可能会希望运行未经脚本作者批准和信任的脚本或数据函数。例如,您可能会收到同事的本地文件以进行测试。

如果您打开具有不受信任脚本的分析,则可以选择使用“管理信任”对话框,自己查看和信任脚本或数据函数。如果在信任脚本前需要对其进行编辑,请在已安装的客户端中转到“文件” > “文档属性” > “脚本”“数据” > “数据函数属性”,可在其中分别看到所有脚本和数据函数的概览。您还可以从“数据”画布编辑数据函数实例的脚本。

如果您不是该脚本的主要作者,并且您不具备了解该脚本是否安全的资格,那么只有当您确信它来自可靠来源时,才能信任它。
注: 在某些情况下,您可能需要在信任脚本或数据函数后重新加载数据才能获取正确数据。

Web 客户端用户

在 Web 客户端中,不可能将信任分配给脚本,只能分配给操作 mod。如果您遇到具有不受信脚本的分析,则必须在保存文件之前在已安装的客户端中打开分析并信任脚本,或者联系脚本作者为您执行此操作。

用 R 编写的数据函数

Spotfire 有自己的 R 语言实现,即 Spotfire® Enterprise Runtime for R(又名 TERR™),它包含在 Spotfire 应用程序中。TERR 带有受限模式,该模式用于在使用数据函数时提供安全的环境。如果数据函数受信,那么可以在不受任何限制的情况下执行数据函数。如果基于 TERR 的数据函数不受信,Spotfire 将尝试在受限模式下运行数据函数。如果脚本使用在受限模式下不可用的语句,则数据函数将被阻止运行,直到它被信任。

注: 针对内联 TERR 脚本(即,当在自定义表达式中直接使用 TERR 时,只有受限执行模式可用)。
注: 如果您具有“编写脚本”许可功能,但您不是脚本编写组的成员,则在使用 Spotfire® Service for R 时,您无法运行自己创建的 R 脚本(使用已安装的客户端)。另请参见脚本和数据函数的使用