共用方式為


將多客戶應用程式遷移至服務主體配置檔模型

本文說明如何將Power BI內嵌式分析多客戶應用程式移轉至服務主體配置檔模型,以取得更好的延展性。

服務主體配置檔 可讓您更輕鬆地管理 Power BI 中的組織內容,並更有效率地使用您的容量。

注意

本文的目標是已經有一個應用程式,可支援來自單一 Power BI 租使用者之多個客戶的組織。

並非所有應用程式都受益於服務主體模型。 例如,下列應用程式不應該移轉:

  • 維護一個服務主體且具有少量物件的小型應用程式。
  • 每個客戶使用一個多個服務主體的應用程式

必要條件

開始移轉之前,請務必先閱讀 服務主體配置檔

您也必須執行下列步驟:

  • 遵循使用服務主體內嵌 Power BI 內容的前三個步驟來設定服務主體。
  • 從 Power BI 租使用者系統管理員帳戶中, 啟用在租使用者中建立配置檔。

管理入口網站切換的螢幕快照。

移轉至服務主體配置檔

移轉至服務主體設定檔牽涉到下列步驟:

  1. 建立配置檔,每個客戶一個配置檔。
  2. 組織您的工作區
  3. 將應用程式程式代碼變更為使用配置檔
  4. 使用設定檔模型測試您的應用程式。
  5. 清除備援許可權

建立設定檔 (必要)

使用 配置檔 REST API 搭配您建立的服務主體,為每個客戶建立一個配置檔。

最好先儲存每個數據客戶識別碼的對應,並在資料庫中使用對應的配置檔標識碼。 您稍後需要此對應,才能使用租使用者配置檔進行 API 呼叫。

最佳化您的工作區

管理數據最簡單的方式是維護每個客戶的一個工作區。 如果您的應用程式已經使用此模型,您就不需要建立新的工作區。 不過,您仍然需要使用 [新增群組使用者 API],為每個配置檔提供對應工作區的管理員存取權。

如果您沒有每位客戶一個工作區,請使用對應的配置檔來呼叫 建立群組使用者 API ,為每個客戶建立新的工作區。

在工作區中組織專案

您現在應該會有一個設定檔和每個客戶的工作區。 如果您在上一個步驟中建立新的工作區,則必須將專案(例如報表和語意模型)匯入這些工作區。 您匯入的語意模型取決於您目前的解決方案:

  • 如果您的應用程式針對每個客戶使用不同的語意模型,語意模型設計可以正常運作。

  • 如果您的應用程式使用具有數據列層級安全性的一個語意模型(RLS)為不同的客戶提供不同的數據,您可以為每個客戶建立個別的語意模型,並使用本文中所述的配置檔來獲得更好的延展性。

  • 使用設定檔和個別數據源克服延展性限制之後,您可以透過搭配配置檔使用 RLS 取得更多數據區隔。

    • 如果您依賴 Dynamic RLS,則會在 DAX 函式 UserName()中傳回設定檔的名稱。
    • 如果您在產生內嵌令牌時使用靜態 RLS 並覆寫角色,您可以繼續這樣做。

一旦項目準備就緒,請將它們匯入相關的工作區。 若要自動化程式,請考慮使用 匯入 API

變更應用程式程式代碼以使用配置檔

當您擁有具有相關工作區之系統管理員存取權的配置檔,以及具有對應的資料庫,其中顯示哪一個配置檔代表哪個客戶,您就可以進行必要的程式碼變更。 我們建議您並排保留兩個程式碼流程,並逐漸向您的客戶公開配置檔程式代碼流程。

進行下列程式代碼變更:

  • 授權碼變更

    • 如果您在 Microsoft Entra ID 應用程式中使用主要使用者,請變更取得令牌碼。 閱讀 使用服務主體 進行內嵌,以瞭解如何建立僅限應用程式的 Microsoft Entra 令牌。
    • 如果您使用 服務主體,而且您已為配置檔建立新的服務主體 ,請調整程式碼以使用正確的服務主體標識碼和秘密。
  • 管理程式代碼變更

    某些應用程式有管理程序代碼,可自動在註冊時將新客戶上線。 管理程式代碼通常會使用Power BI REST API來建立工作區並匯入內容。 此程式代碼大部分應該維持不變,但您可能需要調整下列詳細數據:

    • 每次建立新的客戶租使用者時,請建立新的服務配置檔,成為該租使用者的工作區建立者和系統管理員。
    • 如果您決定重新組織 Power BI 內容,請編輯程式代碼以反映變更。
  • 內嵌令牌程式代碼變更

    取代 API 呼叫端。 請確定配置檔會呼叫 GenerateToken API ,因為在配置檔模型中,只有特定配置檔可以存取客戶的內容。

Validate

最好先徹底測試您的應用程式,再將其移至配置檔模型。 即使 SaaS 應用程式程式代碼中有 Bug,報表仍可能會載入,因為您並未刪除工作區上較舊的許可權。

移轉後清除

既然您已完成移轉並驗證結果,請移除不再需要的內容。

  • 清除程式代碼:您可能想要停用舊的程式代碼路徑,以確保您只執行依賴配置檔的新程序代碼。
  • 清除 Power BI 中的工作區和許可權:如果您已建立新的工作區,您可以刪除不再使用的舊工作區。 如果您重複使用相同的工作區,您可能會想要刪除工作區上較舊的許可權(例如 主要用戶 權力)。

更多問題嗎? 嘗試在 Power BI 社群提問