对PowerBi嵌入式报表的Azure REST API进行非交互身份验证时禁止获取403

对PowerBi嵌入式报表的Azure REST API进行非交互身份验证时禁止获取403,azure,authentication,powerbi,non-interactive,Azure,Authentication,Powerbi,Non Interactive,我对Azure ActiveDirectory和Power Bi Embedded都是新手 我有一个ASP.net WebForms应用程序,我想在其中显示一些PowerBi报告。当我以交互方式进行身份验证时,一切正常,我获得了令牌并能够访问我的报告。(遵循找到的优秀示例)这些示例是交互式登录,并使用AcquireTokenByAuthorizationCode()方法 但是,我不希望我的用户必须使用任何帐户创建/登录,只希望呈现报告供他们使用 所以我用我的clientID和clientSecr

我对Azure ActiveDirectory和Power Bi Embedded都是新手

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

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

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

 token = AC.AcquireToken("https://analysis.windows.net/powerbi/api",cc).AccessToken;
但是,当我将令牌添加到请求头时,这会成功地为我获取令牌:

 request.Headers.Add("Authorization", String.Format("Bearer {0}", accessToken.Value));
响应总是失败,在以下位置出现“403禁止”错误:

 using (var response = request.GetResponse() as System.Net.HttpWebResponse)
    {}
我看过其他的例子,很多都是使用异步方法来获取令牌,而我不是

有谁能建议我如何克服这403个错误,这样我就可以简单地向我的用户提供报告(出于安全考虑,我不想公开发布它们)


提前谢谢你

啊,我做错了!安全嵌入报表不一定需要Azure登录。下面的第三个链接包括在内,因为我的应用程序不是MVC而是WebForms,Mikami先生分享了一个很好的代码示例,我对它进行了调整,以帮助我实现我的目标

对于任何希望使用PowerBIEmbedded嵌入报表并以非交互方式进行身份验证的人,这3个链接帮助我实现了这一目标


感谢您的快速回复。我们已使用Power BI online将报告和数据集添加到公司工作区。我不知道如何获取应用程序中使用的访问密钥。它们必须保存在Azure中的某个位置,但我不确定保存在何处。可能是您尚未在Azure中完成PowerBi工作区集合的配置。创建后,在工作区的“设置”下。在底部,您将看到一个名为“访问密钥”(保密)的部分。除此之外,我还需要工作空间集合名称、工作空间ID来获取嵌入令牌。将报表嵌入到应用程序中所需的全部内容就是使用此令牌和从报表中获取的embedURL。下面是我在下面发布的3个链接,它们会让你到达你想去的地方。