Autenticação e autorização

Módulo especifico do Spring para tratar segurança em aplicações.

Objetivos

Autenticação

Autorização (controle de acesso)

Proteção contra ataques (CSRF, clickjacking, etc)

Autenticação em aplicações web (Statefull) é diferente de autenticação em API REST (Stateless). Em uma aplicação, a autenticação é feita através de sessões, que guardam informações sobre o usuário, que são mantidas pelo servidor, Porém, em uma API REST, isso não ocorre, já que um dos conceitos REST é ser Stateless.

Existem várias formas de realizar o processo de autenticação de uma API, entretanto, uma das mais populares é através de Tokens. Neste curso, é abordado o JWT (JSON Web Tokens) para gerenciar os Tokens.

Essa estratégia funciona da seguinte forma: Após o cliente fazer uma requisição para uma URL de autenticação, caso as credenciais estejam corretas, é gerado um Token e enviado para o cliente na resposta.

Untitled

No processo de Autorização, este Token é utilizado. Em todas as requisições feita pelo cliente, o Token deve ser enviado no header da requisição. Desta forma, a aplicação consegue verificar a validade do token e liberar ou não o serviço.

Untitled

UserDetailsService

Classes que implementam esta interface são reconhecidas como classes de autenticação pelo Spring. Além disso, implementando esta interface, a classe não precisa ser chamada em nenhum controler, já que o Spring ficará responsável por isso.

Configurações de segurança