c# - ASP.Net Core - 通过 PowerBI 和 Azure AD 访问的 Web API
问题描述
我正在创建一个带有一些 API 的自定义 ASP.Net Corw 3.1 Web 应用程序,其中一个应该可以从 PowerBI 访问。由于 PowerBI 应该通过组织帐户使用,我想配置everyting,以便用户可以使用该帐户。
在后端,我正在按照 Microsoft 文档中的定义设置 OpenIDConnect
services
.AddAuthentication("BasicAuthentication")
.AddScheme<AuthenticationSchemeOptions, BasicAuthenticationHandler>("BasicAuthentication", null)
.AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));
我相应地保护控制器:
[Authorize(AuthenticationSchemes = OpenIdConnectDefaults.AuthenticationScheme)]
[ApiController]
[Route("api/[controller]")]
[ApiExplorerSettings(IgnoreApi = true)]
public class SomeCOntroller : ControllerBase
在 Azure 应用注册中,我还在 Azure Active Directory 中定义了应用:
当我现在通过浏览器导航到 REST API 时,我会相应地重定向到组织登录名,并且可以使用我的帐户,然后导航回 API。
检查 Azure 上的登录,我没有看到来自 PowerBI 的任何请求,只有来自 Web 的请求。我是在做一些根本错误的事情,还是 PowerBI 需要一些特定的逻辑?不幸的是,PowerBI 的错误表单在该主题上没有遇到任何问题,并且由于通过 Web 进行访问,我猜设置也是正确的吗?
解决方案
Web API 的身份验证设置似乎是正确的。但是,测试部分看起来不正确,因为您没有在标头中传递访问令牌。查看使用 Power BI 调用 REST API 和解析 JSON,以获取有关如何从 Power BI 调用 REST API 的教程。
如果您遇到任何问题,请告诉我。
推荐阅读
- java - 数组查找扫描器整数的索引
- python - 用来自另一个数据框的值填充多列
- dart - 是否可以在 Flutter Web 中为域添加前缀?
- python - 如何根据 Django 中的模型实例数填充 CreateView 字段
- python - 在 pandas 中应用函数的替代方法
- firebase - Flutter:在框架模块“firebase_core.FLTFirebasePlugin”中包含非模块化标头
- html - 按钮和视频在 HTML/Bootstrap 部分中不起作用
- binary-data - 量子计算与传统 base10 系统
- svelte - Svelte 有没有办法以非阻塞方式加载 {#each} 元素?
- android - 画中画 打开应用程序的新窗口并显示大量最近的任务