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

时间:2021-01-19 22:33:56

标签: azure jwt asp.net-core-3.1 azure-ad-graph-api msal

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

1 个答案:

答案 0 :(得分:0)

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

操作流程如下:

首先暴露后端应用的api,并添加客户端应用。

enter image description here

接下来,在“API 权限”下,授予前端应用程序访问后端 api 的权限:

  • 在“API 权限”下点击“添加权限”,然后点击“我的 API”标签。
  • 找到您的后端应用程序并选择适当的范围。
  • 点击“添加权限”。
  • 为您的 API 授予管理员许可。

enter image description here

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

>

enter image description here

解析token:

enter image description here

终于可以使用token调用api了。

完整的 sample 供您参考。