嵌入式分析访问令牌

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

使用 Power BI 内容(例如报表、仪表板和磁贴)需要访问令牌。 此令牌可以是 Microsoft Entra 令牌和/或嵌入令牌,具体取决于你的解决方案。

在“为客户嵌入”解决方案中,应用程序生成一个嵌入令牌,用于授予 Web 用户对 Power BI 内容的访问权限。

注意

使用“为客户嵌入”解决方案时,可以使用任何身份验证方法来允许对 Web 应用的访问。

在“为组织嵌入”解决方案中,Web 应用用户使用自己的凭据对 Microsoft Entra ID 进行身份验证。 你的客户有权访问他们在 Power BI 服务上有权访问的 Power BI 内容。

Microsoft Entra 令牌

对于“为客户嵌入”和“为组织嵌入”这两种解决方案,都需要 Microsoft Entra 令牌。 所有 REST API 操作都需要 Microsoft Entra 令牌,此令牌将在一小时后过期。

  • 在“为客户嵌入”解决方案中,Microsoft Entra 令牌用于生成嵌入令牌

  • 在“为组织嵌入”解决方案中,Microsoft Entra 令牌用于访问 Power BI。

可通过以下方式之一获取 Microsoft Entra 令牌:

嵌入令牌

当你使用“为客户嵌入”解决方案时,Web 应用需要知道用户可以访问哪些 Power BI 内容。 使用嵌入令牌 REST API 生成嵌入令牌,该令牌指定以下信息:

  • Web 应用用户可以访问的内容

  • Web 应用用户的访问权限级别(查看、创建或编辑)

有关详细信息,请参阅生成嵌入令牌时的注意事项

身份验证流

本部分介绍适用于“为客户嵌入”和“为组织嵌入”解决方案的不同身份验证流程。

“为客户嵌入”解决方案使用非交互式身份验证流程。 在“为客户嵌入”解决方案中,用户无需登录 Microsoft Entra ID 即可访问 Power BI。 相反,Web 应用使用保留的 Microsoft Entra 标识对 Microsoft Entra ID 进行身份验证并生成嵌入令牌。 保留标识可以是服务主体或主用户:

  • 服务主体:Web 应用使用 Microsoft Entra 服务主体对象对 Microsoft Entra ID 进行身份验证,并获取仅限应用的 Microsoft Entra 令牌。 Microsoft Entra ID 建议使用这种仅限应用的身份验证方法。

    使用服务主体时,需要在 Power BI 服务的“管理”设置中启用 Power BI API 访问权限。 启用访问权限允许 Web 应用访问 Power BI REST API。 若要对某个工作区使用 API 操作,服务主体需要是该工作区的成员或管理员。

  • 主用户:Web 应用使用用户帐户对 Microsoft Entra ID 进行身份验证,并获取 Microsoft Entra 令牌。 主用户帐户需要具备 Power BI ProPremium Per User (PPU) 许可证。

    使用主用户帐户时,需定义应用的委托权限(也称为范围)。 使用 Power BI REST API 时,主用户或租户管理员必须同意使用这些权限。

对 Microsoft Entra ID 成功进行身份验证后,Web 应用将生成嵌入令牌,使其用户能够访问特定的 Power BI 内容。

注意

  • 若要使用“为客户嵌入”解决方案进行嵌入,需要具有 A、EM 或 P SKU 的容量。
  • 若要迁移到生产环境,则需要具有容量。

下图显示了适用于“为客户嵌入”解决方案的身份验证流程。

“为客户嵌入”Power BI 嵌入式分析解决方案中的身份验证流程图。

  1. Web 应用用户使用身份验证方法对 Web 应用进行身份验证。

  2. Web 应用使用服务主体或主用户对 Microsoft Entra ID 进行身份验证。

  3. Web 应用从 Microsoft Entra ID 获取 Microsoft Entra 令牌,并使用它来访问 Power BI REST API。 你选择的身份验证方法授予对 Power BI REST API 的访问权限,具体根据身份验证方法是服务主体还是主用户而定。

  4. Web 应用调用嵌入令牌 REST API 操作并请求嵌入令牌。 嵌入令牌指定可嵌入的 Power BI 内容。

  5. REST API 将嵌入令牌返回到 Web 应用。

  6. Web 应用将嵌入令牌传递给用户的 Web 浏览器。

  7. Web 应用用户使用嵌入令牌来访问 Power BI。

更多疑问? 尝试在 Power BI 社区中获取信息