使用 Looker 進行簽署嵌入

使用 Looker 進行簽署嵌入

程式碼研究室簡介

subject上次更新時間:11月 8, 2023
account_circle作者:Looker Documentation Team

1. 事前準備

透過簽署嵌入功能,使用者無需個別登入 Looker,即可向使用者私下顯示嵌入的 Look 圖表、視覺化內容、探索或資訊主頁。而是透過您自己的應用程式驗證使用者身分。

如要開始使用已簽署的嵌入功能,請先建立要在 iframe 中使用的特殊 Looker 網址。網址包含您要分享的資訊、系統中的使用者 ID,以及您要授予該使用者的權限。然後使用 Looker 提供的密鑰簽署網址。

  • 擁有正在執行的 Looker 執行個體
  • 成為 Looker 執行個體的管理員

課程內容

  • 如何設定 Looker 執行個體,允許簽署嵌入
  • 如何產生密鑰
  • 您需要收集哪些資訊,才能納入簽署的嵌入網址
  • 如何產生已簽署的嵌入網址
  • 如何將內嵌項目新增至應用程式

2. 適當的 Looker 主機

部分瀏覽器預設會採用安全性政策,封鎖第三方 Cookie,導致簽署嵌入功能無法運作。在本程式碼研究室中,解決這個問題最簡單的方法是在瀏覽器中暫時允許第三方 Cookie:

在正式版設定中,您必須選擇下列其中一種策略來處理第三方 Cookie:

  • 將 Looker 執行個體和您要使用簽名嵌入的應用程式放在相同網域。舉例來說,您的 Looker 執行個體可能位於 looker.mycompany.com,而已簽署的嵌入網站位於 analytics.mycompany.com
  • 啟用無 Cookie 嵌入功能,讓封鎖第三方 Cookie 的瀏覽器能夠跨網域進行驗證。如要使用這個選項,必須進行額外設定,詳情請參閱 Looker 的「無 Cookie 嵌入」說明文件頁面。

3. 產生密鑰

如要建立已簽署的嵌入網址,您需要 Looker 的私密金鑰。方法如下:

  1. 前往 Looker「管理」部分的「嵌入」頁面。
  2. 從「Embed SSO Authentication」下拉式選單中選取「Enabled」,然後選取「Update」
  3. 在「嵌入密鑰」部分選取「重設密鑰」按鈕,即可產生嵌入密鑰。

請將這個密鑰複製到安全位置,因為您必須重設密鑰,才能從 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 的「簽署嵌入」說明文件頁面。

以本程式碼研究室為例,下列權限清單可能就是最低需求:

  • access_data
  • see_lookml_dashboards
  • see_looks
  • see_user_dashboards
  • explore

如要測試嵌入式使用者瀏覽及儲存內容的功能,您也可以考慮:

  • save_content
  • embed_browse_spaces
  • embed_save_shared_space

您希望嵌入式使用者擁有的模型存取權

選擇要讓嵌入使用者存取的 Looker 模型。使用者至少應有權存取您選擇顯示的 Look、探索、查詢圖表或資訊主頁所依據的模型。

您希望嵌入的使用者擁有的使用者屬性

選擇要讓嵌入使用者擁有的 Looker 使用者屬性 (如有)。在本程式碼研究室中,您可能不需要新增任何使用者屬性。

您希望嵌入的使用者擁有的群組

決定使用者應屬於哪些群組 ID (而非群組名稱),如有。在本程式碼研究室中,可能不需要新增任何群組。

貴公司的使用者 ID 和群組

Looker 簽署的嵌入網址需要為應用程式中檢視嵌入 Looker 元素的每位使用者提供專屬 ID。Looker 將此稱為「外部使用者 ID」,可以是任何字串。

如果適用,您也可以提供「外部群組 ID」。這是使用者在應用程式中所屬群組的專屬 ID。

5. 選擇網址產生指令碼

如要建構正確的已簽署嵌入網址,您必須使用程式碼,才能以密鑰正確編碼網址,並產生其他安全性相關項目。

幸好,Looker 的 looker_embed_sso_examples Github 存放區提供多種程式設計語言的範例指令碼。選擇適合您的指令碼,然後複製到開發環境。

6. 填寫資料並執行指令碼

您選擇的網址產生指令碼會包含變數或物件,您可以在其中放置先前收集的所有資訊,以及這些資訊的呈現方式範例:

指令碼名稱

輸入內容的近似資料列數

LookerEmbedClientExample.java

15 - 28

csharp_example.cs

18 - 35

go_example.go

193 - 202

node_example.js

87 - 104

python_example.py

103 - 111

ruby_example.rb

88 - 101

sso_embed.php

14 - 27

將範例換成您收集的資料後,請執行指令碼來產生已簽署的嵌入網址。記下網址,以供下一個步驟使用。

7. 測試網址

如要測試最終到達網址,請將網址貼到 Looker「管理」部分的「嵌入」頁面上的「嵌入 URI 驗證工具」。這項功能無法判斷您預想的資料和權限是否已正確設定,但可以驗證驗證程序是否正常運作。

8. 在 iframe 中嵌入網址

最後,將產生的網址新增至 iframesrc 屬性,即可將 Look、探索、查詢視覺化或資訊主頁嵌入應用程式。將該 iframe 放入應用程式或測試環境。

如要使用 JavaScript 與 iframe 互動,請運用 Looker 的嵌入式 JavaScript 事件

9. 其他資訊

請仔細設定 Looker 的簽署嵌入功能,確保嵌入的使用者只能查看您希望他們看到的資料,並擁有您希望他們擁有的權限。請注意以下幾點:

  • 如要深入瞭解如何產生簽署的嵌入網址,以及所有可用的設定選項,請參閱 Looker 的「簽署的嵌入」說明文件頁面。
  • 如要瞭解如何安全地設定已簽署的嵌入功能,請參閱 Looker 的「嵌入式數據分析的安全性最佳做法」說明文件頁面。
  • Looker 客戶通常會使用簽署嵌入功能,向自己的客戶呈現資料,同時要求不同公司或群組的客戶互不認識。在這種情況下,我們強烈建議您將 Looker 設定為「封閉系統」,有時也稱為「多租戶安裝」。
  • 簽署嵌入功能可透過 Looker 的 API 使用