简介

已完成

若要在应用中嵌入 Power BI 内容,必须开发应用以获取访问令牌。 身份验证流(和访问令牌)的类型取决于嵌入方案。

注意

若要了解嵌入方案,请完成选择 Power BI 嵌入式分析产品模块。

使用任一方案时,应用必须获取 Azure AD 令牌。 Azure AD 令牌包含用于标识已向 Power BI REST API 授予的权限的声明。 它具有过期时间,通常为一小时。 有效的 Azure AD 令牌必须存在于所有 API 操作中。

使用交互式身份验证流

若要获取“面向你的组织”方案的 Azure AD 令牌,应用使用交互式身份验证流。 交互式身份验证流意味着,Azure AD 可以使用其用户名和密码并(可能)使用多重身份验证 (MFA) 提示用户登录。 Azure AD 还可以提示用户向资源授予更多许可(首次登录应用时必需的)。

注意

当应用启用单一登录 (SSO) 时,用户无需在每次使用时登录。 当用户首次进行身份验证时,身份验证过程会在会话 cookie 中缓存凭据,并且应用可以使用这些缓存的凭据,直到它们过期,默认情况下为 90 天后。

获取后,你的应用应缓存 Azure AD 令牌。 然后,应用将使用它嵌入用户有权使用的 Power BI 内容。

观看以下视频,演示如何使用交互式身份验证流。

你将了解如何在单元 3 中获取 Azure AD 令牌。

使用非交互式身份验证流

若要获取“面向你的客户”方案的 Azure AD 令牌,应用使用非交互式身份验证流。 应用用户不需要拥有 Power BI 帐户,即使这样做,也不会使用它们。 因此,专用 Azure AD 标识(称为“嵌入标识”)使用 Azure AD 进行身份验证。 嵌入标识可以是服务主体或主用户帐户。

非交互式身份验证流也称为“无提示身份验证”。 它尝试以身份验证服务无法提示用户提供其他信息的方式获取 Azure 令牌。 应用用户通过应用进行身份验证(应用可以使用所选的任何身份验证方法)后,应用使用嵌入标识通过非交互式身份验证流获取 Azure AD 令牌。

应用获取 Azure AD 令牌后,它会缓存该令牌,然后使用它生成嵌入令牌。 嵌入令牌表示有关 Power BI 内容以及如何访问它们的事实。

具体而言,嵌入令牌描述:

  • 特定 Power BI 内容的声明。
  • 访问级别,用于设置为查看、创建或编辑。 (创建和编辑级别仅适用于 Power BI 报表。)
  • 令牌生存期,用于确定令牌的到期时间。
  • (可选)用于保存新报表的目标工作区的声明。
  • (可选)一个或多个有效的标识,以便 Power BI 可以强制实施数据权限。

注意

若要了解有效的标识,请完成为 Power BI 嵌入式分析强制实施数据权限模块。

观看以下视频,演示如何使用非交互式身份验证流。

你将了解如何在单元 3 中获取嵌入令牌。

使用服务主体

你的应用可以使用服务主体获取 Azure AD 令牌。 Azure 服务主体是应用使用的安全标识。 它定义 Azure AD 租户中的应用的访问策略和权限,启用在登录期间对应用进行身份验证以及在资源访问期间进行授权等核心功能。 服务主体可以使用应用机密或证书进行身份验证。 建议使用生产应用的证书而不是密钥来保护服务主体,因为前者更安全。

当应用的嵌入标识是服务主体时,Power BI 租户管理员必须首先:

  • 启用服务主体。
  • 注册包含它们的安全组。

下图显示了开发人员设置(在管理门户的租户设置中找到),Power BI 管理员可以在其中允许服务主体使用 Power BI API。

屏幕截图显示启用了服务主体的开发人员设置。

重要

当管理员允许服务主体与 Power BI 一起使用时,应用的 Azure AD 权限将不再生效。 然后,管理员在 Power BI 管理门户中管理应用的权限。

在 Power BI 中,服务主体必须属于工作区“管理员”或“成员”角色才能嵌入工作区内容。 仅新工作区支持服务主体的角色分配,并且不支持个人工作区。

注意

无法使用服务主体登录到 Power BI 服务。

有关详细信息,请参阅:

使用主用户帐户

你的应用可以使用主用户帐户获取 AD 令牌。 主用户帐户是常规 Azure AD 用户。 在 Power BI 中,帐户必须属于工作区“管理员”或“成员”角色才能嵌入工作区内容。 它还必须具有 Power BI Pro 或 Power BI Premium Per User (PPU) 许可证

注意

无法使用主用户帐户嵌入分页报表。

比较嵌入标识类型

建议使用生产应用的服务主体。 它提供了最高安全性,因此,这是 Azure AD 建议的方法。 此外,它还支持更好的自动化和缩放,管理开销更少。 但需要 Power BI 管理员权限进行设置和管理。

可以考虑使用开发或测试应用的主用户帐户。 可以很轻松地完成设置,并且可以登录到 Power BI 服务以帮助解决问题。 但是会产生相关成本,因为需要 Power BI Pro 或 PPU 许可证。 此外,主用户帐户不需要 MFA。

总之,下表对两种嵌入标识类型进行了比较。

项目 服务主体 主用户帐户
Azure AD 对象类型 服务主体 用户
凭据管理 使用具有定期轮换的机密或证书 执行频繁的密码更新
Power BI 租户设置 Power BI 管理员必须允许使用服务主体,并且建议服务主体属于专用安全组 不适用
Power BI REST API 使用情况 不支持某些管理员和数据流操作。 可以为只读管理员 API 启用服务主体身份验证 支持所有操作
Power BI 服务登录 不支持 支持
许可 不是必需 Power BI Pro 或 PPU
Azure AD 建议 建议(尤其适用于生产应用) 不建议(但可能适用于开发或测试应用)
其他信息 不需要 MFA;无法嵌入分页报表