为 PowerBi Embedded 报告 Non-Interactively 向 Azure REST API 进行身份验证时被禁止访问 403

Getting 403 Forbidden when Authenticating Non-Interactively to Azure REST API for PowerBi Embedded Report

我是 Azure ActiveDirectory 和 Power Bi Embedded 的新手。

我有一个 ASP.net WebForms 应用程序,我想在其中显示一些 PowerBi 报告。当我以交互方式进行身份验证时,一切正常,我得到了我的令牌并能够访问我的报告。 (根据找到的优秀示例 on GitHub)这些示例是交互式登录并使用 AcquireTokenByAuthorizationCode() 方法。

但是,我不希望我的用户必须使用任何帐户创建/登录,只想呈现报告供他们使用。

所以我已经用我的 clientID 和 clientSecret 设置了一个 ClientCredential (cc)。因此,我将其与 AquireToken 方法一起使用:

 token = AC.AcquireToken("https://analysis.windows.net/powerbi/api",cc).AccessToken;

这成功地获得了一个令牌,但是,当我将其添加到请求中时 header:

 request.Headers.Add("Authorization", String.Format("Bearer {0}", accessToken.Value));

响应总是失败并出现“403 Forbidden”错误:

 using (var response = request.GetResponse() as System.Net.HttpWebResponse)
    {}

我看过其他例子,很多都是使用异步方法来获取令牌,而我不是。

任何人都可以建议我如何克服这些 403 错误,以便我可以简单地向我的用户提供报告(出于安全考虑,我不想公开发布它们)。

提前致谢!

哎呀,我做错了!安全地嵌入报告不一定需要 Azure 登录。包含下面的第 3 个 link 是因为我的应用程序不是 MVC 而是 WebForms,Mir. Mikami 分享了一个很好的代码示例,我对其进行了调整以帮助我实现我的目标。

对于希望使用 Power Bi Embedded 嵌入报告并验证 non-interactively 的任何其他人,这 3 个 link 帮助我实现了目标。