管理員設定 - SAML 驗證

您可以在「Admin」選單的「Authentication」部分,透過「SAML」頁面設定 Looker,使用安全宣告標記語言 (SAML) 驗證使用者。本頁面說明這個程序,並提供將 SAML 群組連結至 Looker 角色和權限的操作說明。

需求條件

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

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

SAML 和識別資訊提供者

公司會使用不同的識別資訊提供者 (IdP) 搭配 SAML (例如 Okta 或 OneLogin)。下列設定說明和使用者介面中使用的詞彙,可能與 IdP 使用的詞彙不完全一致。如需設定期間的說明,請與內部 SAML 或驗證團隊聯絡,或洽詢 Looker 支援團隊。

Looker 會假設 SAML 要求和聲明經過壓縮,請確保 IdP 的設定符合這項假設。Looker 對 IdP 的要求未簽署。

Looker 支援 IdP 啟動的登入程序。

部分設定程序必須在 IdP 的網站上完成。

Okta 提供 Looker 應用程式,建議您使用這個應用程式一併設定 Looker 和 Okta。

在識別資訊提供者上設定 Looker

您的 SAML IdP 需要 Looker 執行個體網址,SAML IdP 應將 SAML 聲明 POST 至該網址。在 IdP 中,這可能稱為「Post Back URL」、「Recipient」或「Destination」等。

請提供您通常用來透過瀏覽器存取 Looker 執行個體的網址,然後加上 /samlcallback。例如:none https://instance_name.looker.com/samlcallback

https://looker.mycompany.com/samlcallback

部分 IdP 也會要求您在執行個體網址後加上 :9999。例如:

https://instance_name.looker.com:9999/samlcallback

注意事項

請注意以下幾點:

  • Looker 需要 SAML 2.0。
  • 透過 SAML 登入 Looker 時,請勿停用 SAML 驗證,除非您已設定其他帳戶登入方式。否則您可能會無法登入應用程式。
  • Looker 可以使用現有電子郵件地址,將現有帳戶遷移至 SAML。這些電子郵件地址來自目前的電子郵件和密碼設定,或是 Google 驗證、LDAP 或 OIDC。在設定過程中,您可以設定現有帳戶的遷移方式。

開始使用

前往 Looker「管理」部分的「SAML 驗證」頁面,即可查看下列設定選項。請注意,您必須先測試並儲存頁面底部的設定,設定選項的變更才會生效。

SAML 驗證設定

Looker 需要 IdP 網址IdP 核發者IdP 憑證,才能驗證 IdP。

在 IdP 端設定 Looker 時,IdP 可能會提供 IdP 中繼資料 XML 文件。這個檔案包含「SAML 驗證設定」部分要求的所有資訊。如果您有這個檔案,可以上傳到「IdP Metadata」欄位,系統會自動填入這個部分中的必填欄位。或者,您也可以填寫在 IdP 端設定期間取得的輸出內容中,填寫必填欄位。上傳 XML 檔案時,不需要填寫欄位。

  • IdP 中繼資料 (選用): 貼上含有 IdP 資訊的 XML 文件公開網址,或貼上完整的文件文字。Looker 會剖析該檔案,填入必填欄位。

如果您未上傳或貼上 IdP 中繼資料 XML 文件,請改為在「IdP URL」、「IdP 核發者」和「IdP 憑證」欄位中輸入 IdP 驗證資訊。

  • IdP 網址:Looker 用於驗證使用者的網址。在 Okta 中,這稱為「重新導向網址」

  • IdP 核發者:IdP 的專屬 ID。在 Okta 中,這稱為「外部金鑰」。

  • IdP 憑證:公開金鑰,可供 Looker 驗證 IdP 回應的簽章。

這三個欄位加總起來,可讓 Looker 確認一組已簽署的 SAML 聲明確實來自受信任的 IdP。

  • SP 實體/IdP 對象:Looker 並未規定必須填寫這個欄位,但許多 IdP 都會要求填寫。如果您在這個欄位中輸入值,該值會以 Looker 的 Entity ID 形式,傳送至授權要求中的 IdP。在這種情況下,Looker 只會接受將這個值做為 Audience 的授權回應。如果 IdP 需要 Audience 值,請在此處輸入該字串。
  • 允許的時鐘偏移:允許的時鐘偏移秒數 (IdP 和 Looker 之間的時間戳記差異)。這個值通常是預設的 0,但部分 IdP 可能需要額外緩衝時間,才能順利登入。

使用者屬性設定

在下列欄位中,指定 IdP 的 SAML 設定中的屬性名稱,其中包含每個欄位的相應資訊。輸入 SAML 屬性名稱後,Looker 就知道如何對應這些欄位,並在登入時擷取相關資訊。Looker 不會特別規定如何建構這項資訊,但請務必以與 IdP 中屬性定義相符的方式,將資訊輸入 Looker。Looker 會提供建構這些輸入內容的預設建議。

標準屬性

你必須指定下列標準屬性:

  • 電子郵件地址屬性:IdP 用於使用者電子郵件地址的屬性名稱。

  • FName Attr:IdP 用於使用者名字的屬性名稱。

  • LName Attr:IdP 用於使用者姓氏的屬性名稱。

將 SAML 屬性與 Looker 使用者屬性配對

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

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

  1. 在「SAML Attribute」欄位中輸入 SAML 屬性名稱,並在「Looker User Attributes」欄位中輸入要配對的 Looker 使用者屬性名稱。
  2. 如要規定使用者必須提供 SAML 屬性值才能登入,請勾選「必要」
  3. 按一下「+」,然後重複上述步驟,即可新增更多屬性配對。

群組和角色

您可以選擇讓 Looker 建立與外部管理的 SAML 群組相應的群組,然後根據相應的 SAML 群組,將 Looker 角色指派給使用者。變更 SAML 群組成員後,系統會自動將變更傳播至 Looker 的群組設定。

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

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

預設群組和角色

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

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

如果日後啟用鏡像 SAML 群組,使用者下次登入時,系統會移除這些預設值,並改為指派「鏡像 SAML 群組」部分的角色。這些預設選項將無法再使用或指派,並完全由鏡像群組設定取代。

啟用鏡像 SAML 群組

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

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

啟用鏡像群組的步驟

如要鏡像處理 Looker 中的 SAML 群組,請開啟「Mirror SAML Groups」切換鈕。Looker 會顯示下列設定:

群組尋找策略:選取 IdP 用來指派群組的系統,這取決於您的 IdP。

  • 幾乎所有 IdP 都會使用單一屬性值指派群組,如下列範例 SAML 判斷提示所示: none <saml2:Attribute Name='Groups'> <saml2:AttributeValue >Everyone</saml2:AttributeValue> <saml2:AttributeValue >Admins</saml2:AttributeValue> </saml2:Attribute> 在這種情況下,請選取「Groups as values of single attributes」(將群組做為單一屬性的值)

  • 部分 IdP 會為每個群組使用個別屬性,然後要求第二個屬性來判斷使用者是否為群組成員。以下是顯示這個系統的 SAML 判斷範例: none <saml2:Attribute Name='group_everyone'> <saml2:AttributeValue >yes</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name='group_admins'> <saml2:AttributeValue >no</saml2:AttributeValue> </saml2:Attribute> 在本例中,請選取「Groups as individual attributes with membership value」(將群組視為具有成員資格值的個別屬性)

群組屬性:如果「群組搜尋器策略」設為「群組做為單一屬性的值」,Looker 就會顯示這個欄位。輸入 IdP 使用的群組屬性名稱。

群組成員值:當「群組搜尋器策略」設為「群組做為具有成員值的個別屬性」時,Looker 會顯示這個欄位。輸入表示使用者為群組成員的值。

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

  1. 在「SAML Group ID」欄位中輸入 SAML 群組 ID。如果是 Okta 使用者,請輸入 Okta 群組名稱做為 SAML 群組 ID。系統會將 SAML 群組中的 SAML 使用者新增至 Looker 中的對應群組。

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

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

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

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

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

進階角色管理

如果已啟用「Mirror SAML Groups」(鏡像 SAML 群組) 切換鈕,Looker 會顯示這些設定。這個部分的選項會決定 Looker 管理員在設定從 SAML 鏡像處理的 Looker 群組和使用者時,可享有多大的彈性。

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

如要更彈性地在 Looker 中自訂群組,請關閉這些選項。Looker 群組仍會反映 SAML 設定,但您可以在 Looker 中進行額外的群組和使用者管理作業,例如將 SAML 使用者新增至 Looker 專屬群組,或直接將 Looker 角色指派給 SAML 使用者。

如果是新的 Looker 執行個體,或是先前未設定任何鏡像群組的執行個體,這些選項預設為關閉。

如果現有 Looker 執行個體已設定鏡像群組,這些選項預設會開啟。

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

禁止個別 SAML 使用者取得直接角色:開啟這項選項後,Looker 管理員就無法直接將 Looker 角色指派給 SAML 使用者。SAML 使用者只能透過群組成員身分取得角色。如果允許 SAML 使用者加入內建 (非鏡像) Looker 群組,他們仍可從鏡像 SAML 群組和內建 Looker 群組沿用角色。先前直接獲派角色的 SAML 使用者,下次登入時將移除這些角色。

如果關閉這項選項,Looker 管理員可以直接將 Looker 角色指派給 SAML 使用者,就像直接在 Looker 中設定一樣。

禁止非 SAML 群組直接取得成員資格:開啟這個選項後,Looker 管理員就無法直接將 SAML 使用者新增至內建的 Looker 群組。如果允許鏡像 SAML 群組成為內建 Looker 群組的成員,SAML 使用者可能會保留任何上層 Looker 群組的成員資格。先前指派給內建 Looker 群組的 SAML 使用者,下次登入時會從這些群組中移除。

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

禁止從非 SAML 群組繼承角色:開啟這個選項後,鏡像 SAML 群組的成員就無法從內建 Looker 群組繼承角色。先前從上層 Looker 群組繼承角色的 SAML 使用者,下次登入時將失去這些角色。

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

驗證需要角色:如果開啟這個選項,系統會要求 SAML 使用者必須有指派的角色。如果 SAML 使用者未獲指派角色,就完全無法登入 Looker。

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

停用鏡像 SAML 群組

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

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

遷移選項

管理員和指定使用者的備用登入方式

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

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

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

在「Merge Users Using」(合併使用者時使用的項目) 欄位中,指定將首次 SAML 登入合併至現有使用者帳戶的方法。您可以合併下列系統中的使用者:

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

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

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

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

使用 Looker (Google Cloud Core) 和 SAML 時,合併作業的運作方式如上一節所述。不過,只有在符合下列其中一項條件時,才能這麼做:

  1. 條件 1:使用者透過 SAML 通訊協定,使用 Google 身分驗證登入 Looker (Google Cloud Core)。
  2. 條件 2:選取合併選項前,你已完成下列兩個步驟:

如果執行個體不符合這兩項條件,系統就不會顯示「使用合併使用者」選項。

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

測試使用者驗證

按一下「測試」按鈕,測試設定。測試會重新導向至伺服器,並開啟瀏覽器分頁。分頁會顯示:

  • Looker 是否能與伺服器通訊並進行驗證。
  • Looker 從伺服器取得的名稱。您必須驗證伺服器是否傳回正確結果。
  • 追蹤記錄,顯示資訊的搜尋方式。如果資訊有誤,請使用追蹤記錄進行疑難排解。如需其他資訊,可以讀取原始 XML 伺服器檔案。

提示

  • 即使 SAML 設定不完整,您也可以隨時執行這項測試。在設定期間執行測試,有助於瞭解需要設定哪些參數。
  • 即使尚未儲存設定,測試也會使用「SAML 驗證」頁面中輸入的設定。測試不會影響或變更該頁面的任何設定。
  • 在測試期間,Looker 會使用 SAML RelayState 參數將資訊傳遞至 IdP。IdP 應將這個 RelayState 值傳回 Looker,且不得修改。

儲存並套用設定

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

使用者登入行為

當使用者嘗試使用 SAML 登入 Looker 執行個體時,Looker 會開啟「登入」頁面。使用者必須點選「驗證」按鈕,才能透過 SAML 啟動驗證。

如果使用者沒有有效 Looker 工作階段,系統預設會執行這項操作。

如要讓使用者在 IdP 驗證後直接登入 Looker 執行個體,並略過「登入」頁面,請在「登入行為」下方開啟「略過登入頁面」

如果您使用 Looker (舊版),則需要由 Looker 啟用「略過登入頁面」功能。如要更新授權以使用這項功能,請與銷售專員聯絡 Google Cloud 提出支援要求。如果您使用 Looker (Google Cloud Core),系統會自動提供「略過登入頁面」選項 (如果 SAML 是主要驗證方式),且預設為停用。

啟用「略過登入頁面」後,使用者登入程序如下:

  1. 使用者嘗試連線至 Looker 網址 (例如 instance_name.looker.com)。

  2. Looker 會判斷使用者是否已啟用有效工作階段。為此,Looker 會使用 Cookie AUTH-MECHANISM-COOKIE 識別使用者在上一個工作階段中使用的授權方法。值一律為 samlldapoidcgoogleemail

  3. 如果使用者已啟用有效工作階段,系統會將使用者帶往要求的網址。

  4. 如果使用者未啟用有效的工作階段,系統會將他們重新導向至 IdP。使用者成功登入 IdP 後,IdP 會驗證使用者身分。IdP 將使用者連回 Looker 時,會附上使用者已通過 IdP 驗證的資訊,Looker 收到後就會驗證使用者。

  5. 如果 IdP 驗證成功,Looker 會驗證 SAML 聲明、接受驗證、更新使用者資訊,並將使用者轉送至要求的網址,略過「登入」頁面。

  6. 如果使用者無法登入 IdP,或 IdP 未授權使用者存取 Looker,系統會視 IdP 而定,讓使用者留在 IdP 網站,或將使用者重新導向至 Looker 的「登入」頁面。

SAML 回應超出限制

如果嘗試驗證的使用者收到錯誤訊息,指出 SAML 回應超過大小上限,您可以提高允許的 SAML 回應大小上限。

如果是 Looker 代管的執行個體,請提出支援要求,更新 SAML 回應大小上限。

如果是客戶代管的 Looker 執行個體,您可以使用 MAX_SAML_RESPONSE_BYTESIZE 環境變數,以位元組為單位設定 SAML 回應大小上限。例如:

export MAX_SAML_RESPONSE_BYTESIZE=500000

SAML 回應大小上限預設為 250,000 個位元組。