ASP.Net Core下的安全(授权、身份验证、ASP.NET Core Identity)

  通过 ASP.NET Core,开发者可轻松配置和管理其应用的安全性。 ASP.NET Core 的功能包括管理身份验证、授权、数据保护、HTTPS 强制、应用机密、请求防伪保护及 CORS 管理。 通过这些安全功能,可以生成安全可靠的 ASP.NET Core 应用。

  • ASP.NET Core 安全性功能

  ASP.NET Core 提供许多用于保护应用安全的工具和库(包括内置标识提供程序),但也可使用第三方标识服务(如 Facebook、Twitter 或 LinkedIn)。 利用 ASP.NET Core 可以轻松管理应用机密,无需将机密信息暴露在代码中就可存储和使用它们。

  • 身份验证 vs授权

  身份验证是这样一个过程:由用户提供凭据,然后将其与存储在操作系统、数据库、应用或资源中的凭据进行比较。 在授权过程中,如果凭据匹配,则用户身份验证成功,可执行已向其授权的操作。 授权指判断允许用户执行的操作的过程。

  也可以将身份验证理解为进入空间(例如服务器、数据库、应用或资源)的一种方式,而授权是用户可以对该空间(服务器、数据库或应用)内的哪些对象执行哪些操作。

  • 软件中的常见漏洞

  ASP.NET Core 和 EF 提供维护应用安全、预防安全漏洞的功能。 下表中链接的文档详细介绍了在 Web 应用中避免最常见安全漏洞的技术:

 

  授权是指确定用户可执行的操作的过程。 例如,允许管理用户创建文档库、添加文档、编辑文档和删除文档。 使用库的非管理用户仅获得读取文档的权限。

授权与身份验证相互独立。 但是,授权需要一种身份验证机制。 身份验证是认定用户的过程。 身份验证可为当前用户创建一个或多个标识。

 

  • Policy
  • Middleware
  • Custom Attribute

相关资源:Nopcommerce、Orchard项目

  身份验证是确定用户身份的过程。 授权是确定用户是否有权访问资源的过程。 在 ASP.NET Core 中,身份验证由 IAuthenticationService 负责,而它供身份验证中间件使用。 身份验证服务会使用已注册的身份验证处理程序来完成与身份验证相关的操作。 与身份验证相关的操作示例包括:

  • 对用户进行身份验证。
  • 在未经身份验证的用户试图访问受限资源时作出响应。

ASP.NET核心存储库AspNetCore/src/安全/示例文件夹中包含以下身份验证示例:

运行示例

  • 选择分支。 例如: release/3.1
  • 克隆或下载ASP.NET核心存储库
  • 验证已安装与 ASP.NET 核心存储库的克隆相匹配的.NET Core SDK版本。
  • 导航到AspNetCore/src/Security/示例中的示例,然后使用dotnet run运行示例。

https://www.jianshu.com/p/0ed4d820809c

posted @ 2020-02-17 15:53  无聊的蚂蚁  阅读(1568)  评论(0编辑  收藏  举报