| Data de elaboração | 04/05/2023 |
| Responsável pelo estudo | Gustavo Felix (Analista) |
| Equipe do estudo | André Honório de Andrade Silva (Tecnico),Gezinéia Paula da Costa (Product Owner), Emanuel Rufino Alcantara de Lima (Analista), Rafael Passos dos Santos (Assessor), Alef Carvalho (Analista), 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. |
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.
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.
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.
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.
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.
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 |
| 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.
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.
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.
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.
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.
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.
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, 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.
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.