在 ASP. NET Core 中分离前端和后端服务身份验证



我为我的 Web 应用程序创建了两个单独的项目:

  • 一个实现通常的 REST API 的 Web API,我称之为 后端
  • 一个剃须刀片页面网络应用程序,这是我的前端

(基本上遵循什么 Jeffrey T. Fritz在他的8小时演示中做到了,因为它看起来像一个分离良好的架构) 这意味着两者都在服务器端运行。我已经在我的前端添加了"个人用户"身份验证选项,该选项创建了一个存储用户数据的数据库,我可以简单地根据那里的登录名授权页面。据我了解,这个身份验证选项基本上意味着前端在其数据库中管理自己的一组用户。

我缺少的是使用相同的授权保护该 Web API,因此人们将无法匿名使用该 API。怎么能做到这一点呢?如果我想切换到基于 Azure 的身份验证,解决方案会有所不同吗?

我想前端必须将一些与用户相关的数据附加到请求中,然后后端会以某种方式验证这一点。(但我无法想象如果它不真正了解身份验证服务,也许它必须是一个双方都可以访问的独立实体?在这种情况下,我应该跳过我所拥有的并直接转到 Azure 吗?

注意:我对安全性(以及整个 Web 应用程序)相当陌生。

为了安全起见,可能值得看看 JWT 代币。它是保护Web应用程序的一种非常标准的,众所周知的模式/方法。以下是带有示例的更"完整"的描述:https://garywoodfine.com/asp-net-core-2-2-jwt-authentication-tutorial/

您将能够在一个位置设置安全性,并使用它来对两个应用程序进行身份验证

最新更新