使用ASP.NET Core 2.0保护API和Web客户端的最佳方法

时间:2018-07-19 07:25:11

标签: c# asp.net api asp.net-core-2.0 openid

我有一个相对较小的项目。我之前已经作为不同的独立项目开发了安全API和Web客户端,这是第一次在同一解决方案中使用多个项目,目前看起来像这样:

  • CityGuide.API
    • 存储库,实体框架和所有逻辑。
    • 将由CityGuide.Client和其他客户端(如Android应用)使用。
  • CityGuide.Client
    • 剃须刀页面和控制器
    • 具有HttpClient服务以连接到API
  • CityGuide.Model
    • 具有两个项目之间的共享模型

我已经看到了许多保护API的方法,例如使用身份服务器(例如openiddictidentityServer4)。我的项目不会被很多用户使用,只有少于10个用户具有不同角色,例如管理员,主持人,也许还有一些编辑器。

诸如身份服务器之类的方法对于该项目而言要复杂得多。我知道身份服务器使它变得安全,但是它增加了许多我不需要的东西。我想要的只是API项目中的身份验证和授权逻辑-使用asp.net身份-,并且Android和Web应用程序都应具有某种令牌(例如jwtBearer)才能与api并访问资源。

我仍在学习像OAuth2这样的安全协议,但是这种方法安全吗?以及我应该如何在Web客户端中实现令牌认证?我应该将其存储在Cookie中,还是应将其存储在后端并随每个httpClient请求一起发送?有哪些不同的方法?我应该回去使用身份服务器吗?

0 个答案:

没有答案