在javascript前端还是在MVC后端进行身份验证?



我正在尝试在以下体系结构中配置身份验证:

  1. 一个 REST Web API,在 asp.net 核心中完成
  2. 一个MVC客户端,其中"视图"实际上是一个单页应用程序(vue.js)。作为参考,我正在使用这个模板:TrilonIO

我想使用身份+身份服务器。

根据我的理解,我的 api 是一种受保护的资源:为了访问它,用户必须在身份服务器上登录并获取令牌。

我的 MVC 应用是身份服务器的"客户端"之一。现在,这就是我感到困惑的地方:

我是否在 mvc 应用上实现身份验证,以便主索引控制器受到保护?然后,为了"加载"spa,用户必须在身份服务器上进行身份验证,获取令牌,然后可以加载?

还是我忽略了从 mvc 端实现任何身份验证,而只使用 oidc 客户端从浏览器端实现身份验证?

如果我在 mvc 路由上实现身份验证,那么基本上用户进行身份验证两次:首先,您进行身份验证是为了访问应用程序中的视图。访问水疗中心后,需要进行身份验证才能访问 Web API。一个"登录"就足够了吗?如何?令牌的配置不会有所不同吗?

如果我只在浏览器中进行身份验证来访问资源,那么我的应用程序是否"不安全"?

任何见解将不胜感激;我绝对是新手。

提前谢谢你!

您的应用程序需要受到保护。

如果您的前端(例如浏览器)通过某些第三方执行身份验证,则需要从前端通知 web-API 或服务器端应用程序(如果您使用的是 asp.net mvc 之类的东西)。 然后,web-api 将使用令牌与第三方进行确认,并可能提供一些额外的数据,以验证身份验证。 您甚至可以通过 web-api 在服务器上使用自定义身份验证来执行此步骤。

这将适用于身份验证的情况,我们现在在服务器上有一个表示经过身份验证的用户的令牌。

每次回调 web-api/应用程序都会包含一些令牌,Web api/应用程序使用这些令牌来查看您是否有权访问特定功能。

这意味着检查/注册身份验证和令牌的位将使用另一种机制,甚至是同一第三方(如果它支持授权)来获得授权。 我喜欢使用表示权限uri,然后将过滤器应用于每个 web-api 方法,以检查收到的令牌是否具有授权访问权限。

最新更新