管理員設定 - OpenID Connect 驗證

公司會使用不同的 OpenID Connect 提供者 (OP) 與 OpenID Connect 協調 (例如 Okta 或 OneLogin)。下列設定說明和 Looker 使用者介面中使用的術語,可能與 OP 使用的術語不完全相同。

在「管理」選單的「驗證」部分中,您可以透過「OpenID Connect」頁面,設定 Looker 使用 OpenID Connect 通訊協定驗證使用者。本頁面說明該程序,並提供將 OpenID Connect 群組連結至 Looker 角色和權限的操作說明。

需求條件

只有在符合下列條件時,Looker 才會在「管理」選單的「驗證」部分顯示「OpenID Connect」頁面:

如果符合上述條件,但您沒有看到「OpenID Connect」頁面,請提出支援要求,在執行個體中啟用 OpenID Connect。

規劃注意事項

  • 建議您使用「指定使用者的其他登入方式」選項,讓 Looker 管理員不必透過 OpenID Connect 就能存取 Looker。
  • 除非您已設定其他帳戶登入方式,否則請勿在使用 OpenID Connect 登入 Looker 時停用 OpenID Connect 驗證機制。否則,你可能會無法使用應用程式
  • Looker 可以使用電子郵件地址,將現有帳戶遷移至 OpenID Connect,這些電子郵件地址來自目前的電子郵件和密碼設定、LDAP、SAML 或 Google 驗證。您可以在設定程序中設定這項資訊。
  • Looker 僅支援使用 OpenID Connect 的授權碼流程進行 OpenID Connect 驗證。不支援其他程式碼流程。
  • OpenID Connect 規格包含選用的探索機制。Looker 不支援這項機制,因此您必須在「OpenID Connect 驗證設定」部分提供明確的網址,如「設定 OpenID Connect 驗證設定」所述。

設定 OpenID Connect

如要設定 Looker 和 OpenID Connect 之間的連線,請執行下列工作:

  1. 將 Looker 網址提供給 OpenID Connect 供應器 (OP)
  2. 向 OP 取得必要資訊

在 OP 上設定 Looker

OpenID Connect 供應者 (OP) 需要 Looker 執行個體的網址。您的 OP 可能會將其稱為「重新導向 URI」或「登入重新導向 URI」,或其他名稱。在 OP 的網站上,提供你通常在瀏覽器中存取 Looker 執行個體的網址,後面加上 /openidconnect。例如:https://instance_name.looker.com/openidconnect

取得 OP 的資訊

如要設定 Looker 的 OpenID Connect 驗證,您需要從 OP 取得下列資訊:

  • 用戶端 ID 和用戶端密碼。您設定重新導向 URI 時,通常會由原始發布者在其網站上提供這些值。
  • 在 OpenID Connect 驗證程序期間,Looker 會連線至三個不同的端點:驗證端點、ID 符記端點和使用者資訊端點。您需要 OP 為每個端點使用的網址。
  • 每個 OP 都會在稱為「範圍」的集合中提供使用者資訊。您必須知道 OP 使用的範圍名稱。OpenID Connect 需要 openid 範圍,但您的 OP 可能會包含其他範圍,例如 emailprofilegroups
  • 在 OpenID Connect 中,儲存使用者資料的屬性稱為「憑證附加資訊」。您必須知道 OP 傳遞給 Looker 的宣告,以便在 Looker 例項上提供所需的使用者資訊。Looker 需要包含電子郵件和姓名資訊的權利聲明,但如果您有任何其他使用者屬性 (例如時區或部門),Looker 也需要識別哪些權利聲明包含該資訊。您可以將權利要求納入使用者資訊端點或 ID 權杖端點的回應中。Looker 可將兩個端點傳回的宣稱對應至 Looker 使用者屬性。

許多 OP 會以探索文件的形式提供 OpenID Connect 設定相關資訊,讓您可以收集設定 Looker 的 OpenID Connect 所需的部分或全部資訊。如果您無法存取發現文件,請向 OP 或內部驗證團隊取得必要資訊。

以下是探索文件範例:

{
  "issuer": "https://accounts.google.com",
  "authorization_endpoint": "https://accounts.google.com/o/oauth2/v2/auth",
  "token_endpoint": "https://www.googleapis.com/oauth2/v4/token",
  "userinfo_endpoint": "https://www.googleapis.com/oauth2/v3/userinfo",
  "revocation_endpoint": "https://accounts.google.com/o/oauth2/revoke",
  "jwks_uri": "https://www.googleapis.com/oauth2/v3/certs",
  "response_types_supported": [
    "code",
    "token",
    "id_token",
    "code token"
    "code id_token",
    "token id_token",
    "code token id_token",
    "none"
  ],
  "subject_types_supported": [
    "public"
  ],
  "id_token_signing_alg_values_supported": [
    "RS256"
  ],
  "scopes_supported": [
    "openid",
    "email",
    "profile"
  ],
  "token_endpoint_auth_methods_supported": [
    "client_secret_post",
    "client_secret_basic"
  ],
  "claims_supported": [
    "aud",
    "email",
    "email_verified",
    "exp",
    "family_name",
    "given_name",
    "iat",
    "iss",
    "locale",
    "name",
    "picture",
    "sub"
  ],

設定 OpenID Connect 驗證設定

請使用從 OP 的探索文件、OP 或內部驗證團隊取得的設定資訊,在下列欄位中輸入連線設定:

識別碼:Looker 執行個體專屬的用戶端 ID。這項資訊應由 OP 提供。

密鑰:專屬於 Looker 執行個體的用戶端密鑰。這項資訊應由 OP 提供。

Issuer:用於識別 OP 的安全網址。

目標對象:向 OP 指出客戶身分的 ID。通常與ID 值相同,但也可能不同。

授權網址:驗證序列開始時的 OP 網址。在探索文件中通常稱為 authorization_endpoint

權杖網址:Looker 經過授權後,用於擷取 OAuth 權杖的網址。在探索文件中通常稱為 token_endpoint

使用者資訊網址:Looker 會擷取詳細使用者資訊的網址。在探索文件中通常稱為 userinfo_endpoint

範圍:以半形逗號分隔的範圍清單,由 OP 用於向 Looker 提供使用者資訊。您必須加入 openid 權限,以及包含 Looker 所需資訊的任何權限,包括電子郵件地址、使用者名稱,以及在 Looker 執行個體上設定的任何使用者屬性。

設定使用者屬性

在本節中,您將將 OP 的宣告對應至 Looker 的使用者屬性

在「User Attribute Settings」部分,輸入 OP 的權利要求名稱,其中包含每個欄位的對應資訊。這會告訴 Looker 如何在登入時將這些憑證對應至 Looker 使用者資訊。Looker 對聲明的建構方式沒有特別要求,只要你在此輸入的聲明資訊與 OP 中定義的聲明方式相符即可。

標準版權聲明

Looker 需要使用者名稱和電子郵件資訊進行驗證。請在這個部分輸入 OP 的對應索賠資訊:

電子郵件聲明:OP 用於使用者電子郵件地址的聲明,例如 email

First Name Claim:OP 用於使用者名字的聲明,例如 given_name

姓氏宣告:OP 用於使用者姓氏的宣告,例如 family_name

請注意,部分 OP 會使用單一聲明來表示姓名,而非分開顯示姓氏和名字。如果您的 OP 屬於這種情況,請在「First Name Claim」和「Last Name Claim」欄位中,輸入儲存名稱的聲明。對於每位使用者,Looker 會將內容中前一個空格前的部分設為「名字」,後面部分則設為「姓氏」。

屬性配對

您可以選擇使用 OpenID Connect 權杖中的資料,在使用者登入時自動填入 Looker 使用者屬性中的值。舉例來說,如果您已設定 OpenID Connect,以便建立使用者專屬的資料庫連線,就可以將 OpenID Connect 權杖與 Looker 使用者屬性配對,在 Looker 中建立使用者專屬資料庫連線

如要將聲明與對應的 Looker 使用者屬性配對,請按照下列步驟操作:

  1. 在「Claim」欄位中輸入 OP 識別的宣稱,並在「Looker User Attributes」欄位中輸入要與其配對的 Looker 使用者屬性。
  2. 如要禁止任何使用者帳戶登入,但該帳戶在該宣告欄位中缺少值,請勾選「必要」
  3. 按一下「+」,然後重複執行這些步驟,即可新增更多聲明和屬性組合。

請注意,部分 OP 可能會有「巢狀」宣稱。例如:

"zoneinfo": "America/Los Angeles",
"phone_number": "555-1235",
"address": {
  "street_address": "1234 Main Street",
  "locality": "Anyton",
  "region": "IL",
  "postal_code": "60609",
  "country": "US"
},

在上述範例中,locality 權杖會嵌套在 address 權杖中。針對巢狀宣告,請指定父項和巢狀宣告,並以斜線 ( /) 字元分隔。如要為範例中的 locality 權杖設定 Looker,請輸入 address/locality

群組和角色

您可以選擇讓 Looker 建立群組,以鏡像外部管理的 OpenID Connect 群組,然後根據鏡像 OpenID Connect 群組,將 Looker 角色指派給使用者。變更 OpenID Connect 群組成員資格後,這些變更會自動套用至 Looker 的群組設定

鏡像 OpenID Connect 群組可讓您使用外部定義的 OpenID Connect 目錄來管理 Looker 群組和使用者。這樣一來,您就能集中管理多個軟體即服務 (SaaS) 工具 (例如 Looker) 的群組成員資格。

如果您開啟「Mirror OpenID Connect Groups」,Looker 會為系統中導入的每個 OpenID Connect 群組建立一個 Looker 群組。您可以在 Looker 的「管理」部分,查看「群組」頁面。群組可用於為群組成員指派角色、設定內容存取權控管,以及指派使用者屬性

預設群組和角色

根據預設,「鏡像 OpenID Connect 群組」切換鈕會關閉。在這種情況下,您可以為新的 OpenID Connect 使用者設定預設群組。在「新使用者群組」和「新使用者角色」欄位中,輸入您要指派給新 Looker 使用者,以便他們首次登入 Looker 時的 Looker 群組或角色名稱:

這些群組和角色會套用至首次登入的使用者,不會套用至既有使用者。如果在首次登入後移除這些群組和角色,就不會再次套用。

啟用鏡像 OpenID Connect 群組

如果您使用的是 Looker (Google Cloud Core) 執行個體,建議您只為主要驗證方法啟用群組鏡像功能,不要為備用 OAuth 驗證啟用群組鏡像功能。如果您為主要和次要驗證方法都啟用群組鏡像,系統會發生以下行為:

  • 如果使用者合併了身分,群組鏡像會比對主要驗證方法,無論登入時實際使用的驗證方法為何。
  • 如果使用者沒有合併身分,群組鏡像會比對用於登入的驗證方法。

啟用鏡像群組的步驟

如要在 Looker 中鏡像 OpenID Connect 群組,請開啟「Mirror OpenID Connect Groups」切換鈕:

群組憑證:輸入 OP 用於儲存群組名稱的憑證。Looker 會為每個透過群組憑證引入系統的 OpenID Connect 群組建立一個 Looker 群組。您可以在 Looker 的「管理」部分的「群組」頁面中查看這些 Looker 群組。群組可用於設定內容存取權控管,以及指派使用者屬性

偏好的群組名稱 / 角色 / OpenID Connect 群組名稱:您可以透過這組欄位,指派自訂群組名稱和一或多個角色,並指派給 Looker 中的對應 OpenID Connect 群組:

  1. 在「OpenID Connect 群組名稱」欄位中輸入 OpenID Connect 群組名稱。系統會將 OpenID Connect 群組中的 OpenID Connect 使用者新增至 Looker 中的鏡像群組。

  2. 在「Custom Name」欄位中輸入鏡像群組的自訂名稱。這個名稱會顯示在 Looker 的「管理」部分的「群組」頁面中。

  3. 在「自訂名稱」欄位右側的欄位中,選取一或多個 Looker 角色,這些角色會指派給群組中的每位使用者。

  4. 按一下 + 即可新增更多欄位組合,設定其他鏡像群組。如果您已設定多個群組,且想要移除某個群組的設定,請按一下該群組的欄位組旁邊的 X

如果您編輯先前在這個畫面中設定的鏡像群組,群組的設定會變更,但群組本身會保持不變。舉例來說,您可以變更群組的自訂名稱,這會變更群組在 Looker 的「群組」頁面中的顯示方式,但不會變更指派的角色和群組成員。變更 OpenID Connect 群組 ID 會保留群組名稱和角色,但群組成員會根據具有新 OpenID Connect 群組 ID 的外部 OpenID Connect 群組成員重新指派。

如果您在這個頁面中刪除群組,該群組就不會再同步處理至 Looker,成員也無法再透過該群組在 Looker 中獲得角色。

對鏡像群組所做的任何編輯,都會在該群組使用者下次登入 Looker 時套用。

進階角色管理

如果您已啟用「Mirror OpenID Connect Groups」切換鈕,Looker 會顯示這些設定。本節的選項會決定 Looker 管理員在設定 Looker 群組和從 OpenID Connect 鏡像的使用者時,可享有的彈性程度。

舉例來說,如果您希望 Looker 群組和使用者設定與 OpenID Connect 設定完全一致,請開啟這些選項。啟用前三個選項後,Looker 管理員就無法修改鏡像群組的成員資格,只能透過 OpenID Connect 鏡像群組將角色指派給使用者。

如果您希望在 Looker 中更彈性地進一步自訂群組,請關閉這些選項。Looker 群組仍會同步處理您的 OpenID Connect 設定,但您可以在 Looker 中執行其他群組和使用者管理作業,例如將 OpenID Connect 使用者新增至 Looker 專屬群組,或直接將 Looker 角色指派給 OpenID Connect 使用者。

對於新的 Looker 執行個體,或先前未設定鏡像群組的執行個體,這些選項預設為關閉。

對於已設定鏡像群組的現有 Looker 執行個體,這些選項預設為開啟。

「進階角色管理」部分包含下列選項:

防止個別 OpenID Connect 使用者取得直接角色:啟用這個選項後,Looker 管理員就無法直接將 Looker 角色指派給 OpenID Connect 使用者。OpenID Connect 使用者只能憑藉群組成員身分取得角色。如果允許 OpenID Connect 使用者加入內建 (非鏡像) Looker 群組,他們仍可從鏡像 OpenID Connect 群組和內建 Looker 群組繼承角色。先前直接指派角色給 OpenID Connect 使用者的角色,都會在使用者下次登入時移除。

如果關閉這個選項,Looker 管理員就能直接將 Looker 角色指派給 OpenID Connect 使用者,就像是直接在 Looker 中設定的使用者一樣。

Prevent Direct Membership in non-OpenID Connect Groups:開啟這個選項後,Looker 管理員就無法將 OpenID Connect 使用者直接新增至內建的 Looker 群組。如果鏡像 OpenID Connect 群組可成為內建 Looker 群組的成員,OpenID Connect 使用者就能保留任何上層 Looker 群組的成員資格。先前指派至內建 Looker 群組的所有 OpenID Connect 使用者,都會在下次登入時從這些群組中移除。

如果關閉這個選項,Looker 管理員可以直接將 OpenID Connect 使用者新增至內建的 Looker 群組。

禁止從非 OpenID Connect 群組繼承角色:開啟這個選項,可防止鏡像 OpenID Connect 群組的成員從內建 Looker 群組繼承角色。先前從上層 Looker 群組繼承角色的所有 OpenID Connect 使用者,都會在下次登入時失去這些角色。

如果關閉這個選項,鏡像 OpenID Connect 群組或新增為內建 Looker 群組成員的 OpenID Connect 使用者,都會繼承指派給上層 Looker 群組的角色。

Auth Requires Role:如果啟用這個選項,OpenID Connect 使用者必須指派角色。任何未指派角色的 OpenID Connect 使用者都無法登入 Looker。

如果關閉這個選項,即使沒有指派角色,OpenID Connect 使用者也能向 Looker 進行驗證。沒有指派角色的使用者無法在 Looker 中查看任何資料或採取任何動作,但可以登入 Looker。

停用鏡像 OpenID Connect 群組

如要停止在 Looker 中鏡像 OpenID Connect 群組,請關閉「Mirror OpenID Connect Groups」切換鈕。系統會刪除所有空白的鏡像 OpenID Connect 群組。

非空的鏡像 OpenID Connect 群組仍可用於內容管理和角色建立。不過,您無法將使用者加入或移出鏡像 OpenID Connect 群組。

設定遷移選項

如本節所述,Looker 建議您啟用其他登入方式,並為現有使用者提供合併策略。

指定使用者的備用登入方式

啟用 OpenID Connect 驗證之後,一般使用者一律無法以電子郵件地址和密碼登入 Looker。「指定使用者的備用登入方式」選項可讓管理員和具備「login_special_email」權限的指定使用者,透過 /login/email 使用電子郵件地址做為備用登入方式。

如果之後在 OpenID Connect 設定期間發生問題,或是需要支援沒有 OpenID Connect 目錄帳戶的使用者,開啟這個選項就能當做備用方案。

指定用於將 OpenID Connect 使用者合併至 Looker 帳戶的方法

在「使用以下方法合併使用者」欄位中,指定要用來合併首次 OpenID Connect 登入帳戶的使用者的方法。您可以合併下列系統中的使用者:

  • Looker 電子郵件地址/密碼 (不適用於 Looker (Google Cloud Core))
  • Google
  • LDAP (不適用於 Looker (Google Cloud Core))
  • SAML

如果您有多個驗證系統,可以在這欄中指定多個系統來合併。Looker 會按照指定的順序,從列出的系統中查詢使用者。舉例來說,假設您使用 Looker 電子郵件/密碼建立了一些使用者,然後啟用 LDAP,現在想使用 OpenID Connect。在上一個範例中,Looker 會先根據電子郵件和密碼合併,然後再根據 LDAP 合併。

當使用者首次透過 OpenID Connect 登入時,這個選項會找到使用者相符的電子郵件地址,並將使用者連結至現有帳戶。如果使用者沒有現有帳戶,系統會建立新的使用者帳戶。

使用 Looker (Google Cloud Core) 時合併使用者

使用 Looker (Google Cloud Core) 和 OpenID Connect 時,合併作業的運作方式與上一節所述相同。不過,您必須符合下列兩種情況之一:

  • 條件 1:使用者透過 OpenID Connect 通訊協定,使用 Google 身分驗證 Looker (Google Cloud core)。
  • 條件 2:在選取合併選項之前,您已完成下列兩個步驟:

    1. Google Cloud 使用 Cloud Identity聯合使用者身分。
    2. 使用聯合驗證使用者,將 OAuth 驗證設為備用驗證方法。

如果設定不符合這兩項條件中的任一項,就無法使用「Merge Users Using」選項。

合併時,Looker 會搜尋使用者記錄是否有相同的電子郵件地址。

測試使用者驗證機制

指定這項設定時,請按一下「Test」按鈕,測試 OpenID Connect 設定。

測試會重新導向至端點,並開啟新的瀏覽器分頁。分頁會顯示:

  • Looker 是否能夠與各種端點通訊並進行驗證
  • 驗證端點回應的追蹤記錄
  • Looker 從使用者資訊端點取得的使用者資訊
  • 收到的 ID 權杖已解碼和原始版本

您可以使用這項測試,驗證從各種端點收到的資訊是否正確,並排解任何錯誤。

提示

  • 即使 OpenID Connect 僅部分設定完成,您仍可隨時執行這項測試。在設定期間執行測試,有助於您瞭解哪些參數需要設定。
  • 測試會使用您在「OpenID Connect 驗證」頁面中輸入的設定,即使您尚未儲存這些設定也一樣。這項測試不會影響或變更該頁面上的任何設定。

儲存並套用設定

輸入資訊並通過所有測試後,請勾選「我已確認上述設定,並想將其套用至全域」,然後按一下「更新設定」儲存。