在「管理」選單的「驗證」部分,點選「Google 驗證」頁面,即可在 Looker 端設定 Google OAuth。
功能總覽
Looker 可使用 Google OAuth,為已註冊 Google Workspace 帳戶的使用者執行驗證。
- 使用 Google Workspace 的組織可以驗證擁有 Google 帳戶的 Looker 使用者。
- 使用者透過 Google 帳戶驗證身分,登入 Looker。
- 新 Google 帳戶會自動取得 Looker 存取權。不必另外邀請使用者加入 Looker。您可以為新使用者設定預設角色,限制他們存取功能和資料。
- 組織可以設定 Google 群組鏡像,根據 Google 群組成員資格自動指派 Looker 角色和群組。
- 啟用後,Looker 只會透過 Google OAuth 驗證使用者,除非選取「備用登入方式」選項 (請參閱下一節「在啟用 Google 驗證時啟用電子郵件登入」)。
- 使用者的 Google 顯示圖片會顯示在導覽列中,而非標準使用者符號。
- 啟用 Google OAuth 時,Looker 執行個體可以將現有使用者帳戶與 Google 註冊網域合併,但僅限電子郵件地址與網域相符的帳戶。所有其他非管理員帳戶將無法登入。
- 指定網域中的所有使用者都能存取 Looker 執行個體。
- 根據預設,新的 Google 使用者會獲得特定模型清單的基本存取權 (也可以不授予任何模型的存取權)。帳戶建立後,管理員可以更新權限。
- 使用 Google OAuth 驗證的新 Looker 帳戶無法切換至密碼驗證,即使 Looker 執行個體已停用 OAuth 也一樣。
初步規定
如要使用 Google OAuth,必須符合下列條件:
- 貴機構的 Google Workspace 帳戶。
- 由機構控管並註冊至 Google Workspace 帳戶的網域。
- 電子郵件地址位於與 Google 帳戶相關聯網域的使用者。
- 每位使用者都必須在 Google Workspace 中擁有受管理的使用者帳戶。如要找出並遷移任何非受管使用者帳戶,請使用非受管使用者轉移工具。
如要使用 Google 群組鏡像,還須符合下列額外規定:
- 在包含 OAuth 用戶端的 Google Cloud 專案中,必須啟用 Cloud Identity API (
cloudidentity.googleapis.com)。 - 如果是客戶託管的 Looker 執行個體,執行個體主機必須能透過 HTTPS (
cloudidentity.googleapis.com:443) 存取網際網路。 - 使用者必須具備所屬 Google 群組的
VIEW_MEMBERSHIP權限。在 Google 網路論壇設定中,將「誰可以檢視成員」欄位設為「群組成員」。 - 如果 Looker 執行個體採用符合 FIPS 規範的模式,則不支援 Google 群組鏡像功能。
啟用 Google OAuth 驗證
如要啟用 Google OAuth 驗證,管理員必須在 Google 和 Looker 兩端執行步驟,詳情請參閱下列各節。
在 Google 端設定
本節說明在 Google 端啟用 Google OAuth 的步驟。如需這些步驟的一般說明,請參閱 Google 支援頁面的設定 OAuth 2.0。您也可以參閱 Google Cloud console 說明文件。
前往 Google Cloud 控制台。
按一下「選取專案」下拉式選單中的向下箭頭。下拉式選單中可能會顯示現有專案的名稱。無論如何,請按一下向下箭頭,系統就會顯示建立新專案的選項。
在「選取專案」頁面中,按一下「新增專案」。
Google Cloud 控制台會顯示「New Project」頁面。
填寫「New Project」(新增專案) 頁面中的資訊,然後按一下「Create」(建立)。
Google Cloud 控制台建立新專案後,Google 會將您導回 Google Cloud 控制台,並顯示新專案。
選用:如果您打算使用 Google 群組鏡像,請在 Google Cloud 專案中啟用 Cloud Identity API。啟用這個 API 後,您在設定 OAuth 同意畫面時,就會看到
https://www.googleapis.com/auth/cloud-identity.groups.readonly範圍。您必須具備服務使用情形管理員 (roles/serviceusage.serviceUsageAdmin) Identity and Access Management (IAM) 角色,才能啟用 API。在左選單中,依序選取「API 和服務」>「憑證」。
在「憑證」頁面中,按一下「建立憑證」按鈕,然後從下拉式選單中選取「OAuth 用戶端 ID」。
Google Cloud 控制台會顯示「Create OAuth client ID」(建立 OAuth 用戶端 ID) 頁面。
Google Cloud 控制台會要求您設定 OAuth 同意畫面,讓使用者選擇如何授予私人資料存取權,並提供貴機構服務條款和隱私權政策的連結。按一下「設定同意畫面」。(如果您已為先前的專案設定 OAuth 同意聲明,就不會看到這個選項,可以跳到步驟 13)。
Google Cloud 控制台會顯示「OAuth consent screen」(OAuth 同意畫面) 頁面。
在「已授權網域」欄位中,輸入 Looker 執行個體的網域。舉例來說,如果 Looker 在
https://mycompany.looker.com代管您的執行個體,網域就是looker.com。如果是客戶託管的 Looker 部署項目,請輸入託管 Looker 的網域。設定 OAuth 同意畫面,然後按一下「儲存並繼續」。
在「Scopes」(範圍) 頁面中,按照下列步驟設定範圍:
- 如果您打算使用 Google 群組鏡像,請按一下「Add or remove scopes」(新增或移除範圍)。找到
https://www.googleapis.com/auth/cloud-identity.groups.readonly範圍,勾選旁邊的核取方塊,然後按一下「Update」(更新)。如果找不到這個範圍,請確認您已在Google Cloud 專案中啟用 Cloud Identity API。 - 如果您不打算使用 Google 群組鏡像功能,則無須額外設定範圍。
點選「儲存並繼續」。
- 如果您打算使用 Google 群組鏡像,請按一下「Add or remove scopes」(新增或移除範圍)。找到
在「摘要」頁面,點選「返回資訊主頁」。
Google Cloud 控制台會返回「Create OAuth client ID」(建立 OAuth 用戶端 ID) 頁面。
在「Application type」(應用程式類型) 下方,選取 [Web application] (網頁應用程式)。
在「Name」(名稱) 欄位中,輸入 OAuth 用戶端 ID 的名稱。
在「已授權的 JavaScript 來源」欄位中,輸入 Looker 執行個體的網址,包括
https://。例如:- 如果執行個體由 Looker 代管:
https://mycompany.looker.com - 如果您有客戶託管的 Looker 執行個體:
https://looker.mycompany.com - 如果 Looker 執行個體需要通訊埠號碼:
https://looker.mycompany.com:9999
- 如果執行個體由 Looker 代管:
在「已授權的重新導向 URI」欄位中,輸入 Looker 執行個體的網址,後面加上
/oauth2callback。例如:https://mycompany.looker.com/oauth2callback或https://looker.mycompany.com:9999/oauth2callback。點選「建立」。
複製用戶端 ID 和用戶端密鑰值,設定 Looker 時會用到。
在 Looker 端設定
如要在 Looker 啟用 Google OAuth,請按照下列步驟操作。
以管理員身分登入 Looker 應用程式,然後點選「Admin」下拉式選單,開啟「Admin」選單。
在「Authentication」群組下方,按一下「Google」。Looker 會顯示「Google Authentication」頁面。
按一下「啟用」,即可顯示及編輯 Google OAuth 設定。(這不會立即啟用 Google 驗證,您稍後必須確認選擇)。
輸入 Google Auth 設定。
- 用戶端 ID 和用戶端密鑰:從 Google OAuth 用戶端頁面複製並貼上這些值,如先前的 Google 設定操作說明所述。
- 網域:貴組織由 Google 管理的網域名稱。指定網域中的任何 Google 使用者都能登入 Looker 執行個體。如果您管理多個 Google 網域,可以輸入這些網域,並以半形逗號分隔。
輸入遷移選項,控管 Looker 執行個體在轉換至 Google OAuth 期間的行為。
- 管理員和指定使用者的備用登入方式:允許管理員和指定使用者繼續使用電子郵件和密碼登入。如果託管 Looker OAuth 用戶端的 Google Cloud 專案遭到刪除或停用 (即使還原專案,也可能導致 401
deleted_client錯誤),或 Google OAuth 因其他原因失敗,這項設定可啟用重要的備用方法,避免完全無法登入。我們極力建議您採用這項設定,詳情請參閱「在啟用 Google 驗證時啟用電子郵件登入功能」。 - 合併使用者:將電子郵件地址位於指定網域的現有使用者,轉換為在下次登入時使用 Google OAuth (例如 Looker 電子郵件/密碼)。建議採用這項設定。
- 新使用者的角色:指定新非管理員使用者擁有的功能和模型存取權。這份清單日後可以更新。如果留空,新的 Google 驗證使用者在 Looker 平台中的功能會受到限制,直到管理員為其帳戶新增角色為止。由於 Google 網域中的所有使用者都能登入 Looker,建議您為新使用者指定預設角色,適當限制存取權。
- 管理員和指定使用者的備用登入方式:允許管理員和指定使用者繼續使用電子郵件和密碼登入。如果託管 Looker OAuth 用戶端的 Google Cloud 專案遭到刪除或停用 (即使還原專案,也可能導致 401
設定「Groups & Roles」,選擇是否將 Google 群組鏡像至 Looker 群組,並自動指派角色:
如果您有受管理的 Google 群組,Looker 可以建立 Looker 群組,反映 Google 群組的成員資格,這表示您不必直接在 Looker 中設定使用者,而是可以透過管理 Google 群組的成員資格,管理使用者存取權。此外,您可以使用 Looker 群組指派角色給群組成員、設定內容存取權控管、控管功能和資料存取權,以及指派使用者屬性。
為確保群組鏡像功能正常運作,使用者必須具備所屬 Google 群組的
VIEW_MEMBERSHIP權限,Looker 才能在使用者登入時檢查群組成員資格。如要在 Google 網路論壇設定中授予這項權限,請將「誰可以檢視成員」欄位設為「群組成員」。如要啟用群組鏡像功能,請按照下列步驟操作:
- 開啟「鏡像 Google 群組」切換鈕。
- 按一下「管理群組」,開啟群組對應設定。
- 請為要同步處理的各個 Google 群組填寫下列欄位:
Looker 會為您新增至設定的每個 Google 群組建立一個 Looker 群組。您可以在 Looker 的「Groups」(群組) 頁面查看這些群組。
使用者登入 Looker 執行個體時,Looker 會套用鏡像 Looker 群組 (以及任何相關聯的角色和存取權)。Google 網路論壇中的群組成員資格變更,會在使用者下次登入時更新。
同步處理 Google 群組
設定 Google 群組鏡像功能後,您可以編輯或停用鏡像群組,並設定進階角色管理選項,詳情請參閱以下各節。
編輯鏡像群組
當您變更 Google 群組成員時,這些變更會自動套用至對應的 Looker 群組成員,並在每位使用者下次登入時驗證。
如果您在「Google 驗證」頁面編輯指派給群組的「Looker 群組名稱」或「角色」,這會變更鏡像群組在「群組」頁面的顯示方式,或指派給群組的角色,但不會變更群組成員。
如果將「Google Group ID」欄位中的名稱或電子郵件地址變更為新的 Google 群組 ID,則對應 Looker 群組的成員會變更為新 Google 群組的成員,但「Google Authentication」頁面中定義的群組名稱和角色會保持不變。
Looker 會在鏡像群組的使用者下次登入 Looker 時,套用您對該群組所做的任何編輯。
停用鏡像群組
如要停止在 Looker 中鏡像 Google 群組,請在「Google Authentication」(Google 驗證) 頁面關閉「Mirror Google Groups」(鏡像 Google 群組) 切換鈕。停用切換鈕會產生下列行為:
- 不含任何使用者的鏡像 Google 群組會立即刪除。
- 任何包含使用者的鏡像 Google 群組都會標示為孤立群組。使用者無法再新增至孤立群組,也無法從中移除。如果孤立群組中沒有任何使用者在 31 天內登入,系統就會刪除該群組。
進階角色管理
如果啟用「Mirror Google Groups」(鏡像 Google 群組) 切換鈕,「Advanced Role Management」(進階角色管理) 專區會顯示選項,決定 Looker 管理員設定 Looker 群組和從 Google 鏡像的使用者時,可採取的嚴格程度。
如要讓 Looker 群組和使用者設定與 Google 群組設定完全一致,請選取所有「Advanced Role Management」選項。啟用所有選項後,Looker 管理員無法直接修改鏡像群組成員,只能透過 Google 群組將角色指派給使用者。
如要更靈活地在 Looker 中自訂群組,請不要勾選這些選項。Looker 群組仍會同步處理 Google 群組設定,但您可以在 Looker 執行其他群組和使用者管理作業,例如將 Google 使用者新增至內建 Looker 群組,或直接將角色指派給 Google 使用者。
「Advanced Role Management」(進階角色管理) 區段包含下列選項:
防止個別 Google 使用者取得直接角色:啟用這個選項後,Looker 管理員就無法直接將 Looker 角色指派給 Google 使用者。Google 使用者只能透過群組成員身分取得角色。如果 Google 使用者可以加入內建 (非同步處理) 的 Looker 群組,則仍可沿用同步處理的 Google 群組和內建 Looker 群組的角色。先前直接獲派角色的 Google 使用者,下次登入時會移除這些角色。
禁止非 Google 群組直接取得成員資格:這個選項可防止 Looker 管理員將鏡像群組成員直接新增至內建 Looker 群組,而這些群組不屬於「Google 驗證」頁面上的鏡像群組設定。
如果選取這個選項,先前指派至內建 Looker 群組的 Google 使用者,在下次登入時會從這些群組中移除。
如果取消勾選這個選項,Looker 管理員就能直接將 Google 使用者新增至內建 Looker 群組。
禁止從非 Google 群組繼承角色:這個選項可防止鏡像群組成員從內建 Looker 群組繼承角色。如果允許同步處理的 Google 群組成為內建 Looker 群組的成員,Google 使用者可能會保留內建 Looker 群組的成員資格,但先前從內建群組繼承角色的 Google 使用者,在下次登入時會失去這些角色。
如果取消勾選這個選項,則新增為內建 Looker 群組成員的鏡像群組或 Google 使用者,會繼承指派給該內建群組的角色。
Auth Requires Role:如果啟用這個選項,Google 使用者必須具備指派的 Looker 角色。如果啟用這個選項,Google 使用者必須獲派 Looker 角色,才能登入 Looker。
如果取消勾選這個選項,Google 使用者即使未獲派角色,也能驗證 Looker。未獲派角色的使用者無法在 Looker 中查看資料或執行操作,但可以登入。
測試使用者驗證機制
按一下「測試 Google 驗證」,使用目前的設定,並嘗試在新視窗中驗證目前的瀏覽器。這項操作不會儲存目前設定,也不會將設定套用至 Looker 執行個體。
如果未登入 Google,系統會提示你登入,並要求你同意使用 Google 帳戶資訊。這項流程會使用您在 Google 端設定中使用的自訂同意畫面設定。
成功後,系統會顯示「User Info」部分,其中包含您的姓名、電子郵件和網域,以及系統為您帳戶偵測到的任何鏡像 Google 群組。如果出現「User Info」部分,表示 Looker 會成功驗證這位使用者。
如果失敗,系統會顯示錯誤說明。常見問題包括:
- 複製的用戶端 ID 或用戶端密鑰有誤。請務必仔細複製並完整貼上。
- 使用者不在網域內。如果看到「個人資訊」部分,但沒有「User Info」,可能是因為使用者不在您指定的網域中。這表示該使用者已正確向 Google 驗證身分,但並未使用您選擇允許進入 Looker 執行個體的 Google 帳戶。
- Looker 執行個體的 Looker 網址或重新導向網址未在 Google 中正確設定。
- 如果 Google 群組無法載入,請確認 Google Cloud 專案已啟用 Cloud Identity API、已新增
https://www.googleapis.com/auth/cloud-identity.groups.readonly範圍,且使用者具備 Google 群組的VIEW_MEMBERSHIP權限。
如要儲存並套用變更,請選取「我已確認上述設定,並要全域套用」,按一下「更新」。
使用 API 設定 Google 驗證
管理員可以使用 Looker API 中的 google_config 端點,透過程式讀取及更新 Google 驗證設定和群組角色對應。詳情請參閱 Looker API 參考資料。
提示
如要測試完整的驗證週期,可以登出 Google,然後在嘗試登入 Looker 時,查看 Google 是否會提示您再次登入。
在 Google 中,您可以按一下個人下拉式選單 (位於 Google Workspace 頁面右上方的電子郵件地址旁) 中的「帳戶」,管理個人帳戶。
在該管理頁面中,有一個「安全性」分頁,其中包含「帳戶權限」部分。依序點選「應用程式和網站」「查看全部」,即可查看及管理已授予權限的服務和應用程式。
點選您為登入而授予的 Looker 權限,即可查看使用者在您先前自訂的同意畫面中看到的詳細資料。您也可以點選「撤銷存取權」,這樣下次登入 Looker (或測試授權) 時,系統就會再次顯示同意畫面。您可以透過這項工作流程自訂同意畫面,並查看使用者會看到的內容。
疑難排解
如要排解驗證問題,請查看系統活動中的「使用者活動」資訊主頁。這個資訊主頁的圖塊會顯示最近登入失敗的記錄,包括使用的驗證方式、傳回的錯誤訊息,以及嘗試登入的時間。
如果使用者無法登入,請先確認其 Google 帳戶中同時有名字和姓氏。如果使用者從 Google 帳戶刪除名字或姓氏,Looker 可能無法透過 Google OAuth 驗證使用者。
如果使用者登入失敗,且 Looker 顯示
User not in the authorized domain等錯誤,請檢查 JSON 回應的hd欄位。如果hd欄位包含網域,請確認該網域已註冊到您的 Google Workspace 帳戶。如果「hd」欄位空白,請使用非受管使用者轉移工具,邀請使用者將帳戶轉換為貴機構網域中的代管帳戶。如果使用者登入失敗,但 Looker 未顯示錯誤訊息,可能是因為使用者編輯了 Google Workspace 帳戶名稱,並刪除名字或姓氏。在這種情況下,Google Workspace 帳戶名稱在管理控制台中可能仍會顯示完整名稱,但不會顯示使用者的編輯內容。為避免發生這個問題,Google Workspace 管理員可以停用「允許使用者自訂這項設定」選項。
如果 Google 驗證傳回 401
deleted_client錯誤,表示託管 Looker OAuth 用戶端的 Google Cloud 專案已刪除或停用。即使 Google Cloud 專案隨後還原,OAuth 用戶端仍可能持續發生deleted_client錯誤,導致所有使用者完全無法登入。如果 Google 驗證是唯一啟用的驗證方式,管理員也無法存取。為避免 OAuth 用戶端遭刪除或故障時,完全無法登入,請務必啟用「管理員備用登入方式」設定。這項設定可確保管理員有備用登入方式,可存取 Looker 執行個體並更新驗證設定。
啟用 Google 驗證時,啟用電子郵件登入功能
新的 Google 帳戶會自動取得 Looker 存取權,因此您不需要新增 Google 網域中的使用者。
如要新增電子郵件地址不在 Google 網域中的使用者,請按照下列步驟操作:
- 在 Google Auth 頁面,啟用「管理員和指定使用者的備用登入方式」選項
- 建立或修改現有使用者角色,新增「
login_special_email」權限 - 在使用者面板 (/admin/users/new) 中,前往「新增使用者」。
- 新增要加入的電子郵件地址,以及這些使用者應具備的角色,其中必須包含具備
login_special_email權限的角色 - 這些使用者現在可以使用 https://mycompany.looker.com/login/email (隱藏網址) 登入
停用已啟用的 Google 驗證
Looker 執行個體啟用 Google 驗證後,如要停用,請考量下列事項:
- 在新增 Google 驗證之前建立的使用者,如果已設定一般電子郵件登入和密碼,仍可正常運作。
- 在新增 Google Authenticator之後建立的使用者將無法再登入。雖然帳戶仍然存在,但他們無法存取,帳戶實際上已成為孤立帳戶。
因此建議您避開這條路線。如果必須採取這種做法,或許可以使用 Looker API 修正孤立帳戶。如需進一步指引,請與 Looker 支援團隊聯絡。