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 |
|
Equipe do estudo |
|
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.