在 Tableau Server 上使用 AD FS 設定 SAML

您可以將 Active Directory 聯合服務 (AD FS) 設定為 SAML 身分識別提供者,並將 Tableau Server 新增到支援的單一登入應用程式。如果將 AD FS 與 SAML 和 Tableau Server 集成,使用者可以使用其標準網路認證登入到 Tableau Server

必要條件

您的環境必須具有以下各項,然後才能使用 AD FS 設定 Tableau Server 和 SAML:

  • 執行 Microsoft Windows Server 2008 R2(或更高版本)並安裝了 AD FS 2.0(或更高版本)及 IIS 的伺服器。

  • 我們建議您保護 AD FS 伺服器的安全(例如,使用反向 Proxy)。如果可從防火牆外部存取您的 AD FS 伺服器,則 Tableau Server 可將使用者重定向到 AD FS 託管的登入頁面。

  • 使用 SHA-2(256 位或 512 位)加密進行加密,並滿足以下部分中列出的其他需求的 SSL 憑證:

步驟 1:確認 AD FS 的 SSL 連線

AD FS 需要 SSL 連線。如果尚未這樣做,請使用符合上面指定要求的憑證完成針對與來往 Tableau Server 的外部 HTTP 流量設定 SSL中的步驟。

或者,如果將 Tableau Server 設定為搭配 SSL 終止(通常稱為 SSL 卸載)所在的反向 Proxy 或負載平衡器使用,則不需要設定外部 SSL。

步驟 2:在 Tableau Server 上設定 SAML

透過將 Tableau Server 中繼資料下載為一個 XML 檔案,完成設定全伺服器的 SAML中的步驟。此時,返回此處並繼續下一部分。

步驟 3:設定 AD FS 以接受來自 Tableau Server 的登入請求

附註: 這些步驟反映協力廠商應用程式,並且會在我方不知道的情況下發生變更。

將 AD FS 設定為接受 Tableau Server 登入請求是一個多步驟過程,這個過程從將 Tableau Server XML 中繼資料檔匯入 AD FS 開始。

  1. 執行以下操作之一以開啟新增依賴方信任精靈

  2. Windows Server 2008 R2:

    1. 按一下「開始」功能表>「管理工具」>「AD FS 2.0」

    2. 「AD FS 2.0」中的「信任關係」下,以右鍵按一下「信賴方信任」資料夾,然後按一下「新增信賴方信任」

    Windows Server 2012 R2:

    1. 開啟「伺服器管理器」,然後在「工具」功能表上按一下「AD FS 管理」

    2. 「AD FS 管理」中的「動作」功能表上,按一下「新增信賴方信任」

  3. 「新增信賴方信任精靈」中,按一下「開始」

  4. 「選取資料來源」頁面上,選取「從檔案匯入有關信賴方的資料」,然後按一下「瀏覽」找到 Tableau Server XML 中繼資料檔。預設情況下,此檔案名為 samlspmetadata.xml

  5. 按一下「下一步」,然後在「指定顯示名稱」頁面上的「顯示名稱」「備註」方塊中,為信賴方信任鍵入名稱和說明。

  6. 按一下「下一步」跳過「立即設定多重驗證」頁面。

  7. 按一下「下一步」跳過「選取頒發授權規則」頁面。

  8. 按一下「下一步」跳過「準備好新增信任」頁面。

  9. 「完成」頁面上,選中「精靈關閉時開啟此信賴方信任的編輯聲明規則對話方塊」核取方塊,然後按一下「關閉」

接下來,您將在「編輯聲明規則」對話方塊中進行操作,以新增一個規則,來確保 AD FS 傳送的判斷提示與 Tableau Server 需要的判斷提示匹配。Tableau Server 至少需要一個電子郵件地址。不過,如果除電子郵件之外還包括名字和姓氏,則可確保 Tableau Server 中顯示的使用者名與 AD 帳戶中的使用者名相同。

  1. 「編輯聲明規則」對話方塊中,按一下「新增規則」

  2. 「選取規則類型」頁面上,針對「聲明規則範本」,選取「以聲明方式傳送 LDAP 特性」,然後按一下「下一步」

  3. 「設定聲明規則」頁面上,針對「聲明規則名稱」,輸入對您有意義的規則名稱。

  4. 對於「特性存儲」,選取「Active Directory」,按如下所示方式完成映射,然後按一下「完成」

  5. 映射大小寫視為相異,並且需要準確的拼寫,因此請仔細檢查您輸入的內容。此處的表格會顯示常用屬性及宣告對應。確認具有特定 Active Directory 組態的屬性。

    LDAP 屬性輸出信號類型:
    SAM-Account-Name名稱 ID
    SAM-Account-Name使用者名稱
    firstName
    姓氏lastName

如果您執行 AD FS 2016 或更新版本,則必須新增規則以傳遞所有宣告值。如果您執行的是舊版 AD FS,請跳至下一個程序,以匯出 AD FS 中繼資料。

  1. 按一下「新增規則」
  2. 「宣告規則範本」下,選擇「傳遞或篩選傳入宣告」。
  3. 「宣告規則名稱」下,輸入 Windows。
  4. 「編輯規則 - Windows」快顯視窗上:
    • 「傳入宣告類型」下,選取「Windows 帳戶名稱」
    • 選取「傳遞所有宣告值」
    • 按一下「OK」(確定)。

現在,您將匯出稍後將匯入到 Tableau Server 的 AD FS 中繼資料。您還將確保已針對 Tableau Server 對中繼資料進行了正確設定和編碼,並驗證 SAML 設定的其他 AD FS 要求。

  1. 將 AD FS 聯合中繼資料匯出為 XML 檔案,然後從 https://<adfs server name>/federationmetadata/2007-06/FederationMetadata.xml 下載該檔案。

  2. 在文字編輯器(如 Sublime Text 或 Notepad++)中開啟中繼資料檔,並驗證它是否正確編碼為無 BOM 的 UTF-8。

    如果檔案顯示某種其他編碼類型,請使用正確的編碼從文字編輯器中儲存該檔案。

  3. 驗證 AD FS 是否使用基於表單的驗證。登入是在瀏覽器視窗中執行的,因此您需要 AD FS 預設使用這種類型的驗證。

    編輯 c:\inetpub\adfs\ls\web.config,搜尋相關標記並移動行以使其顯示為清單中的第一行。儲存檔案,以便 IIS 能夠自動重新載入它。

    附註:如果未看到 c:\inetpub\adfs\ls\web.config 檔案,則 AD FS 伺服器上未安裝和設定 IIS。

  4. (可選)僅當針對特定於網站的 SAML 將 AD FS 設定為 IDP 時,才需要執行此步驟。如果針對伺服器範圍的 SAML 將 AD FS 設定為 IDP,則不需要此步驟。

    設定其他 AD FS 信賴方識別字。這使得您的系統能夠解決 SAML 登出的任何 AD FS 問題。

    執行以下操作之一:

    Windows Server 2008 R2:

    1. AD FS 2.0 中,以右鍵按一下您之前為 Tableau Server 建立的信賴方,並按一下「屬性」

    2. 「識別字」索引標籤上的「信賴方識別字」方塊中,輸入 https://<tableauservername>/public/sp/metadata,然後按一下「新增」

    Windows Server 2012 R2:

    1. 「AD FS 管理」「信賴方信任」清單中,以右鍵按一下您之前為 Tableau Server 建立的信賴方,並按一下「屬性」

    2. 「識別字」索引標籤上的「信賴方識別字」方塊中,輸入 https://<tableauservername>/public/sp/metadata,然後按一下「新增」

    附註:AD FS 可與 Tableau Server 搭配使用,以用於相同執行個體的單一信賴方。AD FS 無法用於相同執行個體的多個信賴方,例如,多個 site-SAML 站點或全伺服器,以及站點 SAML 組態。

步驟 4:將 AD FS 中繼資料提供給 Tableau Server

  1. 返回到 TSM Web UI,並巡覽到 [設定] > [使用者身分和存取] > [驗證方法] 索引標籤。

  2. 在 SAML 設定窗口的第 4 步中,輸入從 AD FS 匯出的 XML 檔的位置,並選取 [上載]

  3. 完成設定全伺服器的 SAML 中指定的剩餘的步驟(比對判斷提示和指定用戶端類型存取)。

  4. 儲存並套用變更。

  5. 如果不是第一次設定 SAML,請執行以下步驟:

    1. 停止 Tableau Server,打開 TSM CLI,然後執行以下命令:

      tsm configuration set -k wgserver.saml.sha256 -v true

      tsm authentication saml configure -a -1

    2. 套用變更:

      tsm pending-changes apply

      如果擱置組態需要重新啟動伺服器,pending-changes apply 命令將顯示提示,讓您知道即將重新啟動。即使伺服器已停止,也會顯示提示,但在這種情況下不會重新啟動。您可以使用 --ignore-prompt 選項隱藏提示,但這樣做不會改變重新啟動行為。如果變更不需要重新啟動,則不會出現提示即可套用變更。有關詳情,請參閱 tsm pending-changes apply

感謝您的意見反應!已成功提交您的意見回饋。謝謝!