管理員設定 - OpenID Connect 驗證

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

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

需求條件

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

  • 您具備管理員角色
  • 您的 Looker 執行個體已啟用 OpenID Connect。

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

規劃注意事項

  • 建議使用「Alternate Login for Specified Users」(為特定使用者提供替代登入方式) 選項,允許 Looker 管理員在不使用 OpenID Connect 的情況下存取 Looker。
  • 如果您是透過 OpenID Connect 登入 Looker,請勿停用 OpenID Connect 驗證,除非您已設定其他帳戶登入方式。否則您可能會無法登入應用程式。
  • Looker 可以使用來自目前電子郵件和密碼設定、LDAP、SAML 或 Google 驗證的電子郵件地址,將現有帳戶遷移至 OpenID Connect。你可以在設定程序中設定這項功能。
  • 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 稱為「Redirect URI」或「Login Redirect URI」,也可能使用其他名稱。在 OP 的網站上,向 OP 提供您通常在瀏覽器中存取 Looker 執行個體的網址,然後輸入 /openidconnect。例如:https://instance_name.looker.com/openidconnect

正在從 OP 取得資訊

如要設定 Looker 的 OpenID Connect 驗證,您需要 OP 提供下列資訊:

  • 用戶端 ID 和用戶端密鑰。通常在設定重新導向 URI 時,OP 會在其網站上提供這些 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 或內部驗證團隊取得的設定資訊,在下列欄位中輸入連線設定:

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

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

核發者:用於識別 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

名字權杖附加資訊: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. 在「聲明」欄位中輸入 OP 識別的聲明,並在「Looker 使用者屬性」欄位中輸入要配對的 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) 的群組成員資格。

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

預設群組和角色

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

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

啟用鏡像 OpenID Connect 群組

如果您使用 Looker (Google Cloud Core) 執行個體,建議只為主要驗證方法啟用群組鏡像,不要為備份 OAuth 驗證啟用群組鏡像。如果同時為主要和次要驗證方法啟用群組鏡像功能,系統會出現下列行為:

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

啟用鏡像群組的步驟

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

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

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

  1. 在「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 時,系統會將對映群組的編輯內容套用至該群組的使用者。

進階角色管理

如果已啟用「鏡像 OpenID Connect 群組」切換鈕,Looker 會顯示這些設定。這個部分的選項會決定 Looker 管理員在設定從 OpenID Connect 鏡像的 Looker 群組和使用者時,有多少彈性。

舉例來說,如果您希望 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 中設定一樣。

禁止非 OpenID Connect 群組直接取得成員資格:開啟這個選項後,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 使用者,下次登入時將失去這些角色。

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

驗證需要角色:如果開啟這個選項,OpenID Connect 使用者必須獲派角色,如果 OpenID Connect 使用者未獲指派角色,就無法登入 Looker。

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

停用鏡像 OpenID Connect 群組

如要停止在 Looker 中鏡像 OpenID Connect 群組,請關閉「鏡像 OpenID Connect 群組」切換鈕。關閉切換按鈕會導致下列行為:

  • 系統會立即刪除沒有任何使用者的鏡像 OpenID Connect 群組。
  • 如果鏡像 OpenID Connect 群組含任何使用者,就會標示為孤立群組。如果這個群組的使用者在 31 天內都沒有登入,系統就會刪除該群組。使用者無法再新增至或移除孤立的 OpenID Connect 群組。

設定遷移選項

如本節所述,Looker 建議您啟用「替代登入」,並為現有使用者提供合併策略。

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

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

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

指定將 OpenID Connect 使用者併入 Looker 帳戶的方法

在「Merge Users Using」(合併使用者時使用的項目) 欄位中,指定要使用哪種方法,將首次登入 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 驗證做為備份驗證方式。

如果設定不符合這兩項條件之一,「使用合併使用者」選項就會無法使用。

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

測試使用者驗證

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

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

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

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

提示

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

儲存並套用設定

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