使用權杖型身分識別嵌入報表 (SSO)

適用於:✅供您的客戶使用的 Power BI 嵌入式分析(App-owns-data)

基於憑證的身份允許 ISV 使用 Microsoft Entra 存取權杖,將客戶身份傳達給客戶租戶管理的 Azure SQL 資料庫。

在 Azure SQL Database 中保留及管理其資料的 ISV 客戶,可以在 ISV 應用程式中與 Power BI Embedded 整合時,確保其租用戶中的資料安全。

產生內嵌權杖時,藉由針對 Azure SQL Server 傳遞該使用者的 Microsoft Entra 存取權杖,在 Azure SQL 中指定使用者的身分識別。 存取權杖接著用於從 Azure SQL 中僅針對該特定工作階段提取該使用者的相關資料。

此示意圖顯示 ISV 將有效身分識別傳遞至 SQL 租戶,以及客戶將嵌入權杖傳回。

Important

App-owns-data 的單一登入限制:

  • 在 App-owns-data 情境(服務主體或主要使用者驗證)中,DirectQuery 資料來源的單點登入(SSO)僅支援 Azure SQL Database。
  • 在用 SSO 產生嵌入權杖時,你必須為IdentityBlob啟用 SSO 的資料來源提供一個。 省略 IdentityBlob 會導致標記產生或查詢執行失敗。

設定權杖型身分識別

權杖型身分識別僅適用於連線至 Azure SQL Database 容量上的 DirectQuery 模型,其設定為允許 Microsoft Entra 驗證。 必須將語意模型的資料來源設定為使用最終使用者的 OAuth2 認證,才能使用基於權杖的身分識別。 深入了解 Azure SQL Database 的 Microsoft Entra 驗證。

在設定基於憑證的身份之前,請先驗證:

  • 你的 DirectQuery 資料來源是 Azure SQL Database(App-owns-data 情境中唯一支援的 SSO 資料來源)。
  • Azure SQL Database設定為 Microsoft Entra 認證。
  • 你有使用者的 Microsoft Entra 存取權杖,可以將其作為 IdentityBlob 傳遞給 Azure SQL 伺服器。
  1. 從 Power BI 入口網站,選取 [語意模型] > [更多選項 (...)] > [設定] > [資料來源認證] > [編輯認證]。

    Power BI 入口網站中資料集設定選項的螢幕擷取畫面。

  2. 勾選 OAuth2 選項框。

    設定 Azure SQL Server 的螢幕擷取畫面。

產生身分識別令牌

若要為 Azure SQL 建立存取權杖,應用程式必須在 Azure 入口網站的 Microsoft Entra 應用程式註冊設定中,對 Azure SQL Database API 具備存取 Azure SQL DB 和資料倉儲的委派權限。

Azure 入口網站中 Microsoft Entra 應用程式註冊組態設定的螢幕擷取畫面。 從 Azure AD v2 端點 為下列範圍的使用者進行驗證並取得令牌:https://database.windows.net/.default

如需說明,請參閱下列 MSAL 程式碼範例:

產生嵌入令牌

若要使用權杖型身分識別內嵌報表,請產生內嵌權杖,其中包含所需 ISV 使用者的權杖型身分識別。 請參閱以下範例,以在不同情境下產生內嵌憑證。

Note

你必須為啟用SSO的每個Azure SQL資料來源包含具有有效datasourceIdentities的identityBlob條目。 若任何支援 SSO 的資料來源缺少其 identityBlob,嵌入憑證產生呼叫將失敗或查詢執行會回傳錯誤。

{
  "datasets": [
    {
      "id": "66ba5010-xxxx-xxxx-xxxx-f2bf0125abeb",
    }
  ],
  "reports": [
    {
      "allowEdit": false,
      "id": "9e6da541-xxxx-xxxx-xxxx-7d9442827cce"
    }
  ],
  "datasourceIdentities": [
    {
      "identityBlob": "eyJ…",
      "datasources": [
        {
          "datasourceType": "Sql",
          "connectionDetails": {
            "server": "YourServerName.database.windows.net",
            "database": "YourDataBaseName"
          }
        }
      ]
    }
  ]
}

下列範例顯示內嵌 Power BI 報表,其中包含已套用至資料集的 SSO 和 RLS:

內嵌 Power BI 報表的螢幕擷取畫面,其中 SSO 和 RLS 已套用至資料集。