Análise do Fluxo de Autenticação e Autorização (Consignação)
Data de elaboração | 04/05/2023 |
---|---|
Responsável pelo estudo |
|
Equipe do estudo |
|
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/CPF/CNPJ validValido 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 |
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.
Para realizar o Logout é chamado no arquivo login.js a function helper.sair na Linha 505 onde é removido o Token de autenticação do Cookie e feito o redirecionamento para a tela inicial.
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.
helper.setMaiorPerfil, Linha 450.
helper.setCliente, Linha 454.
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.