Autenticação, autorização e segurança no front-end

Autenticação, autorização e segurança no front-end
Vinicios Neves
Vinicios Neves

Compartilhe

Segurança é um assunto super importante e a responsabilidade não é só do back-end.

Mas muitas vezes assuntos como autenticação, autorização e segurança se confundem. Então vamos percorrer esses tópicos e entender qual é o conceito por trás de cada um?

A autenticação está diretamente relacionada ao ato de confirmar se uma pessoa é realmente quem ela diz que é. Quando falamos de sistemas web, uma combinação de nome de usuário e senha que serão utilizados para confirmar a nossa identidade.

Banner promocional da Alura, com um design futurista em tons de azul, apresentando o texto

Se essas informações baterem com os dados que foram armazenados previamente, seguimos com o fluxo normal da aplicação. Como o site da Alura usa, por exemplo:

Formulário de autenticação do site da Alura com dois campos: e-mail e senha e três botões: entrar, entrar com o facebook e entrar com google.

Se você quiser se aprofundar mais no assunto, vou listar aqui 4 métodos de autenticação:

  • Autenticação multi-fator (multi factors authentication)

Aqui, além da combinação normal de usuário e senha, temos de informar um código adicional. Pode chegar por SMS, e-mail, por exemplo. Ou até mesmo podemos utilizar um aplicativo autenticador.

  • Baseado em certificado

Nesse cenário, utilizamos um certificado digital emitido por uma entidade certificadora homologada. Alguns sistemas do Governo utilizam esse método, principalmente para autenticar pessoas jurídicas (empresa).

  • Autenticação biométrica

No dia a dia, utilizamos a autenticação do próprio celular para nos autenticarmos: seja pela digital, pela retina, pela face.

  • Autenticação baseada em token

Essa é bem comum, quando se trata de autenticação de APIs. Existem vários tipos de tokens, e nesse link você encontra um artigo mega bacana do Neilton sobre Json Web Tokens.

A primeira coisa que você precisa confirmar é que você é quem você diz que é (usuário e senha). Uma vez que você foi autenticado(a), um outro processo é garantir o seu nível de acesso:

Bom, vamos pensar numa cafeteria. Se você é barista, não precisa ter acesso ao financeiro. Se você é do setor de compras, não precisa ter acesso às cafeteiras. Percebe a diferença?

Enquanto a autenticação está relacionada à identidade, a autorização está relacionada ao nível de acesso à informação.

Então, ter esse controle de acesso (autenticar e autorizar) faz parte da segurança de uma aplicação. Mas existem muitos outros aspectos importantes que devemos levar em consideração.

Um bom ponto de partida é acompanhar o TOP 10 OWASP, que lista os 10 itens mais importantes, segundo um consenso, relacionados à segurança.

No top 10 de 2021, o Broken Access Control está em primeiro lugar. Como o próprio nome diz, a falha acontece quando o controle de acesso é quebrado. Seja porque a pessoa utilizou uma senha fácil ou o atacante conseguiu burlar o sistema usando um ataque de força bruta.

Esse assunto é tão importante que existem profissionais específicos para cuidar desse tópico, passando por Analista de Segurança da Informação e chegando até em Dev Sec Ops.

Entender esses conceitos são essenciais para podermos desempenhar o nosso papel enquanto pessoas desenvolvedoras, seja do lado do back-end quanto do front-end.

Gostou do conteúdo? Que tal arriscar uns mergulhos mais fundos em uma das nossas formações?

Vinicios Neves
Vinicios Neves

Vinicios Neves, Tech Lead e Educador, mistura código e didática há mais de uma década. Especialista em TypeScript, lidera equipes full-stack em Lisboa e inspira futuros desenvolvedores na FIAP e Alura. Com um pé no código e outro no ensino, ele prova que a verdadeira engenharia de software vai além das linhas de código. Além de, claro, ser senior em falar que depende.

Veja outros artigos sobre Front-end