了解如何从 Power BI Embedded 迁移到 Power BI 服务,并利用这些进展在应用中进行嵌入。

Microsoft 最近发布了 Power BI Premium,这是一个基于容量的新许可模型,可提高用户访问、共享和分发内容方式的灵活性。 产品/服务还为 Power BI 服务提高其他可伸缩性和性能。

通过引入 Power BI Premium,Power BI Embedded 和 Power BI 服务开始进行融合以推动在应用中嵌入 Power BI 内容的进展。 这意味着,在嵌入内容时,将拥有一个 API 外围、一组一致的功能以及对最新 Power BI 功能(如仪表板、网关和应用工作区)的访问权限。 展望未来,你将能够从使用 Power BI Desktop 开始,移动到通过 Power BI Premium 实现的部署,这将在 2017 年第二个季度末公开发布。

当前 Power BI Embedded 服务将在聚合产品/服务公开发布后的一段有限时间内继续可用:企业协议客户可在其现有协议到期前使用该服务;通过直接渠道或 CSP 渠道获取 Power BI Embedded 的客户可在 Power BI Premium 公开发布一年内享受该服务。 本文将在以下方面提供指导:如何从 Azure 服务迁移到 Power BI 服务,以及应用程序中会进行哪些更改。

Important:

虽然 Power BI 服务上的迁移具有依赖项,但在使用嵌入令牌时,Power BI 上没有为应用程序的用户提供依赖项。 用户不需要注册 Power BI 来查看应用程序中嵌入的内容。

迁移准备

需要完成一些准备工作才能从 Power BI Embedded Azure 服务迁移到 Power BI 服务。 你将需要一个可用的租户,以及具有 Power BI Pro 许可证的用户。

  1. 请确保你有权访问 Azure Active Directory (Azure AD) 租户。

    你的组织可能已具有当前正用于 Power BI 的可用租户。 如果租户不可用,则需要创建新租户。 你可以使用组织的现有租户。 有关详细信息,可以参阅创建 Azure Active Directory 租户如何获取 Azure Active Directory 租户

  2. 请确保应用“主”帐户具有 Power BI Pro 许可证。

Azure AD 中的帐户

租户中必须有以下帐户。

Note:

这些帐户需要 Power BI Pro 许可证才能使用应用工作区并创建可使用 Pro 功能(如本地数据网关)的内容。

  1. 租户管理员用户。

    建议此用户成为为实现嵌入而创建的所有应用工作区的成员。

  2. 将创建内容的分析师帐户。

    应根据需要将这些用户分配到应用工作区。

  3. 应用程序*主*用户帐户。

    应用程序后端将存储此帐户的凭据,并将其用于获取与 Power BI API 一起使用的 Azure AD 令牌。 此帐户将用于生成应用程序的嵌入令牌。 此帐户必须是为嵌入而创建的应用工作区的管理员。

    Note:

    这只是组织中用于嵌入用途的常规用户帐户。

应用注册和权限

你将需要在 Azure AD 中注册应用程序,并授予某些权限。

注册应用程序

Note:

应使用应用主帐户来注册应用。

需要将应用注册为 Azure AD 租户内的本机 Azure 应用。 可以从 Power BI 应用注册工具注册应用程序,也可以直接在 Azure AD 门户内进行注册。 有关详细信息,请参阅注册客户端应用。 请务必选择“本机应用”作为“应用类型”。

将权限应用到应用程序

除了应用注册页中提供的权限之外,还需要对应用程序启用其他权限。 可以通过 Azure AD 门户或以编程方式完成此操作。

Note:

建议使用应用主帐户执行这些步骤。 它应该可以在 Azure 门户中修改应用权限,而无需管理员权限。 将是应用的所有者。

使用 Azure AD 门户

  1. 浏览到 Azure 门户中的应用注册边栏选项卡,然后选择要用于嵌入的应用。

  2. 在“API 访问权限”下选择“所需权限”。

  3. 选择“Windows Azure Active Directory”并请务必选中“以登录用户身份访问目录”。 选择“保存”。

  4. 在“所需权限”中,选择“Power BI 服务 (Power BI)”。

  5. 选择“委派权限”下的所有权限。 需要逐一选中这些选项才能保存所做的选择。 完成时选择“保存”。

  6. 在“所需权限”中,选择“授予权限”。

    这将代表租户/组织中的所有用户授予应用权限。 如果你不想这样做,将需要以交互方式使用应用程序 ID 登录到 Azure AD 至少一次。

以编程方式应用权限

  1. 需要获取租户中的现有服务主体(用户)。 有关如何执行该操作的信息,请参阅 Get servicePrincipal

    Note:

    你可以调用 Get servicePrincipal API 而无需使用 {id},这将使你获取租户中的所有服务主体。

  2. 使用作为 appId 属性的应用客户端 ID 检查服务主体。

  3. 如果应用缺少服务计划,请新建一个。

    Post https://graph.microsoft.com/beta/servicePrincipals
    Authorization: Bearer ey..qw
    Content-Type: application/json
    {
    "accountEnabled" : true,
    "appId" : "{App_Client_ID}",
    "displayName" : "{App_DisplayName}"
    }
    
  4. 向 Power BI API 授予应用权限

    Post https://graph.microsoft.com/beta/OAuth2PermissionGrants
    Authorization: Bearer ey..qw
    Content-Type: application/json
    { 
    "clientId":"{Service_Plan_ID}",
    "consentType":"AllPrincipals",
    "resourceId":"c78b2585-1df6-41de-95f7-dc5aeb7dc98e",
    "scope":"Dataset.ReadWrite.All Dashboard.Read.All Report.Read.All Group.Read Group.Read.All Content.Create Metadata.View_Any Dataset.Read.All Data.Alter_Any",
    "expiryTime":"2018-03-29T14:35:32.4943409+03:00",
    "startTime":"2017-03-29T14:35:32.4933413+03:00"
    }
    
  5. 向 AAD 授予应用权限

    Post https://graph.microsoft.com/beta/OAuth2PermissionGrants
    Authorization: Bearer ey..qw
    Content-Type: application/json
    { 
    "clientId":"{Service_Plan_ID}",
    "consentType":"AllPrincipals",
    "resourceId":"61e57743-d5cf-41ba-bd1a-2b381390a3f1",
    "scope":"User.Read Directory.AccessAsUser.All",
    "expiryTime":"2018-03-29T14:35:32.4943409+03:00",
    "startTime":"2017-03-29T14:35:32.4933413+03:00"
    }
    

创建应用工作区(必需)

如果应用程序服务多个客户,则可以利用应用工作区以更好地进行隔离。 将在客户之间隔离仪表板和报表。 然后可以使用每个应用工作区的 Power BI 帐户以进一步隔离客户之间的应用程序体验。

Important:

不能使用个人工作区来利用嵌入功能

你将需要具有 Pro 许可证的用户才能在 Power BI 中创建应用工作区。 默认情况下,创建应用工作区的 Power BI 用户将成为该工作区的管理员。

Note:

应用主帐户必须是工作区的管理员。

创建并上传报表

可以使用 Power BI Desktop 创建报表和数据集,然后将这些报表发布到 Power BI 工作区。 如果应用程序服务于多个客户,则建议将报表发布到应用工作区以更好地进行隔离。

Note:

我们将为你提供导入/导出工具来完成此步骤,从而帮助将内容从 Power BI Embedded Azure 服务迁移到 Power BI 服务。 此工具即将推出。

重新生成应用程序

  1. 需要修改应用程序以使用 Power BI REST API 和 powerbi.com 中的报表位置。

  2. 使用应用程序的*主*帐户重新生成 AuthN/AuthZ 身份验证。 可以使用嵌入令牌以允许此用户代表其他用户执行操作。

    Note:

    有关嵌入令牌的详细信息将很快发布。

  3. 将报表从 powerbi.com 嵌入到应用程序。

将用户映射到 Power BI 用户

在应用程序中,将在应用程序中管理的用户映射到应用程序的 Power BI 凭据。 此 Power BI *主*帐户的凭据将存储在应用程序中,并且可用于创建嵌入令牌。

做好生产准备时应执行的操作

准备好迁移到生产环境时,需要执行以下操作。

  1. 购买符合需求的容量。 我们将通过计算器来估算所需的容量大小。

  2. 转到 Power BI 的“管理门户”,在“管理容量”部分,将工作区分配给已购买的容量。 这可通过管理员帐户或具有容量分配权限的用户完成。

    如果使用应用工作区来存储内容,可以编辑应用工作区,并在“高级”下将其分配给 Premium 容量。

  3. 将更新的应用程序部署到生产环境,并开始从 Power BI 服务嵌入报表。

迁移后

应在 Azure 中执行一些清理操作。

  • 删除 Azure Power BI Embedded 服务中部署的解决方案的所有工作区。
  • 删除 Azure 中存在的任何工作区集合。

后续步骤

使用 Power BI 嵌入
Power BI Premium 公告
JavaScript API Git 存储库
Power BI C# Git 存储库
JavaScript 嵌入示例
Power BI Premium 白皮书

更多问题? 尝试咨询 Power BI 社区