設定從 Power BI 服務 到內部部署數據源的 Kerberos 型 SSO

啟用 SSO 可讓您輕鬆地讓 Power BI 報表和儀錶板從內部部署來源重新整理數據,同時遵守在這些來源上設定的用戶層級許可權。 使用 Kerberos 限制委派 來啟用無縫 SSO 連線。

本文說明從 Power BI 服務 到內部部署數據源設定 Kerberos 型 SSO 所需的步驟。

必要條件

必須設定數個專案,Kerberos 限制委派才能正常運作,包括服務帳戶上的 *服務主體名稱 (SPN) 和委派設定。

注意

不支援搭配 SSO 使用 DNS 別名。

組態大綱

設定閘道單一登錄所需的步驟如下所述。

  1. 完成第1節:基本設定中的所有步驟。

  2. 根據您的 Active Directory 環境和所使用的數據源,您可能需要完成第 2 節:環境特定設定中所述的部分或所有設定。

    可能需要額外設定的可能案例如下所列:

    案例 移至
    您的 Active Directory 環境已強化安全性。 將閘道服務帳戶新增至 Windows 授權和存取群組
    網關服務帳戶和閘道仿真的用戶帳戶位於不同的網域或樹系中。 將閘道服務帳戶新增至 Windows 授權和存取群組
    您沒有已設定使用者帳戶同步處理的 Microsoft Entra 連線,且使用者在 Power BI 中使用的 UPN 不符合本機 Active Directory 環境中的 UPN。 在閘道電腦上設定用戶對應組態參數
    您計劃搭配 SSO 使用 SAP HANA 資料源。 完成數據源特定的設定步驟
    您計劃搭配 SSO 使用 SAP BW 數據來源。 完成數據源特定的設定步驟
    您計劃搭配 SSO 使用 Teradata 數據源。 完成數據源特定的設定步驟
  3. 驗證您的設定,如第3節: 驗證組態 以確保 SSO 已正確設定。

第1節:基本設定

步驟 1:安裝和設定 Microsoft 內部部署數據閘道

內部部署數據閘道支援就地升級,以及 設定接管 現有閘道。

步驟 2:取得網域系統管理員許可權以設定 SPN (SetSPN) 和 Kerberos 限制委派設定

若要設定SPN和 Kerberos 委派設定,網域系統管理員應該避免將許可權授與沒有網域系統管理員許可權的人員。 在下一節中,我們會更詳細地討論建議的設定步驟。

步驟 3:設定閘道服務帳戶

選項 A 是必要設定,除非您同時已設定 Microsoft Entra 連線,而且使用者帳戶都會同步處理。 在此情況下,建議使用選項 B。

選項 A:以 SPN 的網域帳戶身分執行閘道 Windows 服務

在標準安裝中,閘道會以計算機本機服務帳戶 NT Service\PBIEgwService 的形式執行。

計算機本地服務帳戶

若要啟用 Kerberos 限制委派,閘道必須以網域帳戶的形式執行,除非您的 Microsoft Entra 實例已經與本機 Active Directory 實例同步處理(使用 Microsoft Entra DirSync/連線)。 若要切換至網域帳戶,請參閱 變更網關服務帳戶

設定閘道服務帳戶的SPN

首先,判斷是否已為作為網關服務帳戶的網域帳戶建立SPN:

  1. 身為網域系統管理員,請啟動 Active Directory 使用者和電腦 Microsoft Management Console (MMC) 嵌入式管理單元。

  2. 在左窗格中,以滑鼠右鍵按兩下功能變數名稱,選取 [ 尋找],然後輸入閘道服務帳戶的帳戶名稱。

  3. 在搜尋結果中,以滑鼠右鍵按兩下閘道服務帳戶,然後選取 [ 屬性]。

  4. 如果 [屬性] 對話框上可以看到 [委派] 索引標籤,則已建立SPN,您可以跳至設定 Kerberos 限制委派

  5. 如果 [屬性] 對話框上沒有 [委派] 索引標籤,您可以在帳戶上手動建立 SPN 來啟用它。 使用 Windows 隨附的 setspn 工具 (您需要網域系統管理員許可權才能建立 SPN)。

    例如,假設網關服務帳戶是 Contoso\GatewaySvc ,而閘道服務正在名為 MyGatewayMachine 的電腦上執行。 若要設定閘道服務帳戶的SPN,請執行下列命令:

    setspn -S gateway/MyGatewayMachine Contoso\GatewaySvc

    您也可以使用 #D1B42098AF8264189B79DC8CF6C8CEAE4 MMC 嵌入式管理單元來設定 SPN。

選項 B:設定 Microsoft Entra 連線 的電腦

如果已設定 Microsoft Entra 連線 且使用者帳戶已同步處理,閘道服務就不需要在運行時間執行本機 Microsoft Entra 查閱。 相反地,您可以直接使用閘道服務的本地服務 SID 來完成 Microsoft Entra ID 中的所有必要設定。 本文中所述的 Kerberos 限制委派設定步驟與 Microsoft Entra 內容中所需的設定步驟相同。 它們會套用至閘道的計算機物件(如本機服務 SID 所識別),而不是網域帳戶。 NT SERVICE/PBIEgwService 的本地服務 SID 如下所示:

S-1-5-80-1835761534-3291552707-3889884660-1303793167-3990676079

若要針對 Power BI Gateway 電腦建立此 SID 的 SPN,您必須從系統管理命令提示字元執行下列命令(將 取代 <COMPUTERNAME> 為 Power BI Gateway 計算機的名稱):

SetSPN -s HTTP/S-1-5-80-1835761534-3291552707-3889884660-1303793167-3990676079 <COMPUTERNAME>

注意

視本機安全性設定而定,您可能需要將閘道服務帳戶NT SERVICE\PBIEgwService 新增至閘道電腦上的本機 管理員 istrators 群組,然後在網關應用程式中重新啟動閘道服務。 對於有多個閘道的案例,不支援此選項,因為 Active Directory 會在整個樹系中強制執行唯一的 SPN。 在這些案例中,請改用 選項 A

步驟 4:設定 Kerberos 限制委派

您可以設定標準 Kerberos 限制委派或資源型 Kerberos 限制委派的委派設定。 如需委派兩種方法間差異的詳細資訊,請參閱 Kerberos 限制委派概觀

需要下列服務帳戶:

  • 網關服務帳戶:代表Active Directory 中閘道的服務使用者,並在步驟 3 中設定 SPN。
  • 數據源服務帳戶:代表Active Directory 中數據源的服務使用者,SPN 對應至數據源。

注意

閘道和數據源服務帳戶必須分開。 無法使用相同的服務帳戶來表示閘道和數據源。

根據您想要使用的方法,請繼續進行下列其中一節。 請勿完成這兩個區段:

選項 A:標準 Kerberos 限制委派

我們現在會設定閘道服務帳戶的委派設定。 您可以使用多個工具來執行這些步驟。 在這裡,我們將使用 #D57950FC81D6E4E32AF73F19CCD696892 MMC 嵌入式管理單元,在目錄中管理和發佈資訊。 預設可在域控制器上使用;在其他電腦上,您可以透過 Windows 功能設定加以啟用。

我們需要使用通訊協議轉換來設定 Kerberos 限制委派。 使用限制委派時,您必須明確說明允許閘道呈現委派認證的服務。 例如,只有 SQL Server 或 SAP HANA 伺服器接受來自閘道服務帳戶的委派呼叫。

本節假設您已為基礎數據源設定 SPN(例如 SQL Server、SAP HANA、SAP BW、Teradata 或 Spark)。 若要瞭解如何設定這些數據源伺服器 SPN,請參閱個別資料庫伺服器的技術檔,並參閱我的 Kerberos 檢查清單部落格文章中的應用程式需要哪些 SPN 一

在下列步驟中,我們假設內部部署環境具有相同網域中的兩部機器:網關機器和執行已針對 Kerberos 型 SSO 設定的 SQL Server 資料庫伺服器。 只要已針對 Kerberos 型單一登入設定數據源,就可以針對其中一個其他支援的數據源採用這些步驟。 在此範例中,我們將使用下列設定:

  • Active Directory 網域 (Netbios): Contoso
  • 閘道電腦名稱: MyGatewayMachine
  • 網關服務帳戶: Contoso\GatewaySvc
  • SQL Server 數據源機器名稱: TestSQLServer
  • SQL Server 數據源服務帳戶: Contoso\SQLService

以下說明如何設定委派設定:

  1. 使用網域系統管理員許可權,開啟 #DEE672A90A82B4F1D9E2D336535B07BE9 MMC 嵌入式管理單元。

  2. 以滑鼠右鍵按兩下閘道服務帳戶 (Contoso\GatewaySvc),然後選取 [ 屬性]。

  3. 選取 [委派] 索引標籤。

  4. 選取 [信任這部計算機以委派至指定的服務] [僅>使用任何驗證通訊協定]。

  5. 在 [此帳戶可以呈現委派認證的服務] 下,選取 [新增]。

  6. 在新的對話框中,選取 [ 用戶或計算機]。

  7. 輸入數據源的服務帳戶,然後選取 [ 確定]。

    例如,SQL Server 數據源可以有一個服務帳戶,例如 Contoso\SQLService。 數據源的適當 SPN 應該已經在此帳戶上設定。

  8. 選取您為資料庫伺服器建立的SPN。

    在我們的範例中,SPN 以 MSSQLSvc 開頭。 如果您同時為資料庫服務新增 FQDN 和 NetBIOS SPN,請選取這兩者。 您可能只會看到一個。

  9. 選取 [確定]。

    您現在應該會在閘道服務帳戶可以呈現委派認證的服務清單中看到 SPN。

    [閘道 連線 or 屬性] 對話框

  10. 若要繼續設定程式,請繼續授 與閘道電腦上的閘道服務帳戶本機原則許可權。

選項 B:以資源為基礎的 Kerberos 限制委派

您可以使用 以資源為基礎的 Kerberos 限制委派 ,為 Windows Server 2012 和更新版本啟用單一登錄連線。 這種類型的委派可讓前端和後端服務位於不同的網域中。 若要讓其運作,後端服務網域必須信任前端服務網域。

在下列步驟中,我們假設內部部署環境具有不同網域中的兩部機器:網關機器和執行已針對 Kerberos 型 SSO 設定的 SQL Server 資料庫伺服器。 只要已針對 Kerberos 型單一登入設定數據源,就可以針對其中一個其他支援的數據源採用這些步驟。 在此範例中,我們將使用下列設定:

  • Active Directory 前端網域 (Netbios): ContosoFrontEnd
  • Active Directory 後端網域 (Netbios): ContosoBackEnd
  • 閘道電腦名稱: MyGatewayMachine
  • 網關服務帳戶: ContosoFrontEnd\GatewaySvc
  • SQL Server 數據源機器名稱: TestSQLServer
  • SQL Server 數據源服務帳戶: ContosoBackEnd\SQLService

完成下列設定步驟:

  1. 在 ContosoFrontEnd 網域的域控制器上使用 Active Directory 使用者和電腦 MMC 嵌入式管理單元,並確認閘道服務帳戶未套用委派設定。

    閘道連接器屬性

  2. ContosoBackEnd 網域的域控制器上使用 Active Directory 使用者和電腦,並確認後端服務帳戶未套用委派設定。

    SQL 服務屬性

  3. 在帳戶屬性的 [ 屬性編輯器] 索引標籤中,確認 未設定 msDS-AllowedToActOnBehalfOfOtherIdentity 屬性。

    SQL 服務屬性

  4. Active Directory 使用者和電腦 中,在 ContosoBackEnd 網域的域控制器上建立群組。 將 GatewaySvc 閘道服務帳戶新增至 ResourceDelGroup 群組。

    若要從信任網域新增使用者,此群組必須具有 [網域本機] 的範圍。 群組屬性

  5. 開啟命令提示字元,並在 ContosoBackEnd 網域的域控制器中執行下列命令,以更新後端服務帳戶的 msDS-AllowedToActOnBehalfOfOtherIdentity 屬性:

    $c = Get-ADGroup ResourceDelGroup
    Set-ADUser SQLService -PrincipalsAllowedToDelegateToAccount $c
    
  6. Active Directory 使用者和電腦 中,確認更新會反映在後端服務帳戶屬性的 [屬性編輯器] 索引標籤中。

步驟 5:在服務帳戶上啟用 AES 加密

將下列設定套用至網關服務帳戶,以及 網關可以委派給的每個 數據源服務帳戶:

注意

如果服務帳戶上已定義現有的 enctype,請洽詢您的 Active Directory 管理員 istrator,因為遵循下列步驟將會覆寫現有的 enctypes 值,並可能會中斷用戶端。

  1. 使用網域系統管理員許可權,開啟 Active Directory 使用者和電腦 MMC 嵌入式管理單元。

  2. 以滑鼠右鍵按兩下閘道/資料源服務帳戶,然後選取 [ 屬性]。

  3. 選取 [帳戶] 索引標籤。

  4. 在 [ 帳戶選項] 底下,至少啟用下列選項的一個(或兩者)。 請注意,所有服務帳戶都必須啟用相同的選項。

    • 此帳戶支援 Kerberos AES 128 位加密
    • 此帳戶支援 Kerberos AES 256 位加密

注意

如果您不確定要使用的加密配置,請洽詢您的 Active Directory 管理員 istrator。

步驟 6:授與閘道電腦上的閘道服務帳戶本機原則許可權

最後,在執行網關服務的機器上(在我們的範例中為 MyGatewayMachine ),將本機原則 授與網關服務帳戶,在驗證 之後模擬用戶端,並 作為操作系統的一部分(SeTcbPrivilege)的一部分。 使用本地組原則編輯器執行此設定(gpedit.msc)。

  1. 在閘道電腦上,執行 gpedit.msc

  2. 移至 [本機計算機原則>計算機設定>] [Windows 設定> 安全性] 設定> [本機原則>] [用戶權力指派]。

    本機計算機原則資料夾結構

  3. 在 [用戶權力指派] 底下,從原則清單中,選取 [驗證后模擬用戶端]。

    模擬客戶端原則

  4. 以滑鼠右鍵按兩下原則,開啟 [屬性],然後檢視帳戶清單。

    清單必須包含網關服務帳戶 (Contoso\GatewaySvcContosoFrontEnd\GatewaySvc ,視限制委派的類型而定)。

  5. 在 [用戶權力指派] 下,從原則清單中選取 [作為操作系統的一部分 [SeTcbPrivilege]。 確定閘道服務帳戶包含在帳戶清單中。

  6. 重新啟動內部部署數據閘道服務程式。

步驟 7:Windows 帳戶可以存取閘道電腦

SSO 使用 Windows 驗證,因此請確定 Windows 帳戶可以存取閘道電腦。 如果不確定,請將NT-AUTHORITY\Authenticated Users (S-1-5-11) 新增至本機計算機 “Users” 群組。

第2節:環境特定組態

將閘道服務帳戶新增至 Windows 授權和存取群組

如果 適用下列任何 情況,請完成本節:

  • 您的 Active Directory 環境已強化安全性。
  • 當閘道服務帳戶和閘道仿真的用戶帳戶位於不同的網域或樹系時。

您也可以在網域/樹系尚未強化的情況下,將閘道服務帳戶新增至 Windows 授權和存取群組,但並非必要。

如需詳細資訊,請參閱 Windows 授權和存取群組

若要完成此設定步驟,針對包含 Active Directory 使用者的每個網域,您希望閘道服務帳戶能夠模擬:

  1. 登入網域中的計算機,然後啟動 Active Directory 使用者和電腦 MMC 嵌入式管理單元。
  2. 找出通常位於 Builtin 容器中的 Windows 授權和存取群組群組。
  3. 按兩下群組,然後按兩下 [ 成員] 索引標籤。
  4. 按兩下 [新增],然後將網域位置變更為閘道服務帳戶所在的網域。
  5. 輸入閘道服務帳戶名稱,然後按兩下 [ 檢查名稱 ] 以確認閘道服務帳戶可存取。
  6. 按一下 [確定]
  7. 按一下 套用
  8. 重新啟動閘道服務。

在閘道電腦上設定用戶對應組態參數

如果:

  • 您沒有 Microsoft Entra 連線 已設定使用者帳戶同步處理 AND
  • Power BI 中使用的 UPN 與本機 Active Directory 環境中的 UPN 不符。

以這種方式對應的每個 Active Directory 用戶都必須具有數據源的 SSO 許可權。

  1. 開啟主要閘道組態檔 Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll 根據預設,這個檔案會儲存在 C:\Program Files\On-premises data gateway

  2. 將ADUserNameLookupProperty設定為未使用的Active Directory 屬性。 我們將在後續步驟中使用 msDS-cloudExtensionAttribute1 。 此屬性僅適用於 Windows Server 2012 和更新版本。

  3. 將ADUserNameReplacementProperty 設定SAMAccountName ,然後儲存組態檔。

    注意

    在多網域案例中,您可能需要將ADUserNameReplacementProperty設定為 ,userPrincipalName以保留使用者的網域資訊。

  4. 從 [ 任務管理器] 的 [服務 ] 索引標籤中,以滑鼠右鍵按兩下閘道服務,然後選取 [ 重新啟動]。

    任務管理器服務索引標籤的螢幕快照

  5. 針對您想要啟用 Kerberos SSO 的每個 Power BI 服務 使用者,將msDS-cloudExtensionAttribute1本機 Active Directory 使用者的 屬性設定為 Power BI 服務 使用者的完整使用者名稱(UPN)。 例如,如果您以 身分登入 Power BI 服務test@contoso.com,而且想要將此用戶對應至具有 SSO 許可權的msDS-cloudExtensionAttribute1本機 Active Directory 使用者,例如 ,test@LOCALDOMAIN.COM請將此使用者的 屬性設定為 test@contoso.com。

    您可以使用 #DF2FB8D3C294E4F25B1C38C3EBE7A71AC MMC 嵌入式管理單元來設定 msDS-cloudExtensionAttribute1 屬性:

    1. 身為網域系統管理員,請啟動 Active Directory 使用者和電腦

    2. 以滑鼠右鍵按下功能變數名稱,選取 [尋找],然後輸入要對應之本機 Active Directory 使用者的帳戶名稱。

    3. 選取 [ 屬性編輯器] 索引標籤。

      msDS-cloudExtensionAttribute1找出 屬性,然後按兩下它。 將值設定為您用來登入 Power BI 服務 之使用者的完整用戶名稱(UPN)。

    4. 選取 [確定]。

      字串屬性編輯器視窗

    5. 選取套用。 確認 [值] 資料行中已設定正確的值。

完成數據源特定的設定步驟

針對 SAP HANA、SAP BW 和 Teradata 數據源,需要額外的設定才能搭配閘道 SSO 使用:

注意

雖然其他 SNC 連結庫也適用於 BW SSO,但 Microsoft 並未正式支持它們。

第3節:驗證組態

步驟 1:在 Power BI 中設定數據源

完成所有設定步驟之後,請使用Power BI中的 [ 管理閘道 ] 頁面,將數據源設定為用於 SSO。 如果您有多個閘道,請確定您選取已針對 Kerberos SSO 設定的閘道。 然後,在數據源的 設定 下,確定透過 Kerberos 使用 SSO 進行 DirectQuery 查詢,或透過 Kerberos 使用 SSO 進行 DirectQuery 和匯入查詢,檢查 DirectQuery 型報表和使用 SSO 透過 Kerberos 進行 DirectQuery,並檢查匯入查詢是否有匯入式報表。

 新增單一登錄設定的螢幕快照。

[透過 Kerberos 使用 SSO 進行 DirectQuery 查詢] 和 [透過 Kerberos 使用 SSO 進行 DirectQuery 和匯入查詢] 設定會針對 DirectQuery 型報表和匯入型報表提供不同的行為。

透過 Kerberos 使用 SSO 進行 DirectQuery 查詢

  • 針對 DirectQuery 型報表,會使用使用者的 SSO 認證。
  • 針對匯入型報表,不會使用 SSO 認證,但會使用數據源頁面中輸入的認證。

透過 Kerberos 使用 SSO 進行 DirectQuery 和匯入查詢

  • 針對 DirectQuery 型報表,會使用使用者的 SSO 認證。
  • 針對匯入型報表,不論觸發匯入的用戶為何,都會使用語意模型擁有者的 SSO 認證。

步驟 2:測試單一登錄

移至 測試單一登錄 (SSO) 組態 ,以快速驗證您的設定是否正確設定,並針對常見問題進行疑難解答。

步驟 3:執行 Power BI 報表

當您發佈時,如果您有多個閘道,請選取您為 SSO 設定的閘道。

如需內部部署數據閘道和 DirectQuery 的詳細資訊,請參閱下列資源: