powerbi - 如何为服务主体生成访问令牌和嵌入令牌?
问题描述
我想使用服务主体在客户的应用程序中嵌入报告。我能够生成访问令牌,但是当我使用该令牌生成嵌入令牌时,我得到了 403 禁止。
我生成访问令牌如下:
对于嵌入令牌,我遵循以下文档:
https://docs.microsoft.com/en-us/rest/api/power-bi/embedtoken/reports_generatetokenforcreateingroup
你能指导我解决这个问题吗?
解决方案
由于以下原因,用户会收到 403 Forbidden 响应:
- Azure AD 服务主体应用程序未添加到至少具有成员权限的工作区中。
- Power BI 管理门户中未启用服务主体使用 Power BI API 的权限。
请参阅将服务主体应用程序添加到工作区文档以完成上述步骤。
即使在将服务主体应用程序添加到工作区后,嵌入令牌 - 报告 GenerateTokenForCreateInGroup API 也会提供 403 Forbidden 请求,然后执行以下步骤。
为了生成访问令牌,我们需要指定要使用令牌的目标资源(资源 URI)。
下面的屏幕截图显示使用资源 URI 为服务主体身份验证生成访问令牌。
或者,您可以使用 v2.0 端点来生成访问令牌。
有关 v2 端点的更多信息,请参阅这些文档:
注意: 生成嵌入令牌时,传递请求正文,如嵌入令牌 - 报告 GenerateTokenForCreateInGroup中所示。
推荐阅读
- ios - 无法使用配置文件在 Xcode 上运行应用程序
- python - Pyobdc 声称重复索引
- swift - 如何扩展 SCNScene?
- sql - 是否可以使用 MERGE 语句使用本地数据库更新 Azure 中的表?
- .net - MVC 应用程序无法登录到 Dynamics CRMOrganizationServiceProxy 为空错误
- python - 如何从元组列表中获取最新日期?
- html - 如何限制网格单元格宽度并防止其内容溢出?
- sql-server - SQL Server:if to Case 转换
- python - 如何创建一个 python 程序,将字符串保存在 csv 中,但全部保存在该行的一个块中?
- c# - 在 CosmosDB 使用 DocumentClient 的删除操作中,必须为此操作提供 PartitionKey 值