| Data de elaboração | 06/04/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: 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 |
O presente estudo visa analisar e propor a Integração da Autenticação do Sauron ou Gov.Br no sistema Consignação.
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.
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.
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.
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.
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»
O primeiro passo é cadastrar o Consignação no sistema Meu Acesso e configurar as URLs de Localhost, Dev e QA.
Criar nova Tela Inicial com botão de Login
Instalar no Consignação Front-End o Pacote openid-client pelo Npm Package.
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,
});
Ajustar Arquivo de Login.Js para funcionar com a Autenticação OpenId
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.
| 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 |
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
Conclui-se que é possível integrar o sistema Consignação somente com o Sauron será feito somente a Autenticação e a Autorização ainda será feito ainda no Consignação, Futuras funcionalidades serão necessárias, sendo elas uma 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.