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

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 "Já sabe quais os próximos passos para seus estudos em Front-end? O Guia de Carreira em Front-end vai te ajudar nisso". À direita, está a foto de um jovem sorridente olhando para a esquerda do banner, ao lado de uma lista de tópicos oferecidos pelo guia, como "Principais cursos e formações da Alura nessa área", "Caminhos para carreira Front-end Angular e React", "Como migrar do Front-end para Back-end" e "Dicas de especialistas na área". No canto inferior direito, há um ícone de download e o texto "Baixe gratuitamente".

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?

Veja outros artigos sobre Front-end