我们能否只使用aspnet标识来保护dotnet核心2.0 React App?

Ale*_*ert 19 asp.net-identity .net-core react-redux identityserver4

我正在使用Renet和Redux在dotnet core 2.0之上构建SPA.不幸的是,vs2017模板不包括身份验证/授权.

在环顾四周时,我看到很多人都在谈论使用JWT并建议使用Identity Server或OpenIddict来处理这个问题,但我之前只使用过ASP.NET身份来处理安全性.

我的问题是,是否有可能通过ASP.NET单独使用身份确保反应应用程序,如果是这样,为什么这么多人直接跳到JWT作为保护SPA应用程序的解决方案?

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

Tri*_*mar 5

我会尽量回答你的问题。

Q.1. 是否可以单独使用 aspnet 身份来保护 React 应用程序,如果是这样,为什么这么多人直接跳到 JWT 作为保护 SPA 应用程序的解决方案?

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

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

基于cookie的认证系统

  • 基于 cookie 的会话是StateFull。因为这里服务器需要跟踪活动会话,而在前端/客户端上创建了一个 cookie 来保存会话标识符。
  • 您可以使用基于 cookie 的身份验证系统来保护您的 web api。但在非常有限的范围内,因为基于 cookie 的系统在本机客户端上无法正常工作,或者假设您的 web api 将被其他 web api 使用,

基于令牌的认证系统

  • 它是无状态的,因为服务器不会在此处记录颁发了哪些令牌或哪些用户已登录。

  • 这里服务器只需要验证令牌的有效性。所以基于令牌的方法比基于 cokie 的方法更简单。

来源

回答第二个问题

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

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

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

希望以上会有所帮助。