Ir para o conteúdo principal

Análise do Fluxo de Autenticação e Autorização (Consignação)


Data de elaboração 04/05/2023
Responsável pelo estudo
  1. Gustavo Felix (Analista)
Equipe do estudo
  1. André Honório de Andrade Silva (Tecnico)
  2. Gezinéia Paula da Costa (Product Owner)
  3. Emanuel Rufino Alcantara de Lima (Analista)
  4. Rafael Passos dos Santos (Assessor)
  5. Alef Carvalho (Analista)
  6. Gustavo Felix (Analista)
Alvo Consignação
Origem

Implementação: Preciso Conhecer o Fluxo Existente de Login do Consignação

Objetivo

Analisar e descrever todo o Fluxo Atual de Autenticação e Autorização do Sistema Consignação

Documentação correlata
Observações O presente estudo pretende identificar e documento os códigos de autenticação e autorização.


1. Objetivo

O Presente estudo visa analisar o fluxo de autenticação e autorização atual do sistema Consignação para que possa ser realizado uma tomada de decisão de como ficaram a autenticação e autorização de modo a evitar fraudes e que não interrompa nenhuma funcionalidade atual do sistema.

1.1 JUSTIFICATIVA

Atualmente o Consignação esta fazendo autenticação e autorização usando sua própria solução, como não é um sistema que os Vingadores não tem muito familiaridade com o código presente e regras de fluxo atual tendo assim a necessidade da execução deste estudo.

1.2 RESULTADOS ESPERADOS

Espera-se que após a conclusão deste estudo fique mais claro as regras do sistema Consignação referente ao fluxo de Autenticação e Autorização além de esclarecer o funcionamento da solução atual de Autenticação e Autorização.

2. Introdução

Será analisado do sistema Consignação como é feito o cadastro do usuário, acesso, reset de senha, gerenciamento de perfis, ativação e inativação de usuário e regras do fluxo de Autenticação e Autorização.

3. Desenvolvimento

3.1 CENÁRIO ATUAL

O Sistema Consignação possui dois projetos, sendo eles o Front-End desenvolvido em Vue.Js e o Back-End desenvolvido em Java Spring, quase toda a Autenticação e Autorização esta sendo realizado no projeto de Front-End.

3.1 CADASTRO DE USUÁRIO

O Cadastro de usuário pode ser realizado por três personas, são elas usuário com perfil MASTER, FUNCIONÁRIO CECON e INSTITUIÇÃO BANCÁRIA. Atualmente esse cadastro de usuário tem uma grande falha que pode dificultar a integração com outros sistemas de autenticação, essa falha é que o campo CPF/CNPJ antigamente no sistema não era obrigatório e não havia validação para saber se o dado inserido era CPF/CNPJ Valido ou não, motivo de não estar como campo obrigatório era que o acesso ao sistema Consignação e feito pelo campo Login, o CPF/CNPJ foi se tornar um campo obrigatório a pouco tempo.

Os campos do cadastro são os seguintes

Nome do Campo Obrigatório Limite de Caracteres Tipo de Campo
Nome Completo Sim 100 Texto Livre
Login Sim 25 Texto Livre com Validação para usuário já existente
CPF/CNPJ Sim 14 Texto Livre
E-mail Sim 120 Texto Livre
Data de Contratação Sim Data DatePicker
CEP Sim 9 Numérico
Logradouro Não 255 Texto Livre
Número Não 8 Texto Livre
Bairro Não 255 Texto Livre
Cidade/UF Não Dropdown Dropdown
Instituição Sim Dropdown Dropdown
Perfil Sim Dropdown Dropdown
RG Não 20 Texto Livre
Celular Não 15 Numérico
Telefone Não 15 Numérico

O Cadastro de Usuário pode ser acessado pelo menu lateral com um dos perfis citados anteriormente, Administração > Funcionário > Novo. Será necessário realizar alguns ajustes nos campos de cadastro com o intuito de não permitir a inserção de dados inválidos.

Um fato importante e que no momento em que é realizado o cadastro não é informado uma senha ou enviado uma senha para o e-mail do usuário, para geração de senha esta sendo utilizado a funcionalidade de Reset de Senha.

3.2 ACESSO

O Acesso ao Consignação funciona atrás de Login e Senha, na tela inicial do sistema. Em caso de Perca de Senha a funcionalidade de Recuperar senha não está funcionando, só sendo possível reestabelecer acesso ao sistema caso alguma das personas com acesso a funcionalidade de Reset de Senha trocar a sua senha.

3.3 RESET DE SENHA

A Funcionalidade de Reset de senha do Consignação pode ser acessar por um usuário com perfil MASTER onde é possível encontrar pesquisar os usuários já cadastrados no sistema e realizar a troca da senha. O Reset funciona preenchendo os campos de Senha e Confirmação de Senha.

Por regra todas as senhas do Consignação precisam possui de 6 a 20 caracteres, no mínimo uma letra maiúscula e minúscula, numero e caractere especial. Uma senha forte e que dificulta um possível ataque de força bruta e a invasão do sistema.

Após o preenchimento e confirmação a senha é trocada e o usuário pode realizar a Autenticação informando o seu Login que foi cadastrado e sua nova senha, em caso de novos usuários a CECON enviar o Login e Senha para o Consignatário.

Fato importante o sistema não possui um sistema de expiração de senha, o que aumenta as chances de um acesso por uma pessoa que não deveria acessar o sistema conseguirá usar o Login e a Senha após meses ou anos.

Caso fosse tentando alterar esse Reset de Senha para um envio no E-mail teríamos um problema pois diversos usuários não estão com os seus E-mail cadastrados o que impossibilita um envio direto com o Link para Alteração de Senha.

3.4 GERENCIAMENTO DE PERFIS

Os Perfis disponíveis no sistema são:

Nome do Perfil Disponível para Consignatárias
MASTER Não
FUNCIONÁRIO CECON Não
BANCO BLOQUEADO ?
INSTITUICAO NAO BANCÁRIA ?
INSTITUICAO BANCÁRIA Sim
ANALISTA DE CREDITO Sim
CORRESPONDENTE BANCÁRIO Sim
FUNCIONÁRIO NORMAL Sim
FUNCIONÁRIO RESTRITO Sim
ANEXAR ADF Sim
AVERBAÇÃO CARTÃO Sim
ANALISTA DE CRÉDITO RESTRITO Sim
CORRESPONDENTE BANCÁRIO ANEXAR ADF Sim

Os Perfis que estão disponíveis para as Consignatárias durante o cadastro do usuário não obrigam o preenchimento do campo Perfil.

3.5 ATIVAÇÃO E INATIVAÇÃO DE USUÁRIOS

O Controle de Ativação de usuário pode ser encontrado após realizar acesso ao sistema com o perfil MASTER e procurar no menu lateral, Administração > Funcionário > Pesquisar, após buscar por um usuário a ser inativado, trocar o campo Ativo para não e após o usuário não terá mais acesso. Normalmente essa inativação é feita por um consignatária onde eles conseguem inativar usuários da sua instituição mas ela também pode ser feita pela CECON, uma vez que o usuário e inativado somente a CECON / Usuário com perfil MASTER pode ativar ele.

3.6 AUTENTICAÇÃO

Boa parte do código de Autenticação está presente no projeto de Front-End que é Vue.js, o arquivo principal da autenticação pode ser encontrada em src > boot > login.js, este arquivo contem também códigos de Autorização o que complica a sua manutenção e entendimento uma vez que tudo fica mistura.

A Tela de Login pode ser localizado no arquivo src> pages > publico > Login.vue, nessa mesma pasta de publico se tem alguns arquivos referente a recuperação e recadastramento de senha que não estão funcionando, após o preenchimento da Login e Senha na tela de login e chamado no arquivos login.js a function helper.autenticar na Linha 257 onde o mesmo gera um Token e enviar a requisição caso ela tenha sucesso ele chama o helper.buscarAcessos.

3.7 AUTORIZAÇÃO

A autorização no sistema Consignação como foi citado anteriormente é iniciado no arquivos login.js na Linha 295 após o login é chamado a function helper.buscarAcessos, dentro dessa function e realizado a chamada de outras três function, feitos algumas validações se tudo estiver certo é realizado um redirecionamento para a tela inicial que pode ser encontrada em src > pages > privado > index.vue.

As três function que são chamadas pelo helper.buscarAcessos são:

helper.setAplicacoes, Linha 442.442, Seta o GUID da Aplicação.

helper.setMaiorPerfil, Linha 450. Seta o Maior Perfil.

helper.setCliente, Linha 454. Seta os Dados do Usuário.

Essas functions são alimentados por dados obtidos após uma consulta realizado na Linha 297 onde se vai na API/Back-End para se obter os dados de aplicacoes, maiorPerfil e cliente, essa chamadas de API para o projeto de Back-End podem ser encontradas em src > components > api.js.

Uma das validações adicionais que são realizadas são se o perfilMaior for INS é dado uma permissão extra para ter acesso a página de portabilidade/pesquisa.

4. Conclusão

Com a conclusão deste estudo fica mapeado o fluxo de autenticação e autorização e as regras do sistema para que possa ser feito uma analise futura e definir como ficara a autenticação com o intuito de evitar fraudes de acesso. Apesar de quase todo o código de Autenticação e Autorização estarem no Projeto de Front-End, existe diversas chamadas de API para o Projeto de Back-End.