[PRATO FÁCIL] Documentação da implementação da leitura biométrica no sistema
Data de elaboração | 24/04/2023 |
---|---|
Autores |
|
Equipe do estudo | TURING |
Alvo | Prato Fácil |
Origem |
|
Objetivo | Este estudo foi criado para documentar a implementação do modulo de biometria no sistema, desde a tentativa de implementar a leitura via web até a implementação via aplicação local na maquina do cliente além de prover um guia para a instalação e execução. |
Documentação correlata | Portal de documentação do leitor. .Net Framework 4.8.1. |
Observações | A seguinte implementação descrita no estudo e compatível apenas com o software do fabricante do leitor Hamster DX II |
Glossário
FIR: A sigla FIR significa Fingerprint Identification Record que é o tipo de dados em que a amostra de impressão digital é representada na SDK.
Payload: Carga útil de um programa ou sistema que realiza uma determinada ação ou tarefa. No contexto da SDK de biometria o payload é uma chave criptográfica armazenada dentro da FIR é e chamada de Payload e pode conter outras informações.
SDK: Standard Development Kit ou Kit de Desenvolvimento de Software, é um conjunto de ferramentas de desenvolvimento de software que facilita o desenvolvimento de aplicativos para uma plataforma específica.
1. Introdução
Esta documentação tem como objetivo fornecer uma visão geral de alto nível sobre a implementação, bem como os detalhes técnicos acerca da instalação e execução da aplicação.
Inicialmente a abordagem para a leitura da biometria seria entregue puramente via web, porém devido a problemas de compatibilidade da SDK do fabricante com a aplicação executando em um container Linux, foi necessário abandonar essa abordagem.
2. Instalação e utilização
Para poder executar a funcionalidade de biometria, é necessário possuir os seguintes requisitos:
- Driver do leitor de digital
- SDK de biometria da fabricante
- .NET framework 4.8.1
Todos os seguintes requisitos podem ser encontrados na seção de documentação correlata desta pagina, que incluem os tutoriais de instalação deles. Cumprindo os requisitos é necessário que a aplicação esteja executando em segundo plano ao utilizar o sistema.
Os métodos de captura de digital providenciadas pela SDK já contam com uma interface para o usuário.
3. A aplicação de console
A API local executa todas as operações relacionadas a biometria que então se comunica com o sistema web, essa conexão é gerenciada através da classe HttpListener que permite receber e retornar solicitações HTTP recebidas pela porta definida previamente.
Figura 1. Imagem do console em execução
Todos os dados biométricos são armazenados pelo sistema web, a aplicação recebe os dados apenas para comparação no momento de execução, não sendo mantido nenhum dado localmente.
O kit de desenvolvimento providencia métodos de captura e verificação de múltiplos dedos, que então exporta esse dado como um hash que então é convertido em JSON para envio ao sistema, que então registra o dado vinculado ao beneficiário em questão, a autenticação é feita de forma similar com o sistema web enviando uma lista de beneficiários que possuem dados de biometria em JSON para a API que então confere as digitais em loop até encontrar um "match", retornando o valor do Id do beneficiário correspondente da lista.
4. Interação com sistema web
Para criar uma experiencia de uso integrada, a ativação da interface de captura de digital é invocada pelo sistema web, que então se comunica com a aplicação local para executar a captura/verificação das digitais, essa interação e realizada através de chamadas AJAX com a porta escolhida pela API local. Como a carga de lidar com a validação e captura dos dados de digitais ficam por parte da API, isso permite que o Prato Fácil foque em realizar operações CRUD com a biometria.
Figura 2. Tela de detalhes onde é realizada o cadastro de biometria
Como dito na seção da aplicação local, a autenticação do usuário é feita com ela recebendo os dados de uma consulta geral por digital dos beneficiários, essa consulta faz uso de cache para evitar problemas com repetidas chamadas da ação que realiza a consulta, mantendo esses dados no cache por até 5 horas para garantir a velocidade e que dure ate o final do horário de entrega dos alimentos.
Figura 3. Tela de pedidos onde temos a opção de autenticação de biometria
5. Melhorias disponíveis
O projeto é funcional e cumpre com os requisitos do cliente, porem a implementação atual usa apenas das principais funções de captura e verificação ofertadas pela SDK e não faz uso de algumas funções ofertadas que podem elevar a qualidade da experiencia do usuário, alguns exemplos destas funções são:
- Identificação de qual dedo foi registrado
- Limitar quantos dedos podem ser registrados
- Atribuição de payload ao hash de biometria, podendo incluir informações extras na biometria como um nome
- Customização da interface padrão da captura e verificação de digital
Fica a cargo da equipe do projeto a necessidade de implementação das melhorias listadas.
6. Conclusão
Esta documentação apresenta uma visão geral sobre a implementação, instalação e utilização da aplicação de biometria. Embora inicialmente tenha havido problemas com a abordagem para leitura de biometria via web, a implementação local foi bem-sucedida. A aplicação local funciona em conjunto com o sistema web para armazenar e autenticar os dados biométricos dos beneficiários. Há melhorias disponíveis na SDK que podem ser implementadas no futuro para melhorar a experiência do usuário. No geral, a aplicação atende aos requisitos do cliente e pode ser aprimorada com as melhorias recomendadas.
Nenhum comentário