ASP.NET Core 安全性主题

通过 ASP.NET Core,开发者可配置和管理安全性。 以下列表提供了指向安全主题的链接:

通过这些安全功能,可以生成安全可靠的 ASP.NET Core 应用。

有关在此节点中添加或取代指导的 Blazor 安全覆盖范围,请参阅 ASP.NET Core Blazor 身份验证和授权以及 Blazor 的“安全和Identity节点”中的其他文章。

ASP.NET Core 安全性功能

ASP.NET Core 提供了许多工具和库来保护 ASP.NET Core 应用,例如内置 identity 提供程序和第三方 identity 服务(如 Facebook、Twitter 和 LinkedIn)。 ASP.NET Core 提供了多种存储应用机密的方法。

身份验证 vs授权

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

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

软件中的常见漏洞

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

还应注意其他漏洞。 有关详细信息,请参阅目录的“安全性和 Identity”部分中的其他文章

安全身份验证流

建议使用最安全的身份验证选项。 对于 Azure 服务,最安全的身份验证是托管标识

避免资源所有者密码凭据授予,因为它:

  • 向客户端公开用户的密码。
  • 存在重大安全风险。
  • 仅当其他身份验证流不可用时,才应使用。

托管标识是对服务进行身份验证的安全方式,无需在代码、环境变量或配置文件中存储凭据。 托管标识可用于 Azure 服务,并可与 Azure SQL、Azure 存储 和其他 Azure 服务一起使用:

将应用部署到测试服务器时,可以使用环境变量向测试数据库服务器设置连接字符串。 有关详细信息,请参阅配置切勿使用环境变量来存储生产连接字符串。

有关详细信息,请参阅:

其他资源