Google OAuth 會與 Identity and Access Management (IAM) 搭配使用,驗證 Looker (Google Cloud Core) 使用者。
使用 OAuth 驗證時,Looker (Google Cloud Core) 會透過 OAuth 2.0 通訊協定驗證使用者。您可以使用任何 OAuth 2.0 用戶端。舉例來說,本頁面會逐步說明如何使用 Google Cloud 控制台建立 OAuth 憑證,為 Looker (Google Cloud Core) 執行個體設定驗證。
如果主要驗證方式是其他方法,Google OAuth 預設會是備用驗證方式。
透過 OAuth 和 IAM 進行驗證和授權
搭配 OAuth 使用時,Looker (Google Cloud Core) IAM 角色會為特定 Google Cloud 專案中的所有 Looker (Google Cloud Core) 執行個體,提供下列層級的驗證和授權。根據您希望主體擁有的存取權等級,指派下列其中一個 IAM 角色給各主體:
| IAM 角色 | 驗證 | 授權 |
|---|---|---|
Looker 執行個體使用者 (roles/looker.instanceUser) |
可登入 Looker (Google Cloud Core) 執行個體 |
首次登入 Looker (Google Cloud Core) 時,系統會授予「新使用者的角色」中設定的預設 Looker 角色。 無法在 Google Cloud 控制台存取 Looker (Google Cloud Core) 資源。 |
Looker 檢視者 (roles/looker.viewer) |
可登入 Looker (Google Cloud Core) 執行個體 | 首次登入 Looker (Google Cloud Core) 時,系統會授予「新使用者的角色」中設定的預設 Looker 角色。 在 Google Cloud 控制台中查看 Looker (Google Cloud Core) 執行個體清單和執行個體詳細資料 |
Looker 管理員 (roles/looker.admin) |
可登入 Looker (Google Cloud Core) 執行個體 | 首次登入 Looker (Google Cloud Core) 時,系統會授予「新使用者的角色」中設定的預設 Looker 角色。 每次使用主要 OAuth 或備用 OAuth 登入 Looker (Google Cloud Core),以及每次使用者呼叫 Looker API 時,系統都會驗證這個角色 (或包含 「透過 IAM 指派的管理員」角色包含「管理員」 Looker 角色的所有權限和功能。這個角色無法在 Looker (Google Cloud Core) 執行個體中移除或重新指派。如要移除「透過 IAM 取得管理員權限」角色,請將主體重新指派給 Looker 管理員 ( |
此外,如果使用者帳戶具備專案的 owner 角色,就能登入及管理該專案中的任何 Looker (Google Cloud Core) 執行個體。這些使用者將獲得管理員 Looker 角色。
如果預先定義的角色無法提供您需要的權限組合,您也可以建立自己的自訂角色。
首次登入 Looker (Google Cloud Core) 執行個體時,系統會建立 Looker (Google Cloud Core) 帳戶。
Looker 管理員角色與透過 IAM 指派的 Looker 管理員角色
Looker (Google Cloud Core) 執行個體中有兩個角色使用管理員權限集,並在執行個體中授予相同的管理員權限。下表摘要列出這兩種角色的相同與相異處。
| 屬性 | 管理員 Looker 角色 | 透過 IAM Looker 角色指派的管理員 |
|---|---|---|
| 授權來源 | 由 Looker (Google Cloud Core) 執行個體中的其他管理員授予 | 直接連結至 Looker 管理員 IAM 角色 |
| 是否可在 Looker (Google Cloud Core) 執行個體中新增或移除? | 是 | 否 |
| 是否可透過 IAM 新增或移除? | 否 | 是 |
| Looker (Google Cloud Core) 權限 | 所有權限 | 所有權限 |
| Google Cloud 控制台中的權限 | 無 | 具備所有 Looker (Google Cloud Core) 資源的完整存取權 |
| 角色驗證 | 持續在 Looker (Google Cloud Core) 執行個體中 | 每次登入 Looker (Google Cloud Core) 執行個體,以及每次呼叫 Looker API 時。使用 IAM 變更角色後,可能需要幾分鐘才會生效。 |
| 範圍 | 個別 Looker (Google Cloud Core) 執行個體 | Google Cloud 專案中的所有 Looker (Google Cloud Core) 執行個體 |
使用者可以同時具備「管理員」和「透過 IAM 授予的管理員」Looker 角色。因此,如要撤銷管理員權限,請務必移除 IAM 角色和 Looker (Google Cloud Core) 執行個體中的「管理員」角色。
在 Looker (Google Cloud Core) 執行個體中設定 OAuth
在 Looker (Google Cloud Core) 執行個體中,您可以在「管理」選單的「驗證」部分,透過「Google 驗證」頁面設定部分 Google OAuth 設定。您必須具備管理員 Looker 角色。
合併使用者帳戶
在「Merge Users Using」欄位中,指定將首次 OAuth 登入作業與現有使用者帳戶合併的方法。使用者首次透過 OAuth 登入時,這個選項會尋找電子郵件地址相符的帳戶,並將使用者連結至現有帳戶。如果使用者沒有帳戶,系統會建立新的使用者帳戶。
您可以合併下列系統的使用者:
- SAML
- OIDC
如果您有多個系統,可以在這個欄位中指定多個系統來合併。Looker (Google Cloud Core) 會按照指定順序,從列出的系統中查詢使用者。舉例來說,如果您先使用 OIDC 建立一些使用者,然後再使用 SAML,當使用者首次嘗試透過 OAuth 登入時,Looker (Google Cloud Core) 會先使用 OIDC 尋找使用者,如果找不到相符的使用者,就會使用 SAML 尋找使用者。
如果不想讓 Looker (Google Cloud Core) 合併使用者,請將這個欄位留空。
在 OIDC 識別資訊提供者之間遷移
從一個 OIDC 識別資訊提供者遷移至另一個 (例如從 PingFederate 轉換至 Okta) 時,不適用「合併使用者帳戶」一節所述的帳戶合併選項。只有在不同驗證類型之間轉換時 (例如從 SAML 轉換為 OIDC),才需要合併。
Looker (Google Cloud Core) 會使用 OIDC 酬載中的 sub 聲明,填入 oidc_user_id 使用者屬性,藉此識別不重複的 OIDC 使用者帳戶。為避免 Looker (Google Cloud Core) 在 OIDC 遷移期間產生重複的使用者帳戶,請設定新的 OIDC 身分識別提供者,確保 OIDC 酬載中傳送的 sub 聲明與先前提供者建立的 oidc_user_id 相符 (例如,sub 聲明應包含使用者的電子郵件地址,而非新產生的 UUID)。
如果無法在新身分識別資訊提供者上維持相同的 sub 聲明,系統就會建立新的使用者帳戶。在這種情況下,您可以使用 Looker API 擷取常用內容,並將排程從舊使用者帳戶重新指派給新使用者帳戶,然後再刪除舊帳戶。
同步處理 Google 群組
如果您有受管理的 Google 群組,Looker (Google Cloud Core) 可以建立 Looker 群組,反映 Google 群組的成員資格。也就是說,您不必直接在 Looker (Google Cloud Core) 設定使用者,而是可以透過管理 Google 群組成員資格,控管使用者存取權。此外,Looker 群組可用於為群組成員指派角色、設定內容存取權控管、控管功能和資料存取權,以及指派使用者屬性。
使用者必須具備 VIEW_MEMBERSHIP 權限,才能查看所屬 Google 群組的成員,群組鏡像功能也才能正常運作。如要在 Google 網路論壇 UI 設定中授予這項權限,請將「可以檢視成員的使用者」欄位設為「群組成員」。
系統會在使用者首次登入 Looker (Google Cloud Core) 執行個體時,將對應的 Looker 群組 (以及任何相關聯的角色和存取權) 套用至新使用者。這些群組不會套用至既有使用者。如果在使用者首次登入後,從 Looker (Google Cloud Core) 的使用者帳戶中移除這些群組,就不會再次套用。
透過 IAM 指派的管理員 Looker 角色會覆寫群組鏡像。在 IAM 系統中具備 Looker 管理員角色的使用者,會自動獲得這個角色。在 IAM 系統中具備 Looker 管理員角色的使用者,無論屬於哪個群組,都會自動獲派 Looker (Google Cloud Core) 的透過 IAM 指派的管理員角色。此外,系統會透過標準鏡像程序,將這些使用者指派至鏡像群組,並授予角色和存取權。
建議您只為 Looker (Google Cloud Core) 的主要驗證方式啟用群組鏡像。如果您使用 OAuth 做為備用驗證方式,請勿為 OAuth 啟用群組鏡像功能。如果同時為主要和次要驗證方法啟用群組鏡像功能,系統會出現下列行為:
- 如果使用者已合併身分,無論實際登入時使用的驗證方式為何,群組鏡像都會比對主要驗證方式。
- 如果使用者沒有合併的身分,群組鏡像功能會比對登入時使用的驗證方式。
啟用鏡像群組的步驟
如要啟用群組鏡像功能,請完成下列步驟:
- 在 Google Cloud 控制台中,前往含有 OAuth 用戶端的 Google Cloud 專案,啟用 Cloud Identity API。您必須具備服務使用情形管理員 (
roles/serviceusage.serviceUsageAdmin) IAM 角色,才能啟用 API。 在 Google Cloud 控制台中,更新 OAuth 用戶端的同意畫面,新增
https://www.googleapis.com/auth/cloud-identity.groups.readonly範圍。您必須具備clientauthconfig.clients.updateIAM 權限,才能新增範圍。如要更新同意畫面,請完成下列步驟:- 前往 OAuth 用戶端。
- 選擇「資料存取權」頁面。
- 按一下「新增或移除範圍」按鈕。「更新所選範圍」面板隨即開啟。
- 找到
https://www.googleapis.com/auth/cloud-identity.groups.readonly範圍,然後勾選旁邊的核取方塊。 - 按一下「更新」按鈕來新增範圍。
關閉面板,然後在「資料存取權」頁面點選「儲存」,即可儲存範圍。
在 Looker (Google Cloud Core) 執行個體中,前往「Google Authentication」(Google 驗證) 頁面,然後啟用「Mirror Google Groups」(鏡像 Google 群組) 切換按鈕。這項切換按鈕預設為停用。填寫下列欄位:
- 在「Looker Group Name」(Looker 群組名稱) 欄位中,新增 Looker 群組的名稱。這個名稱會顯示在 Looker (Google Cloud Core) 的「群組」頁面。
- 在「Google 群組 ID」欄位中,輸入要鏡像的 Google 群組名稱或電子郵件地址。
- 在「角色」欄位中,輸入要指派給該群組成員的 Looker 角色。
Looker (Google Cloud Core) 會為新增至「Google Authentication」(Google 驗證) 頁面的每個 Google 群組建立一個 Looker 群組。您可以在 Looker (Google Cloud Core) 的「群組」頁面查看這些 Looker 群組。
編輯鏡像群組
變更 Google 群組成員資格後,系統會自動將這些變更套用至對應的 Looker 群組成員資格,並在每位使用者下次登入時進行驗證。
如果您在「Google 驗證」頁面,編輯指派給群組的「自訂名稱」或「角色」欄位,這會變更鏡像 Looker 群組名稱在 Looker (Google Cloud Core)「群組」頁面的顯示方式,或指派給群組的角色,但不會變更群組成員。
如果您將「Google 驗證」頁面「Google 群組 ID」欄位中的名稱或電子郵件地址變更為新的 Google 群組 ID,則鏡像 Looker 群組的成員會變更為新 Google 群組的成員,但會保留「Google 驗證」頁面中定義的群組名稱和角色。
對鏡像群組所做的任何編輯,都會在該群組的使用者下次登入 Looker (Google Cloud Core) 時套用。
停用鏡像群組
如要停止在 Looker (Google Cloud Core) 中鏡像 Google 群組,請前往 Looker (Google Cloud Core) 執行個體的「Google Authentication」頁面,關閉「Mirror Google Groups」切換鈕。停用切換鈕會產生下列行為:
- 如果 Google 群組沒有任何使用者,系統會立即刪除該群組。
- 任何「含有」使用者的鏡像 Google 群組都會標示為孤立群組。如果群組使用者在 31 天內未登入,系統就會刪除該群組。無法再從孤立的 Google 群組中新增或移除使用者。
進階角色管理
如果啟用「Mirror Google Groups」切換鈕,「Google Authentication」頁面會顯示「Advanced Role Management」設定。這個部分的選項會決定 Looker 管理員在設定從 Google 鏡像處理的 Looker 群組和使用者時,可享有多大的彈性。
如要讓 Looker 群組和使用者設定與 Google 群組設定完全一致,請開啟所有「進階角色管理」選項。啟用所有選項後,Looker 管理員就無法修改同步處理的群組成員資格,只能透過 Google 群組指派使用者角色。
如要更靈活地自訂 Looker (Google Cloud Core) 中的群組,請關閉這些選項。Looker (Google Cloud Core) 群組仍會反映 Google 群組設定,但您可以在 Looker (Google Cloud Core) 中執行其他群組和使用者管理作業,例如將 Google 使用者新增至 Looker 群組,或直接將 Looker 角色指派給 Google 使用者。
如果是 Looker (Google Cloud Core) 執行個體,這些選項預設為關閉。
「Advanced Role Management」(進階角色管理) 部分包含下列選項:
防止個別 Google 使用者取得直接角色:啟用這個選項後,Looker 管理員就無法直接將 Looker 角色指派給 Google 使用者。Google 使用者只能透過群組成員身分取得角色。如果 Google 使用者可以加入內建 (非同步處理) 的 Looker 群組,則仍可從同步處理的 Google 群組和內建的 Looker 群組繼承角色。先前直接獲派角色的 Google 使用者,下次登入時會移除這些角色。
如果關閉這個選項,Looker 管理員可以直接在 Looker (Google Cloud Core) 執行個體中,將 Looker 角色指派給 Google 使用者。
禁止非 Google 群組直接取得成員資格:這個選項可防止 Looker 管理員將鏡像群組成員直接新增至內建 Looker 群組,而這些群組不屬於「Google 驗證」頁面上的鏡像群組設定。
如果選取這個選項,先前指派至內建 Looker 群組的 Google 使用者,在下次登入時會從這些群組中移除。
如果取消勾選這個選項,Looker 管理員可以直接將 Google 使用者新增至內建 Looker 群組。
禁止從非 Google 群組繼承角色:這個選項可防止鏡像群組成員從內建的 Looker 群組繼承角色。如果允許同步處理的 Google 群組成為內建 Looker 群組的成員,Google 使用者可能會保留任何內建 Looker 群組的成員資格。先前從內建 Looker 群組繼承角色的 Google 使用者,下次登入時會失去這些角色。
如果關閉這個選項,系統會將指派給內建 Looker 群組的角色,一併指派給新增為內建 Looker 群組成員的鏡像群組或 Google 使用者。
需要角色授權:如果開啟這個選項,Google 使用者必須獲派 Looker 角色,如果 Google 使用者未獲指派角色,就完全無法登入 Looker (Google Cloud Core)。
如果關閉這個選項,Google 使用者即使未獲派角色,也能驗證 Looker (Google Cloud Core)。如果使用者未獲派任何角色,就無法在 Looker (Google Cloud Core) 查看任何資料或執行任何動作,但可以登入 Looker (Google Cloud Core)。
設定預設 Looker 角色
如果停用「鏡像 Google 群組」切換鈕,「Google 驗證」頁面會顯示「新使用者的角色」設定。這項設定可讓您設定預設的 Looker 角色,並在使用者帳戶首次登入 Looker (Google Cloud Core) 執行個體時,將該角色授予具有 Looker 執行個體使用者 (roles/looker.instanceUser) IAM 角色或 Looker 檢視者 (roles/looker.viewer) IAM 角色的使用者帳戶。如要設定預設角色,請按照下列步驟操作:
- 在「管理」選單的「驗證」部分,前往「Google 驗證」頁面。
- 在「新使用者的角色」設定中,選取要預設授予所有新使用者的角色。這項設定包含 Looker (Google Cloud Core) 執行個體中所有預設角色和自訂角色的清單。
管理員角色不得為預設角色。使用者帳戶若具備 Looker 管理員 (roles/looker.admin) IAM 角色,首次登入時除了會獲得「新使用者角色」設定中選取的角色,還會獲得「透過 IAM 授予管理員」Looker 角色。
自訂「新使用者的角色」設定後,如果啟用「鏡像 Google 網路論壇」切換鈕,使用者下次登入時,系統會移除透過「新使用者的角色」設定指派的角色,並改為透過「鏡像 Google 網路論壇」設定指派的角色。
測試使用者驗證機制
按一下「Test Google Authentication」按鈕,測試設定。測試會重新導向至 Google 的 OAuth 伺服器,並開啟瀏覽器分頁。這個分頁會顯示下列資訊:
- Looker (Google Cloud Core) 是否能與伺服器通訊並進行驗證。
- Looker (Google Cloud Core) 從伺服器取得的使用者資訊。您必須驗證伺服器是否傳回正確結果。
- 追蹤記錄,顯示資訊的搜尋方式。如果資訊有誤,請使用追蹤記錄排解問題。如需其他資訊,請參閱原始 XML 伺服器檔案。
- 收到的 ID 權杖解碼版和原始版。這些資訊可用於確認使用者詳細資料和 Google 設定。
儲存並套用設定
輸入資訊並通過所有測試後,請選取「我已確認上述設定,並要全域套用」核取方塊,然後按一下「提交」儲存。
將使用者新增至 Looker (Google Cloud Core) 執行個體
建立 Looker (Google Cloud Core) 執行個體後,即可透過 IAM 新增使用者。如要新增使用者,請按照下列步驟操作:
- 請確認您具備「專案 IAM 管理員」角色,或其他可管理 IAM 存取權的角色。
前往 Looker (Google Cloud Core) 執行個體所在的 Google Cloud 控制台專案。
前往 Google Cloud 控制台的「IAM & Admin」>「IAM」部分。
選取「授予存取權」。
在「新增主體」部分,新增下列其中一或多種成員類型:
- Google 帳戶電子郵件地址
- 一個 Google 網路論壇
- Google Workspace 網域
在「指派角色」部分,選取其中一個預先定義的 Looker (Google Cloud Core) IAM 角色,或您新增的自訂角色。
按一下 [儲存]。
通知新的 Looker (Google Cloud Core) 使用者,他們已獲得存取權,並提供執行個體的網址。接著,他們就能登入執行個體,系統也會建立帳戶。系統不會傳送自動化通訊。
如果變更使用者的 IAM 角色,該角色會在幾分鐘內套用至 Looker (Google Cloud Core) 執行個體。如果使用者已有 Looker 使用者帳戶,該帳戶的 Looker 角色不會變更。
所有使用者都必須透過先前所述的 IAM 步驟佈建,但有一個例外:您可以在 Looker (Google Cloud Core) 執行個體中建立僅限 Looker API 的服務帳戶。
使用 OAuth 登入 Looker (Google Cloud Core)
使用者首次登入時,系統會要求他們使用 Google 帳戶登入。每位使用者都應使用 Looker 管理員在「Add principals」(新增主體) 欄位中列出的帳戶,以便授予存取權。使用者會看到在建立 OAuth 用戶端時設定的 OAuth 同意畫面。使用者同意授權畫面後,系統就會在 Looker (Google Cloud Core) 執行個體中建立帳戶,並登入帳戶。
之後,使用者會自動登入 Looker (Google Cloud Core),除非授權到期或遭使用者撤銷。在這些情況下,使用者會再次看到 OAuth 同意畫面,並要求同意授權。
部分使用者可能會獲派 API 憑證,用於擷取 API 存取權杖。如果這些使用者的授權到期或遭到撤銷,他們的 API 憑證就會失效。現有的 API 存取權杖也會停止運作。如要解決這個問題,使用者必須重新授權憑證,方法是針對每個受影響的 Looker (Google Cloud Core) 執行個體,重新登入 Looker (Google Cloud Core) UI。或者,使用僅限 API 的服務帳戶,有助於避免 API 存取權杖的憑證授權失敗。
移除 Looker (Google Cloud Core) 的 OAuth 存取權
如果您的角色可管理 IAM 存取權,只要撤銷授予存取權的 IAM 角色,即可移除 Looker (Google Cloud Core) 執行個體的存取權。移除使用者帳戶的 IAM 角色後,變更會在幾分鐘內傳播至 Looker (Google Cloud Core) 執行個體。使用者將無法再向執行個體進行驗證。不過,使用者帳戶在「使用者」頁面上仍會顯示為有效。如要從「使用者」頁面移除使用者帳戶,請在 Looker (Google Cloud Core) 執行個體中刪除使用者。
使用 OAuth 做為備用驗證方式
如果您使用其他驗證方式 (例如員工身分聯盟、SAML 或 OpenID Connect (OIDC)),可以將 Google OAuth 設為次要或備用驗證方式。這項設定可確保使用者和管理員在無法存取主要身分識別資訊提供者時,仍可透過 Google 帳戶進行驗證。
將 OAuth 設為 SAML 或 OIDC 的備用驗證方式
如果主要驗證方法是 SAML 或 OIDC,OAuth 就是備用驗證方式。
如要將 OAuth 設為備用方法,請授予每位 Looker (Google Cloud Core) 使用者適當的 IAM 角色,以便登入執行個體。
將 OAuth 設為員工身分聯盟的次要方法
您可以選擇將 OAuth 設為員工身分聯盟的次要驗證方式。如要將 OAuth 設為次要驗證方式,請編輯執行個體,啟用「啟用次要 OAuth」設定。
使用 OAuth 登入
設定備用方法後,使用者可以按照下列步驟存取:
- 在登入頁面選取「使用 Google 帳戶驗證」。
- 系統會顯示對話方塊,確認 Google 驗證。在對話方塊中選取「確認」。
使用者就能透過 Google 帳戶登入。首次使用 OAuth 登入時,系統會提示他們接受建立執行個體時設定的 OAuth 同意畫面。
後續步驟
- 將 Looker (Google Cloud Core) 連線至資料庫
- 設定 Looker (Google Cloud Core) 執行個體
- Looker (Google Cloud Core) 管理員設定
- 透過 Google Cloud 控制台管理 Looker (Google Cloud Core) 執行個體