Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
- Autenticação
- Autorização
- Proteção de Dados
- Imposição de HTTPS
- Armazenamento seguro de segredos de aplicativos em desenvolvimento
- de prevenção de XSRF/CSRF
- de compartilhamento de recursos entre origens (CORS)
- ataques XSS (Cross-Site Scripting)
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:
- ataques XSS (Cross-Site Scripting)
- Consultas SQL > ataques de injeção de SQL
- ataques de falsificação de solicitação entre sites (XSRF/CSRF)
- Ataques de redirecionamento aberto
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:
- Identidades Geridas no Microsoft Entra para SQL do Azure
- identidades gerenciadas para o Serviço de Aplicativo e o Funções do Azure
- Fluxos de autenticação segura
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:
- Recomendações de práticas recomendadas de identidade gerenciada
- Conectar-se do seu aplicativo a recursos sem necessidade de manipular credenciais no seu código
- serviços do Azure que podem usar identidades gerenciadas para acessar outros serviços
- Melhores Práticas Atuais de Segurança do IETF OAuth 2.0 (Secção 2.4. Concessão de Credenciais de Senha para o Proprietário do Recurso
Para obter informações sobre outros fornecedores de serviços de computação em nuvem, consulte:
- AWS (Amazon Web Services): Serviço de Gestão de Chaves AWS (KMS)
- Visão geral do Google Cloud Key Management Service
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.
Conteúdo relacionado
- Introdução ao ASP.NET Core e ao Identity
- Ativar a geração de códigos QR para autenticação TOTP
- Identity
- Soluções de gerenciamento de Identity para aplicativos Web .NET