我们能否仅通过aspnet身份验证来保护dotnet core 2.0 React应用程序?

21
我正在使用 React 和 Redux 构建 SPA,基于 dotnet core 2.0。不幸的是,vs2017 的模板不包括身份验证/授权。
在查找中,我看到很多人谈论 JWT 的使用,并建议使用 Identity Server 或 OpenIddict 来处理此问题,但我以前只使用过 ASP.NET identity 来处理安全性。
我的问题是,是否可能仅使用 ASP.NET identity 来确保 React 应用程序的安全性?如果可以,为什么许多人直接使用 JWT 作为保护 SPA 应用程序的解决方案?
令牌身份验证是唯一适用于 SPA 应用程序的方法吗,还是我可以使用基于 Cookie 的身份验证呢?

当然可以,参见 https://forums.asp.net/t/2113140.aspx?Identity+Login+using+Ajax+MVC。使用JWT或OAuth2或cookies,这完全取决于您要满足的用例。因此,不一定要使用JWT,但您需要根据自己的需求来决定使用什么。如果您只有一个SPA,则任何cookie或JWT都可以使用。 - Tarun Lalwani
我认为以下链接能够完整解决你所需的问题:https://www.pointblankdevelopment.com.au/blog/135/react-redux-with-aspnet-core-20-login-registration-tutorial-example 以及 https://auth0.com/blog/developing-web-apps-with-asp-dot-net-core-2-dot-0-and-react-part-1/ 如果有帮助,请告诉我。 - Maytham Fahmi
2个回答

5

我将尝试回答您的问题。

问题1:使用aspnet身份验证是否可以保护react应用程序?如果可以,为什么许多人直接使用JWT来保护SPA应用程序?

问题2:基于令牌的身份验证是唯一适用于SPA应用程序的方法吗?还是我可以使用基于Cookie的身份验证?

回答第一个问题(这个问题与基于Cookie和基于令牌的身份验证方法之间的区别有关)

基于Cookie的身份验证系统

  • 基于Cookie的会话是有状态的。因为服务器需要跟踪活动会话,而在前端/客户端上创建了一个Cookie,其中包含会话标识符。
  • 您可以使用基于Cookie的身份验证系统来保护Web API,但范围非常有限,因为基于Cookie的系统在本机客户端或者当您的Web API将被其他Web API使用时无法很好地工作。

基于令牌的身份验证系统

  • 它是无状态的,因为服务器不会跟踪发出的令牌或哪些用户已登录。

  • 在这里,服务器只需要验证令牌的有效性。因此,基于令牌的方法比基于Cookie的方法更加解耦。

来源

回答第二个问题

是的,您可以使用OWIN Cookie身份验证中间件在SPA中实现基于Cookie的身份验证。

您可以在以下链接中找到有关它的更多信息。

https://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer/

希望以上内容能够帮到您。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接