首页 > 解决方案 > 如何为服务主体生成访问令牌和嵌入令牌?

问题描述

我想使用服务主体在客户的应用程序中嵌入报告。我能够生成访问令牌,但是当我使用该令牌生成嵌入令牌时,我得到了 403 禁止。

我生成访问令牌如下:

在此处输入图像描述

对于嵌入令牌,我遵循以下文档:

https://docs.microsoft.com/en-us/rest/api/power-bi/embedtoken/reports_generatetokenforcreateingroup

你能指导我解决这个问题吗?

标签: powerbipowerbi-embedded

解决方案


由于以下原因,用户会收到 403 Forbidden 响应:

  • Azure AD 服务主体应用程序未添加到至少具有成员权限的工作区中。
  • Power BI 管理门户中未启用服务主体使用 Power BI API 的权限。

请参阅将服务主体应用程序添加到工作区文档以完成上述步骤。

即使在将服务主体应用程序添加到工作区后,嵌入令牌 - 报告 GenerateTokenForCreateInGroup API 也会提供 403 Forbidden 请求,然后执行以下步骤。

为了生成访问令牌,我们需要指定要使用令牌的目标资源(资源 URI)。

下面的屏幕截图显示使用资源 URI 为服务主体身份验证生成访问令牌。 使用 v1 端点生成访问令牌

或者,您可以使用 v2.0 端点来生成访问令牌。

请参阅下面的屏幕截图以使用 v2.0 端点: 使用 v2 端点生成访问令牌

响应中的访问令牌可进一步用于生成嵌入令牌,如下所示: 生成嵌入令牌

有关 v2 端点的更多信息,请参阅这些文档:

注意: 生成嵌入令牌时,传递请求正文,如嵌入令牌 - 报告 GenerateTokenForCreateInGroup中所示。


推荐阅读