有没有办法使用 JWT 和 Azure AD 令牌授权 Net Core 3.0 API

Is there a way to Authorize Net Core 3.0 APIs with JWT and also Azure AD Tokens

我正在创建一个包含身份验证(无身份)的 Web 服务,并且我使用 JWT 保护 APIS(当用户登录或注册时,令牌是 returned电子邮件、密码、姓名等),但我也有一个使用 MSAL 的 Microsoft login/register,我还创建了一个 Azure 应用程序。如何使用 Microsoft 验证登录到 return JWT,或者如何使用 JWT 和 Azure AD 实现 API 授权。

您目前已经注册了一个Azure应用程序,您可以将其设置为客户端应用程序,然后您需要创建一个后端应用程序代表api,然后让用户登录到你的客户端应用程序完成授权并获取访问令牌,最后使用访问令牌调用api应用程序。

操作过程如下:

首先暴露后台应用api,添加客户端应用

接下来,在 'API permissions' 下,让您的前端应用程序访问您的后端 api:

  • 在 'API permissions' 下单击 'Add permission',然后单击 'My APIs' 选项卡。
  • 找到您的后端应用程序和select适当的范围。
  • 点击'Add permissions'。
  • 为您的 API 授予管理员许可。

接下来,您需要使用auth code flow获取访问令牌,这需要您登录用户并获取授权码,然后使用授权码兑换访问令牌。

解析token:

终于可以使用令牌调用api了。

完整的sample供大家参考。