在「管理」選單的「Authentication」部分中,您可以透過「SAML」頁面設定 Looker 使用安全宣告標記語言 (SAML) 驗證使用者。本頁面說明該程序,並提供將 SAML 群組連結至 Looker 角色和權限的操作說明。
需求條件
只有在符合下列條件時,Looker 才會在「管理」選單的「驗證」部分顯示「SAML」頁面:
- 您具備「管理員」角色。
- Looker 執行個體已啟用 SAML。
如果符合這些條件,但您沒有看到「SAML」頁面,請提出支援要求,在您的執行個體中啟用 SAML。
SAML 和身分識別資訊提供者
企業會使用不同的身分識別提供者 (IdP) 與 SAML 協調 (例如 Okta 或 OneLogin)。下列設定說明和使用者介面中使用的詞彙,可能與 IdP 使用的詞彙不完全相同。如有設定問題,請洽詢貴機構的 SAML 或驗證團隊,或是與 Looker 支援團隊聯絡。
Looker 會假設 SAML 要求和斷言會壓縮;請確認 IdP 已設為這種模式。Looker 向 IdP 提出的要求未經簽署。
Looker 支援由 IdP 啟動的登入程序。
部分設定程序必須在 ID 提供者的網站上完成。
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。
- 除非您已設定其他帳戶登入方式,否則請勿在登入 Looker 時停用 SAML 驗證。否則,你可能會無法使用應用程式。
- Looker 可使用來自目前電子郵件和密碼設定,或來自 Google Authenticator、LDAP 或 OIDC 的電子郵件地址,將現有帳戶遷移至 SAML。您可以在設定程序中設定現有帳戶的遷移方式。
開始使用
前往 Looker 的「管理」部分,然後前往「SAML 驗證」頁面,查看下列設定選項。請注意,您必須在頁面底部測試並儲存設定,設定選項的變更才會生效。
SAML 驗證設定
Looker 需要 IdP 網址、IdP 核發者和 IdP 憑證,才能驗證 IdP。
在 IdP 端設定 Looker 時,您的 IdP 可能會提供 IdP 中繼資料 XML 文件。這個檔案包含「SAML 驗證設定」部分要求的所有資訊。如果您有這個檔案,可以上傳至「IdP 中繼資料」欄位,系統就會在這個部分填入必要欄位。或者,您也可以根據 IdP 端設定期間取得的輸出內容,填寫必要欄位。如果您上傳 XML 檔案,則不需要填寫這些欄位。
- IdP 中繼資料 (選填): 請貼上含有 IdP 資訊的 XML 文件公開網址,或是貼上文件的完整文字。Looker 會剖析該檔案,並填入必填欄位。
如果您沒有上傳或貼上 IdP 中繼資料 XML 文件,請改為在「IdP 網址」、「IdP 核發者」和「IdP 憑證」欄位中輸入 IdP 驗證資訊。
IdP 網址:Looker 用於驗證使用者的網址。在 Okta 中,這稱為「重新導向網址」。
IdP Issuer: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 不會特別規定這類資訊的建構方式,但您輸入 Looker 的方式必須與 IdP 中定義的屬性方式相符。Looker 會提供如何建構這些輸入內容的預設建議。
標準屬性
您需要指定下列標準屬性:
Email Attr:IdP 用於使用者電子郵件地址的屬性名稱。
FName Attr:IdP 用於使用者名字的屬性名稱。
LName Attr:IdP 用於使用者姓氏的屬性名稱。
將 SAML 屬性與 Looker 使用者屬性配對
您可以選擇使用 SAML 屬性中的資料,在使用者登入時自動填入 Looker 使用者屬性中的值。舉例來說,如果您已設定 SAML,以便建立使用者專屬的資料庫連線,就可以將 SAML 屬性與 Looker 使用者屬性配對,在 Looker 中建立使用者專屬的資料庫連線。
如要將 SAML 屬性與對應的 Looker 使用者屬性配對,請按照下列步驟操作:
- 在「SAML Attribute」欄位中輸入 SAML 屬性名稱,並在「Looker User Attributes」欄位中輸入要與之配對的 Looker 使用者屬性名稱。
- 如果您想要求使用者提供 SAML 屬性值才能登入,請勾選「必要」。
- 按一下「+」,然後重複執行這些步驟,即可新增更多屬性組合。
群組和角色
您可以選擇讓 Looker 建立群組,以鏡像外部管理的 SAML 群組,然後根據鏡像 SAML 群組,將 Looker 角色指派給使用者。變更 SAML 群組成員資格後,這些變更會自動套用至 Looker 的群組設定。
鏡像 SAML 群組可讓您使用外部定義的 SAML 目錄來管理 Looker 群組和使用者。這樣一來,您就能集中管理多個軟體即服務 (SaaS) 工具 (例如 Looker) 的群組成員資格。
如果您啟用「Mirror SAML Groups」,Looker 會為系統中導入的每個 SAML 群組建立一個 Looker 群組。您可以在 Looker 的「管理」部分,查看「群組」頁面。群組可用於為群組成員指派角色、設定內容存取權控管,以及指派使用者屬性。
預設群組和角色
根據預設,「鏡像 SAML 群組」切換鈕會關閉。在這種情況下,您可以為新的 SAML 使用者設定預設群組。在「新使用者群組」和「新使用者角色」欄位中,輸入您要指派給新 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>
在這種情況下,請選取「群組做為單一屬性的值」。部分 ID 提供者會為每個群組使用單獨的屬性,然後需要第二個屬性來判斷使用者是否為群組成員。以下是顯示此系統的 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」。
Groups Attribute:如果「Group Finder Strategy」已設為「Groups as values of single attribute」,Looker 就會顯示這個欄位。輸入 ID 提供者使用的「群組屬性」名稱。
群組成員值:如果「群組搜尋器策略」設為「群組為具有會員價值的個別屬性」,Looker 就會顯示這個欄位。輸入值,指出使用者是群組成員。
偏好的群組名稱/角色/SAML 群組 ID:您可以使用這組欄位,在 Looker 中指派自訂群組名稱和一或多個角色給相應的 SAML 群組:
在「SAML Group ID」欄位中輸入 SAML 群組 ID。如果是 Okta 使用者,請輸入 Okta 群組名稱做為 SAML 群組 ID。系統會將 SAML 群組中的 SAML 使用者新增至 Looker 中的鏡像群組。
在「Custom Name」欄位中輸入鏡像群組的自訂名稱。這個名稱會顯示在 Looker 的「管理」部分「群組」頁面中。
在「自訂名稱」欄位右側的欄位中,選取一或多個 Looker 角色,這些角色會指派給群組中的每位使用者。
按一下
+
即可新增更多欄位組合,設定其他鏡像群組。如果您已設定多個群組,且想要移除某個群組的設定,請按一下該群組的欄位組旁邊的X
。
如果您編輯先前在這個畫面中設定的鏡像群組,群組的設定會變更,但群組本身會保持不變。舉例來說,您可以變更群組的自訂名稱,這會變更群組在 Looker 的「群組」頁面中的顯示方式,但不會變更指派的角色和群組成員。變更 SAML 群組 ID 會保留群組名稱和角色,但群組成員會根據具有新 SAML 群組 UD 的外部 SAML 群組成員重新指派。
對鏡像群組所做的任何編輯,都會在該群組使用者下次登入 Looker 時套用。
進階角色管理
如果您已啟用「Mirror SAML Groups」切換鈕,Looker 會顯示這些設定。本節的選項會決定 Looker 管理員在設定 Looker 群組和從 SAML 鏡像的使用者時,可享有的彈性程度。
舉例來說,如果您希望 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 使用者,會在下次登入時失去這些角色。
如果這個選項關閉,鏡像 SAML 群組或新增為內建 Looker 群組成員的 SAML 使用者,會繼承指派給上層 Looker 群組的角色。
Auth Requires Role:如果啟用這個選項,SAML 使用者必須指派角色。任何未指派角色的 SAML 使用者都無法登入 Looker。
如果關閉這個選項,即使 SAML 使用者未指派角色,也能向 Looker 進行驗證。沒有指派角色的使用者無法在 Looker 中查看任何資料或採取任何動作,但可以登入 Looker。
停用鏡像 SAML 群組
如要停止在 Looker 中鏡像 SAML 群組,請關閉「Mirror SAML Groups」切換鈕。系統會刪除所有空白的鏡像 SAML 群組。
空白以外的 SAML 鏡像群組仍可用於內容管理和角色建立。不過,您無法將使用者新增至或移除鏡像 SAML 群組。
遷移選項
管理員和指定使用者的備用登入方式
啟用 SAML 驗證之後,一般使用者一律無法以電子郵件地址和密碼登入 Looker。這個選項可讓管理員和具備 login_special_email
權限的指定使用者,透過 /login/email
以電子郵件地址做為備用登入方式。
如果之後在 SAML 驗證設定期間發生問題,或是需要支援沒有貴組織 SAML 目錄帳戶的使用者,這個選項就能當做備用方案。
指定用於將 SAML 使用者合併至 Looker 帳戶的方法
在「Merge Users Using」欄位中,指定將首次 SAML 登入帳戶合併至現有使用者帳戶的方法。您可以合併下列系統中的使用者:
- Looker 電子郵件地址/密碼 (不適用於 Looker (Google Cloud Core))
- LDAP (不適用於 Looker (Google Cloud Core))
- OIDC
如果您有多個系統,可以在這欄中指定多個系統來合併。Looker 會按照指定的順序,從列出的系統中查詢使用者。舉例來說,假設您使用 Looker 電子郵件和密碼建立了一些使用者,接著啟用 LDAP,現在想改用 SAML。Looker 會先根據電子郵件和密碼合併,然後再根據 LDAP 合併。
當使用者首次透過 SAML 登入時,這個選項會找到使用者電子郵件地址相符的帳戶,將使用者連結至現有帳戶。如果使用者沒有現有帳戶,系統會建立新的使用者帳戶。
使用 Looker (Google Cloud Core) 時合併使用者
使用 Looker (Google Cloud Core) 和 SAML 時,合併作業的運作方式與上一節所述相同。不過,您必須符合下列兩項條件之一,才能使用這項功能:
- 條件 1:使用者透過 SAML 通訊協定,以 Google 身分驗證 Looker (Google Cloud Core)。
條件 2:在選取合併選項之前,您已完成下列兩個步驟:
- 使用 Cloud Identity 的 Google Cloud 中的聯合使用者身分
- 使用聯合驗證使用者,將 OAuth 驗證設為備用驗證方法。
如果執行個體不符合這兩個條件中的任一條件,就無法使用「Merge Users Using」選項。
合併時,Looker (Google Cloud Core) 會搜尋使用者記錄,並找出與該記錄共用相同電子郵件地址的記錄。
測試使用者驗證機制
按一下「Test」按鈕,即可測試設定。測試會重新導向至伺服器,並開啟瀏覽器分頁。分頁會顯示:
- Looker 是否能夠與伺服器通訊並進行驗證。
- Looker 從伺服器取得的名稱。您必須驗證伺服器是否傳回正確的結果。
- 追蹤記錄,顯示資訊的來源。如果資訊有誤,請使用追蹤記錄進行疑難排解。如需其他資訊,您可以讀取原始 XML 伺服器檔案。
提示:
- 即使 SAML 尚未完全設定,您隨時可以執行這項測試。在設定期間執行測試,有助於您瞭解哪些參數需要設定。
- 測試會使用您在「SAML 驗證」頁面中輸入的設定,即使這些設定尚未儲存也一樣。這項測試不會影響或變更該頁面上的任何設定。
- 在測試期間,Looker 會使用 SAML
RelayState
參數將資訊傳遞給 IdP。IdP 應將此RelayState
值原封不動地傳回給 Looker。
儲存並套用設定
輸入資訊並通過所有測試後,請勾選「我已確認上述設定,並想將其套用至整個網站」,然後按一下「更新設定」儲存設定。
使用者登入行為
當使用者嘗試使用 SAML 登入 Looker 例項時,Looker 會開啟「Log In」頁面。使用者必須按一下「Authenticate」按鈕,才能透過 SAML 啟動驗證程序。
如果使用者沒有有效的 Looker 工作階段,系統會執行這項預設動作。
如果您希望使用者在 IdP 驗證後,直接登入 Looker 執行個體,並略過「登入」頁面,請開啟「登入行為」下方的「略過登入頁面」。
如果您使用的是 Looker (原始版本),則需要由 Looker 啟用略過登入頁面功能。如要更新這項功能的授權,請與 Google Cloud 業務專員聯絡或提出支援要求。如果您使用 Looker (Google Cloud Core),當您使用 SAML 做為主要驗證方法時,系統會自動提供「略過登入頁面」選項,且預設為停用。
啟用「略過登入頁面」後,使用者登入程序如下:
使用者嘗試連線至 Looker 網址 (例如
instance_name.looker.com
)。Looker 會判斷使用者是否已啟用有效的工作階段。為此,Looker 會使用 Cookie
AUTH-MECHANISM-COOKIE
來辨識使用者在上一個工作階段中使用的授權方法。這個值一律會是saml
、ldap
、oidc
、google
或email
其中一個。如果使用者已啟用有效的工作階段,系統會將使用者帶往要求的網址。
如果使用者未啟用有效的工作階段,系統會將他們重新導向至 IdP。使用者成功登入 IdP 後,IdP 會驗證使用者。當 IdP 將使用者傳回 Looker,並附上使用者已通過 IdP 驗證的資訊時,Looker 就會驗證使用者。
如果 IdP 的驗證成功,Looker 就會驗證 SAML 宣告、接受驗證、更新使用者資訊,並將使用者轉送至要求的網址,而不會經過「登入」頁面。
如果使用者無法登入 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 位元組。