我们能否只使用aspnet标识来保护一个dotnet core 2.0 React App?

时间:2017-12-10 23:27:08

标签: .net-core react-redux asp.net-identity identityserver4

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

环顾四周,我看到很多人都在谈论JWT的使用,并提出像Identity Server或OpenIddict这样的东西来处理这个问题,但我以前只使用过ASP.NET身份来处理安全性。

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

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

2 个答案:

答案 0 :(得分:4)

我会尽力回答你的问题。

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

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

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

基于Cookie的身份验证系统

  • 基于cookie的会话是 StateFull 。因为这里服务器需要跟踪活动会话,而在前端/客户端,会创建一个包含会话标识符的cookie。
  • 您可以使用基于Cookie的身份验证系统保护您的网络API。但是在一个非常有限的范围内,因为基于cookie的系统在本地客户端上运行不好,或者假设你的web api将被其他一些web api使用,

基于令牌的身份验证系统

  • StateLess ,因为服务器不会在此处跟踪发出哪个令牌或哪些用户登录。

  • 此处服务器只需要验证令牌的有效性。因此,基于令牌的方法比基于cokie的方法更为重要。

<强>来源

回答第二个问题

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

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

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

希望以上将有所帮助。

答案 1 :(得分:0)

如果您打算在一个域中使用 React 和 API,并且 SPA 将是 API 的唯一客户端,则可能建议使用基于 cookie 的身份验证和 SameSite Cookie。