【问题标题】:How do I secure a Web API with Azure AD B2C如何使用 Azure AD B2C 保护 Web API
【发布时间】:2020-10-10 22:03:35
【问题描述】:

我有一个 Angular 应用程序和一个使用 .NET Core 构建的单独的 Web API 解决方案。我已成功设置 Azure AD B2C 身份验证。我能够登录到角度应用程序。但是,我想保护我的 Web API 调用之一。即 http://localhost/Profile/GetProfile。问题是即使没有登录我也能成功查询到这个url。

我在 github 中使用了来自 sample application 的代码,奇怪的是,当我尝试从我的 ClientApp 进行 api 调用时,我得到 401 未授权。但是,我能够在新选项卡(在我的应用程序之外)中成功打开该 url。我试图达到相反的效果。即它应该来自浏览器的 401,但来自我的 ClientApp 的 200。我做错了什么?

顺便说一句,示例应用程序在尝试导航到待办事项菜单项时会引发未处理的异常。

【问题讨论】:

  • 我有样品工作。但是我自己的应用程序仍然存在 401 问题。

标签: msal msal.js azure-ad-b2b


【解决方案1】:

问题是即使在 未登录。

这是因为你登录成功后缓存还在。一旦你使用了浏览器隐私模式,你需要重新登录。

下面的这些屏幕截图是您想要实现的吗?您可以解码this中的令牌。请求令牌是否成功与api端点不匹配。如果是,请检查您的客户端应用程序(API perssions)和服务器应用程序(公开API)。

  1. 401 来自浏览器

来自我的 ClientApp 的 2.200。(这是一个 microsoft graph me/endpoint 演示。)

【讨论】:

  • 注销、清除缓存和以私有模式运行后的结果相同。
  • 我添加了示例应用程序抛出的未处理异常的屏幕截图。
猜你喜欢
  • 2020-02-25
  • 1970-01-01
  • 2021-06-11
  • 1970-01-01
  • 2020-02-26
  • 1970-01-01
  • 2020-11-23
  • 1970-01-01
  • 2019-05-30
相关资源
最近更新 更多