Security and identity
Segurança é uma das principais preocupações de qualquer aplicação ou API web moderna. É importante manter os seus usuarios ou os dados de seus clientes seguros e fora do alcance dos invasores. Este é um tópico muito abrangente, envolvendo itens como:
Remover os dados sensiveis de entrada para evitar ataques de injeção de SQL
Prevenção de ataques cross-domain (CSRF) nas paginas web
Utilização de HTTPS (criptografia de conexão) para que os dados não possam ser interceptados enquanto trafegam pela Internet
Disponibilizar aos usuários uma maneira de autenticar com segurança, utilizando uma senha ou qualquer outra credencial.
Criação de fluxos de autenticação multifator, de redefinição de senha e de recuperação de conta
ASP.NET Core pode ajudar a tornar tudo isso mais fácil de implementar. Os dois primeiros (proteção contra injeção de SQL e ataques cross-domain) já estão incorporados e você pode adicionar algumas linhas de código para habilitar o suporte a HTTPS. Este capítulo focará principalmente nos aspectos de identity da segurança: manipulação de contas de usuário, autenticação (logging in) de seus usuários com segurança e tomada de decisões de autorização após a autenticação.
Autenticação e autorização são ideias distintas que são frequentemente confundidas. Autenticação lida com o fato de um usuário estar logado, enquanto autorização lida com o que ele tem permissão para fazer depois de fazer login. Você pode pensar na autenticação utilizando a seguinte pergunta: "Eu conheço este usuário?", e para a autorização seria "Este usuário tem permissão para fazer X?
O modelo MVC + Individual Authentication que você usou para estruturar o projeto inclui várias classes baseadas no ASP.NET Core Identity, um sistema de autenticação e identidade que faz parte do ASP.NET Core. Sem nenhuma configuração a mais, isto já adiciona a capacidade de efetuar login utilizando email e senha.
O que é ASP.NET Core Identity?
O ASP.NET Core Identity é o sistema de identidade fornecido com o ASP.NET Core. Como tudo no ecossistema do ASP.NET Core, é um conjunto de pacotes NuGet que podem ser instalados em qualquer projeto (e já estão incluídos se você usar o modelo padrão).
O ASP.NET Core Identity cuida do armazenamento de contas de usuário, hashing e armazenamento de senhas e gerenciamento de funções (roles) para usuários. Ele suporta login por e-mail/senha, autenticação de múltiplos fatores, login social com provedores como Google e Facebook, bem como conexão a outros serviços usando protocolos como OAuth 2.0 e OpenID Connect.
As views Register e Login fornecidas com o modelo MVC + Individual Authentication já aproveitam o ASP.NET Core Identity e já funcionam! Tente registrar-se para uma conta e fazer login.
Last updated
Was this helpful?