1. 准备工作
签名嵌入是一种向用户私密呈现嵌入式 Look、可视化图表、探索或信息中心的方式,用户无需登录单独的 Looker。而是通过您自己的应用进行身份验证。
签名嵌入首先要创建一个特殊的 Looker 网址,您将在 iframe 中使用该网址。该网址包含您要分享的信息、您系统中的用户 ID,以及您希望该用户拥有的权限。然后,您将使用 Looker 提供的密钥对网址进行签名。
前提条件
- 拥有正在运行的 Looker 实例
- 是 Looker 实例的管理员
学习内容
- 如何设置 Looker 实例以允许进行签名嵌入
- 如何生成密钥
- 您需要收集哪些信息才能将其纳入签名嵌入网址中
- 如何生成已签名的嵌入网址
- 如何将嵌入式商品添加到应用中
2. 合适的 Looker 托管
某些浏览器默认采用会屏蔽第三方 Cookie 的安全政策,这会导致已签名的嵌入式内容无法正常运行。对于此 Codelab,解决此问题的最简单方法是在浏览器中暂时允许第三方 Cookie:
在生产设置中,您必须选择以下策略之一来处理第三方 Cookie:
- 将 Looker 实例和您要使用签名嵌入的应用放在同一网域中。例如,您的 Looker 实例可能位于
looker.mycompany.com
,而您的已签名嵌入网站位于analytics.mycompany.com
。 - 启用不使用 Cookie 的嵌入式功能,以便阻止第三方 Cookie 的浏览器能够跨不同网域进行身份验证。使用此选项确实需要进行额外的配置,如 Looker 的无 Cookie 嵌入文档页面中所述。
3. 生成密钥
如需创建已签名的嵌入网址,您需要 Looker 提供的密钥。为此,请执行以下操作:
- 前往 Looker 的管理部分中的嵌入页面。
- 从嵌入式 SSO 身份验证下拉菜单中选择已启用,然后选择更新。
- 在嵌入 Secret 部分中,选择重置 Secret 按钮以生成嵌入 Secret。
请将此密文复制到安全的位置,因为您将无法在不重置的情况下从 Looker 中检索到它。重置密钥会破坏使用旧密钥的所有嵌入内容。
4. 收集签名嵌入网址的输入内容
如需创建已签名的嵌入网址,您需要收集以下信息。
要显示的数据的网址
检索要嵌入的 Look、探索、查询可视化图表或信息中心的网址。然后,移除网域,并将 /embed
放在路径前面。
例如,https://instance_name.cloud.looker.com/looks/4
将变为 /embed/looks/4
。
或者,https://instance_name.cloud.looker.com/explore/my_model/my_explore
会变为 /embed/explore/my_model/my_explore
。
您希望嵌入式用户拥有的权限
选择您希望嵌入式用户拥有的权限。如需了解签名嵌入的相关权限,请参阅 Looker 的签名嵌入文档页面。
在此 Codelab 中,以下权限很可能是最低可行权限列表:
access_data
see_lookml_dashboards
see_looks
see_user_dashboards
explore
如果您想测试嵌入式用户浏览和保存内容的能力,不妨考虑以下事项:
save_content
embed_browse_spaces
embed_save_shared_space
您希望嵌入式用户拥有的模型访问权限
选择您希望嵌入式用户有权访问的 Looker 模型。用户至少应有权访问您选择显示的 Look、探索、查询可视化图表或信息中心所基于的模型。
您希望嵌入式用户拥有的用户属性
选择您希望嵌入式用户拥有的 Looker 用户属性(如果有)。对于此 Codelab,您可能无需添加任何用户属性。
您希望嵌入式用户拥有的群组
确定用户应属于哪些群组 ID(而非群组名称),如果有的话。对于本 Codelab,可能不需要添加任何群组。
您公司的用户 ID 和群组
Looker 签名嵌入网址要求您为应用中查看嵌入式 Looker 元素的每位用户提供唯一标识符。Looker 将此 ID 称为“外部用户 ID”,它可以是任何字符串。
如果相关,您还可以提供“外部群组 ID”。这是用户在您的应用中所属群组的唯一标识符。
5. 选择网址生成脚本
如需构建合适的签名嵌入网址,您需要使用代码,以便使用您的密钥正确编码网址并生成其他与安全相关的内容。
幸运的是,Looker 的 looker_embed_sso_examples GitHub 代码库中提供了多种编程语言的多个示例脚本。选择与您相关的脚本,然后将其复制到开发环境中。
6. 填写数据并运行脚本
您选择的网址生成脚本将包含变量或对象,您可以在其中放置之前收集的所有信息,以及有关如何呈现这些信息的示例:
脚本名称 | 输入的大致行数 |
| 15 - 28 |
| 18 - 35 |
| 193 - 202 |
| 87 - 104 |
| 103 - 111 |
| 88 - 101 |
| 14 - 27 |
将示例替换为您收集的数据后,运行脚本以生成已签名的嵌入网址。记下该网址,以便在下一步中使用。
7. 测试网址
如需测试最终到达网址,请将其粘贴到 Looker 的管理部分嵌入页面上的嵌入 URI 验证器中。虽然此功能无法确定您设想的数据和权限是否已正确设置,但可以验证您的身份验证是否正常运行。
8. 将网址嵌入到 iframe 中
最后,通过将生成的网址添加到 iframe
的 src
属性,将 Look、探索、查询可视化图表或信息中心嵌入到您的应用中。将该 iframe 放置到您的应用或测试环境中。
如果需要,您可以使用 JavaScript 通过 Looker 的嵌入式 JavaScript 事件与 iframe 进行互动。
9. 其他信息
应仔细配置 Looker 的签名嵌入功能,以确保嵌入式用户仅具有您所需的数据查看权限和许可。请考虑以下事项:
- Looker 的已签名的嵌入文档页面详细介绍了如何生成已签名的嵌入网址,并提供了所有可用的配置选项。
- Looker 的嵌入式分析的安全性最佳实践文档页面提供了有关如何安全配置签名嵌入的指南。
- Looker 客户通常会使用签名嵌入功能向自己的客户展示数据,同时要求不同公司或群组的客户彼此不知情。在这种情况下,我们强烈建议您将 Looker 配置为封闭式系统,有时也称为“多租户安装”。
- 签名嵌入功能可通过 Looker 的 API 使用。