Ir para o conteúdo principal

Integração do Sauron ou Gov.Br com o Consignação (JAVA / Vue.Js)


Data de elaboração 06/04/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: Integração do Consignação ao Gov.Br ou Sauron

Objetivo

O presente estudo visa analisar e propor como pode ser implementado um novo sistema de autenticação no sistema Consignação.

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 analisar e propor a Integração da Autenticação do Sauron ou Gov.Br no sistema Consignação.

1.1 JUSTIFICATIVA

Atualmente existe uma autenticação no Consignação, mas a mesma esta com alguns problemas, já foi informado que não esta sendo possível recuperar senha e controle dos acessos.

1.2 RESULTADOS ESPERADOS

Espera-se que, após este estudo, seja possível levantar quais sãos os esforços necessários para se implementar um novo sistema de autenticação no sistema Consignação.

2. Introdução

O sistema Consignação necessita que seja alterado a funcionalidade de autenticação para utilizar o Sauron ou Gov.Br, além da troca da autenticação e preciso realizar ajustes na parte de autorização de acesso a certas páginas.

3. Desenvolvimento

3.1 CENÁRIO ATUAL

O sistema Consignação é composto de dois projetos, sendo o Front-End que foi desenvolvido utilizando Vue.js e o Back-End que utiliza Java Spring para a construção de uma API que o Front-End consulta. Para realizar a troca de Autenticação será necessário alterar os dois projetos o que aumenta a complexidade da integração.

A Integração pode ser feita com o Sauron ou com o Gov.Br. Caso seja escolhido realizar integração com o Gov.Br será necessário solicitar acesso ao Gov.Br e não terá a opção de realizar Autorização visto que o foco dele é disponibilizar Autenticação usando os dados já cadastrado na Base do Gov.Br. No caso da Autenticação com o Sauron tem a opção de se realizar Autorização utilizado perfis cadastrado no Meu Acesso além de termos o controle pelo fato de ser uma aplicação desenvolvida na SETIC.

3.2 SOLUÇÃO

Um Fator importante antes de aplicar a solução e entender que quase todas as modificações serão feitas no projeto de Front-End, e que o código de autenticação e autorização atual talvez não seja possível reaproveitar muita coisa.

A Autenticação e Autorização ficam no arquivo de "login.js" localizado no projeto de Front-End na pasta "src/boot/login.js"

1. O primeiro passo é cadastrar o Consignação no sistema Meu Acesso e configurar as URLs de Localhost, Dev e QA.

2. Criar nova Tela Inicial com botão de Login

3. Instalar no Consignação Front-End o Pacote openid-client pelo Npm Package.

4. Configure o OpenId-Client e implementar Call-Back

const { Issuer, Client } = require('openid-client');

const providerMetadata = await Issuer.discover('https://your-provider.com');
const client = new Client({
  client_id: 'your-client-id',
  client_secret: 'your-client-secret',
  redirect_uris: ['https://your-app.com/callback'],
  response_types: ['code'],
  token_endpoint_auth_method: 'client_secret_basic',
  userinfo_endpoint: providerMetadata.userinfo_endpoint,
  issuer: providerMetadata.issuer,
});

5. Ajustar Arquivo de Login.Js para funcionar com a Autenticação OpenId

3.2.1 Preocupações e soluções 

Uma preocupação que se deve ter e referente a Autorização do acesso as páginas, quando realizar a troca de Autenticação pois pode acontecer de aparecer alguns problemas de acesso que terão que ser corrigidos.

Realizando a Autenticação com o Sauron ou Gov.Br não será possível manter a tela de Login Atual, terá que ser utilizado a tela do Sauron ou Gov.Br. Isso pode não ser muito aceito pelos clientes além do fato de um aumento na complexidade da autenticação e autorização pois de inicio a autenticação vai ser feito por um dos dois sistemas e a autorização ainda estará no Consignação, em caso de novos usuários será necessário cadastrar ele em um dos sistemas e na autorização do Consignação.

3.2 IMPLEMENTAÇÃO E 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 ou alterar a tela de Login para a Inicial.

- 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
Corrigir problemas de acesso as páginas ? ? Consignação

3.3 POSSÍVEIS IMPEDIMENTOS

A linguagem utilizada no projeto é nova para o time e nunca foi tentando realizar integração do Sauron em um sistema JAVA / Vue.Js que é o caso do Consignação. Além disso os arquivos de Autenticação não estão muito organizados

4. Conclusão

Conclui-se que é possível integrar o sistema Consignação com o Sauron para realizar a Autenticação e possivelmente ate realizar a parte de Autorização mas de inicio será feito somente a Autenticação pois ainda não está claro como o sistema irá se comportar após a troca de Autenticação.

Futuras funcionalidades serão necessárias, sendo ela um Cadastro na Tela Inicial do Sistema, na tela de cadastro de Funcionário cadastrar o usuário no Sauron com E-mail valido para que o mesmo receba a senha e verificar se todos os CPFs estão validos para vincular a autenticação com a Autorização.