Ir para o conteúdo principal

Definir como será feito a Autenticação no Sistema Consignação

Data de elaboração 11/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 Idealizar um Novo Fluxo para Acesso ao Consignação

Objetivo

Com base nos estudo anteriores propor uma solução completa para evitar fraudes no acesso

Documentação correlata
Observações O presente estudo pretende também pretende levantar as Historias dos Cards para a Sprint 


1. Objetivo

O Presente estudo visa definir qual será a solução implementada para realizar a Autenticação e Autorização de formar a evitar fraudes de acesso, maior complexidade de desenvolvimento e evitar futuros problemas durante a implementação dela.

1.1 JUSTIFICATIVA

Atualmente o Sistema Consignação esta apresentando problemas quando se fala em Autenticação e Autorização, sendo eles no momento de Recuperar Senha, Não realizar a Expiração das Senhas de Usuários, Falta de Informações do Usuário no Cadastro e Falta de Registro de Acesso.

1.2 RESULTADOS ESPERADOS

Espera-se que após a conclusão desse estudo possamos encontrar uma solução para realizarmos melhorias no Fluxo de Autenticação e Autorização do Sistema Consignação.

2. Introdução

O Sistema Consignação atualmente possui um sistema de Autenticação e Autorização com diversos problemas e regras, realizar a manutenção do mesmo ou a troca pode ser uma tarefa árdua e que precisa ser analisado com calma, foram realizado diversos estudos referente ao assunto para que possamos chegar na melhor solução. Essa quantidade de estudo foi necessário pois após a finalização de um sempre encontrávamos outra ponto de bloqueio e agora chegaremos na solução a ser implementada.

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. O Sistema de Autenticação atual esta apresentando problemas na Recuperação de Senha e não realiza a Expiração de Senhas.

Um dos problemas do cenário atual é o Cadastro de Funcionário que antigamente não obrigava o preenchimento de certos campos sendo um deles o CPF/CNPJ, atual ele obriga mas não valida se o CPF/CNPJ que foi inserido é valido permitindo que qualquer dado possa ser inserido.

3.2 SAURON / GOV.BR

Umas das possíveis soluções para esses problemas são a realização da Autenticação por outro sistema utilizando a tecnologia Open-Id. Existe duas opções para realizar esse tipo de Autenticação, são elas o Sauron e o Gov.Br

O Sauron em conjunto com o Meu Acesso foram implementados em diversos sistemas da SETIC, desenvolvido em C# Asp.Net Core o mesmo possibilita a Autenticação de Usuário utilizando CPF/CNPJ, Recuperação de Senha por E-mail e a realização de Cadastros de Usuário com Vinculação de Perfil caso necessário utilizando uma API o que possibilitaria que ao criar um novo usuário dentro do Sistema Consignação o mesmo fosse criado no Sauron.

O Gov.Br é um sistema do Governo Federal que tem o intuito de permitir o acesso a diversos sistemas do Governo e centralizar suas informações na base do Gov.Br para em caso um dos sistemas venha requerer o dado ele possa obter de forma fácil é eficiente não sendo necessário cadastrar ele diversas vezes em diversos sistemas. Diferente do Sauron, ele não possui um controle de Perfil, ou uma API para cadastro de usuário dentro do Sistema Consignação o que ajuda mais ainda a eliminar as suas chances de ser escolhido como Soluções.

Fica claro que o dos dois o único que pode ser escolhido como uma possível solução o Sauron, muito provável será Feito Somente a Autenticação visto que na Autorização existe Instituições, Regras de Perfil, Controle de Perfis dentro do sistema Consignação, Infelizmente Não é Possível Criar ou Remover Perfis de um sistema utilizando a API do Sauron.

Ao utilizarmos o Sauron para a Autenticação os usuários serão forçados a realizar Login com CPF/CNPJ em vez de utilizar um Login Genérico e que não identificar a pessoa que estar realizado o acesso, outra vantagem e a Expiração da Senha e Recuperação de Senha que são funcionalidades já existentes no Sauron e que no Sistema Consignação vem apresentando Erros.

3.3 PROBLEMAS AO UTILIZAR O SAURON

Uma das maiores dificuldade para realizarmos a troca da Autenticação para o Sauron é a dificuldade de Relacionar os Dados de Usuário Já Existentes com o Sauron visto que muitos cadastros de usuário Não Possuem CPF/CNPJ e este campo não ter uma validação para saber se o dado cadastrado é CPF/CNPJ Valido e respeitam as regras.

Outro problema vem referente a Autorização, caso formos realizar a troca dos Perfis do Sistema Consignação para o Sauron encontraremos diversos problemas visto que referente aos Perfis e Acesso a Páginas existem diversas regras, é possível realizar a Autenticação usando o Sauron e Manter a Autorização no Consignação.

Outro detalhe importante mas de não muita gravidade e que Não Será Possível Utilizar a Tela de Login Atual, após acessar o sistema o mesmo será encaminhado para a Tela de Login do Sauron, onde será necessário informar o CPF/CNPJ e sua Senha.

Referente a Usuários que Possui Vários Logins onde é usado um Login por Instituição dando exemplo o usuário utilizar o Login01 para a Instituição01 e o Login02 para a Instituição02, isso Não Será Mais Possível visto que o Login no Sauron será o CPF/CNPJ sendo necessário que eles tenha em seu Cadastro de Funcionário essas as Duas Instituições para pode ter acesso a elas e ser identificado corretamente.

3.4 SOLUÇÃO

Para realizarmos a devida identificação dos usuários a melhor solução encontrada foi a de realizarmos a Autenticação pelo Sauron, e manter a parte de Autorização no Consignação para que não seja alterado as regras do sistema. Uma das vantagens de utilizamos o Sauron para a Autenticação é que o Login será feito com o CPF e Senha, além disso será possível gravar o CPF no Log do sistema visto que antigamente vários funcionários cadastrados não possuem esse campo cadastrado.

3.5 HISTÓRIAS DE USUÁRIO

Para aplicar a solução acima será necessário as seguintes histórias de usuários:

O que? Pontos Regras Produto
Criar Sistema Consignação no Meu Acesso Dev 3

- Configurar URL Local e Dev, QA

- Criar Perfil Padrão

Consignação
Criar Tela Inicial do Sistema 5

- Criar Tela Inicial do Sistema com botão para Login.

- Define essa tela como a primeira tela ao acessar o sistema.

- Mergir em Branch Separada do Dev

Consignação
Instalar o Pacote OpenId no Consignação 5

- Instalar pelo npm o "openid-client" no Projeto Vue.Js

- Mergir em Branch Separada do Dev

Consignação
Utilizar e Configurar o OpenId Client 8

- Utilizar Accestoken e ClientId do Meu Acesso para Configurar.

- Configurar Callback.

- Mergir em Branch Separada do Dev

Consignação
Alterar o Arquivo de Login para funcionar com OpenId Client 5

- src/boot/login.js

- Mergir no Dev

Consignação
Alterar Campos do Cadastro de Funcionário 5

- Validar CPF/CNPJ

- Validar E-mail

Consignação
Cadastrar Funcionário no Sauron após Envio do Formulário de Cadastro de Funcionário 8

- Checar se CPF/CNPJ existe no Sauron

- Checar se E-mail existe no Sauron

Consignação

3.6 POSSÍVEIS IMPEDIMENTOS

Um Impedimento que pode surgir é a não possibilidade de realizar a publicação dessas alterações para Produção, visto que o ultimo Merge que foi realizado do Staging para Prodution foi solicitado que fosse revertido pois o sistema apresentou falhas. Essas falhas precisão ser corrigidas para que possamos realizar a publicação após finalizarmos tudo.

4. Conclusão

Das possíveis soluções para alteração da Autenticação ou Autorização o Gov.Br de cara não é uma delas ele e o sistema que apresenta a maior quantidade de problemas e impedimentos. Fica então para realizarmos a Autenticação com o Sauron e mantermos a Autorização pelo Consignação.