通过使用基于令牌的身份验证(SSO)嵌入报表

适用范围:️ 应用拥有数据 用户拥有数据

基于令牌的标识允许 ISV 使用 Microsoft Entra 访问令牌将客户的标识传递给客户租户中管理的 Azure SQL 数据库

在 ISV 应用中与 Power BI Embedded 集成时,在 Azure SQL 数据库中保留和管理其数据的 ISV 客户可以在租户中保护其数据。

在生成嵌入令牌时,需要通过传递用户的 Microsoft Entra 访问令牌来为 Azure SQL 服务器指定该用户的身份。 然后,使用访问令牌仅从 Azure SQL 提取该用户在特定会话中的相关数据。

显示 ISV 将有效标识传递给 SQL 租户,客户再将嵌入令牌传递回的示意图。

设置基于令牌的标识

基于令牌的标识仅适用于连接到配置为允许Microsoft Entra 身份验证的 Azure SQL 数据库的容量上的 DirectQuery 模型。 语义模型的数据源必须配置为使用最终用户的 OAuth2 凭据,才能使用基于令牌的标识。 了解有关 Microsoft Entra 身份验证适用于 Azure SQL 数据库的信息

  1. 在 Power BI 门户中,选择 语义模型 > “更多选项”(三点) > 设置 > 数据源凭据 > “编辑凭据”。

    Power BI 门户中的数据集设置选项的屏幕截图。

  2. 选中 “OAuth2 ”选项框。

    配置 Azure SQL Server 的屏幕截图。

生成标识令牌

若要为 Azure SQL 创建访问令牌,应用必须在 Azure 门户中 Microsoft Entra 应用注册配置上具有对 Azure SQL 数据库 API 的委派权限,即访问 Azure SQL 数据库和数据仓库权限。

Azure 门户中Microsoft Entra 应用注册配置设置的屏幕截图。 Azure AD v2 终结点 为以下范围的用户进行身份验证和获取令牌: https://database.chinacloudapi.cn/.default

有关帮助,请参阅以下 MSAL 代码示例:

生成嵌入令牌

若要使用基于令牌的标识嵌入报表,请生成包含所需 ISV 用户的令牌基标识的嵌入令牌。 请参阅以下示例,了解如何为不同的方案生成嵌入令牌。

{
  "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.chinacloudapi.cn",
            "database": "YourDataBaseName"
          }
        }
      ]
    }
  ]
}

以下示例显示了一个嵌入的 Power BI 报表,其中包含应用于数据集的 SSO 和 RLS:

嵌入式 Power BI 报告的截图,其中数据集上已应用了 SSO 和 RLS。