ASP.NET Principais tópicos de segurança

ASP.NET Core permite que os desenvolvedores configurem e gerenciem a segurança. A lista seguinte fornece ligações para artigos sobre o trabalho com segurança no ASP.NET Core:

Esses recursos de segurança permitem que você crie aplicativos ASP.NET Core robustos e seguros.

Para obter Blazor informações de segurança, que complementam ou substituem as orientações apresentadas neste nó, consulte autenticação e autorização no ASP.NET Core Blazor e os outros artigos no nó Segurança e Identity de Blazor.

ASP.NET Principais recursos de segurança

O ASP.NET Core fornece muitas ferramentas e bibliotecas para proteger as aplicações ASP.NET Core, como fornecedores de identidade incorporados e serviços de identidade não da Microsoft, como Facebook, Twitter e LinkedIn. ASP.NET Core fornece várias abordagens para armazenar segredos de aplicativos.

Autenticação vs. Autorização

A autenticação é um processo em que um utilizador fornece credenciais que são comparadas com as credenciais armazenadas num sistema operativo, base de dados, aplicação ou recurso. Quando os dois conjuntos de credenciais coincidem, o utilizador autentica-se com sucesso. Podem então realizar as ações para as quais estão autorizados. O processo de autorização determina as ações que o utilizador pode realizar.

Outra forma de pensar na autenticação é considerá-la como uma forma de entrar num espaço, onde o espaço é um servidor, base de dados, aplicação ou recurso. A autorização define que ações o utilizador pode realizar a que objetos dentro desse espaço (servidor, base de dados ou aplicação).

Vulnerabilidades comuns em software

O ASP.NET Core e o Entity Framework contêm funcionalidades que o ajudam a proteger as suas aplicações e prevenir violações de segurança. A lista de links a seguir leva você à documentação detalhando técnicas para evitar as vulnerabilidades de segurança mais comuns em aplicativos Web:

Há mais vulnerabilidades que você deve estar ciente. Para obter mais informações, consulte os outros artigos na seção Segurança e Identity do sumário.

Fluxos de autenticação seguros

Recomendamos o uso da opção de autenticação mais segura. Para os serviços do Azure, a autenticação mais segura é identidades gerenciadas.

Evite usar a concessão Resource Owner Password Credentials (ROPG):

  • Expõe a palavra-passe do utilizador ao cliente.
  • É um risco de segurança significativo.
  • Use-o apenas quando outros fluxos de autenticação não forem possíveis.

As identidades gerenciadas são uma maneira segura de autenticar serviços sem a necessidade de armazenar credenciais em código, variáveis de ambiente ou arquivos de configuração. As identidades gerenciadas estão disponíveis para os serviços do Azure e podem ser usadas com o SQL do Azure, o Armazenamento do Azure e outros serviços do Azure:

Quando o aplicativo é implantado em um servidor de teste, uma variável de ambiente pode ser usada para definir a cadeia de conexão para um servidor de banco de dados de teste. Para obter mais informações, consulte Configuration. As variáveis de ambiente são normalmente armazenadas em texto simples, não encriptado. Se a máquina ou processo for comprometido, variáveis de ambiente podem estar acessíveis a partes não confiáveis. Recomendamos não usar variáveis de ambiente para armazenar uma cadeia de conexão de produção, pois não é a abordagem mais segura.

Diretrizes de dados de configuração:

  • Nunca armazene senhas ou outros dados confidenciais no código do provedor de configuração ou em arquivos de configuração de texto simples. A ferramenta Secret Manager pode ser usada para armazenar segredos em desenvolvimento.
  • Não use segredos de produção em ambientes de desenvolvimento ou teste.
  • Especifique segredos fora do projeto para que eles não possam ser acidentalmente comprometidos em um repositório de código-fonte.

Para mais informações, consulte:

Para obter informações sobre outros fornecedores de serviços de computação em nuvem, consulte:

Padrões de aplicativos Web corporativos

Para obter orientação sobre como criar um aplicativo ASP.NET Core confiável, seguro, com desempenho, testável e escalável, consulte Padrões de aplicativos Web corporativos. Está disponível um aplicativo Web de exemplo completo com qualidade de produção que implementa os padrões.