Biomac Extensão para captura de Mac Address e Biometria Documentação 20/09/2017 Sadi Peruzzo speruzzo@unimedsc.com.br (47) 3441-0707
Conteúdo 1.Introdução e objetivo...3 2.Funcionamento...3 2.1.Protocolo de comunicação...5 2.1.1. Solicitação de Mac Address...5 2.1.2.Solicitação de leitura biométrica...6 2.1.3.Solicitação de match biométrico...7 2.1.4.Solicitação de impressão direta...7 3.Instalação...8 3.1.Instalação da aplicação nativa...8 3.2.Instalação da extensão para o Chrome...9 3.3.Instalação da Extensão para o Firefox...10 4.Instruções especiais...13 4.1.Cadastro de URL...13 4.2.Liberação do IP no firewall...13 5.Segurança Applet...13 6.Impressão direta...14 6.1.Identificação da impressora padrão...15 6.2.Falha na impressão direta...17 2/17
1. Introdução e objetivo Nas aplicações cmagnet e autsc2 existem alguns recursos que exigem o acesso a informações e recursos nativos da máquina do usuário, este acesso até então era feito através da utilização de um Applet Java. Porém, a partir da versão 45 do Google Chrome (lançada em setembro/2015) e 52 do Mozilla Firefox (lançada em março de 2017) foi removido o recurso NPAPI utilizado para a execução de Applets através do navegador. Para contornar este problema foi desenvolvida uma extensão para os navegadores (Biomac), que ficará responsável por acessar os recursos da máquina e fornecer as informações solicitadas pelas aplicações. Este documento tem como objetivo apresentar o funcionamento da extensão através de ilustrações do fluxo de informação pelos componentes, bem como as instruções de instalação. 2. Funcionamento Uma alternativa a NPAPI é a utilização do Native Messaging, mecanismo que permite a uma extensão do Navegador realizar comunicação com uma aplicação nativa da máquina através da entrada e saída padrão (stdio). A extensão desenvolvida utiliza esse mecanismo para realizar a comunicação com os recursos da máquina. Atualmente, as aplicações cmagnet e autsc2 necessitam de dois recursos da máquina do usuário: o mac address e acesso ao leitor biométrico. Em suma a comunicação entre a aplicação e a extensão Biomac é realizada conforme ilustrado na Figura 1. 3/17
Figura : Ilustração da comunicação entre a Aplicação e a extensão Biomac Toda comunicação é feita de forma assíncrona, ou seja, a resposta para cada solicitação não será entregue imediatamente, pois no caso de uma leitura biométrica a informação depende do usuário posicionar seu dedo sobre o leitor. Dessa forma, a aplicação que utiliza a extensão pode continuar seu fluxo de execução normalmente, e assim que a extensão obtiver a informação solicitada ela irá enviá-la para a aplicação. A Figura 2 ilustra um exemplo de como realizar a comunicação com a extensão do Google Chrome. O primeiro passo é abrir uma porta de comunicação informando o id da extensão (linha 5). Com a porta aberta, deve-se registrar uma função de callback que será executada sempre que a extensão enviar uma mensagem para aplicação (linhas 7-9), esta função recebe como parâmetro um objeto com as informações enviadas. Após estes passos, é possível fazer requisições para a extensão, as linhas 11, 12 e 21 por exemplo, fazem uma solicitação de Mac Address. solicitação de match biométrico e solicitação de leitura biométrica, respectivamente. 4/17
Figura : Exemplo de uso da extensão 2.1. Protocolo de comunicação Atualmente, existem três tipos de mensagens que a extensão é capaz de responder: requisição do Mac Address, requisição de leitura biométrica e requisição de match biométrico. Nos próximos subtópicos é realizada uma descrição do funcionamento dessas três requisições. 2.1.1. Solicitação de Mac Address Para realizar a solicitação de Mac Address é necessário enviar uma mensagem para a extensão contendo um objeto que tenha o atributo request com a string get_mac_address conforme ilustrado no exemplo da Figura 2. 5/17
A resposta para esta requisição é um objeto contendo apenas dois atributos: response_to e mac_address. O atributo response_to é responsável por identificar o tipo de resposta do objeto, neste caso seu valor será get_mac_address, pois ele está respondendo a este tipo de requisição. O atributo mac_address é o valor do Mac Address da máquina do usuário e estará no seguinte formato: xx-xx-xx-xx-xx-xx. A Figura 3 ilustra o fluxo de informações que ocorre ao realizar este tipo de solicitação. Figura : Protocolo de solicitação de Mac Address 2.1.2. Solicitação de leitura biométrica Para realizar a solicitação de leitura biométrica é necessário enviar uma mensagem a extensão contendo o objeto com o atributo request contendo o valor get_fingerprint. A resposta para este tipo de requisição é um objeto contendo seis atributos: response_to, reader, width, height, dpi e image. O atributo response_to para esta requisição terá o valor get_fingerprint. Os atributos width, height e dpi informam a largura altura e resolução da imagem, respectivamente. Por fim, o atributo image contém a imagem codificada em base64. Na Figura 4 é possível visualizar a estrutura da requisição e resposta. Figura : Protocolo de solicitação de leitura biométrica 6/17
2.1.3. Solicitação de match biométrico Para realizar a solicitação de match biométrico é necessário enviar uma mensagem a extensão contendo o objeto com o atributo request contendo o valor match_fingerprint, também são necessário os atributos benef_base, dedo_base, template_base. Ao realizar este tipo de requisição, a extensão fará uma leitura biométrica do beneficiário e realizará uma comparação da biometria lida com o template enviado. A resposta para este tipo de requisição é um objeto contendo seis atributos: response_to, reader, width, height, dpi, image e template. O atributo response_to para esta requisição terá o valor match_fingerprint. Os atributos width, height e dpi informam a largura altura e resolução da imagem, respectivamente. Por fim, os atributos image e template contém a imagem codificada e o template extraido em base64. Na abaixo é possível visualizar a estrutura da requisição e resposta. Figura: Protocolo de solicitação de match biométrico 2.1.4. Solicitação de impressão direta Para realizar a solicitação de impressão direta é necessário enviar uma mensagem a extensão contendo o objeto com o atributo request contendo o valor direct_print. Também é necessário o atributo file_url com o link para o download do pdf. Ao realizar este tipo de requisição, a extensão realizará o download do pdf solicitado e enviará seu conteúdo para a impressora padrão da máquina. A resposta para este tipo de requisição é um objeto contendo três atributos: response_to, print_result, ds_erro. O atributo response_to terá o valor direct_print. O valor do atributo 7/17
print_result será um código de erro para indicar o resultado da operação, sendo que o valor 0 (zero) indica que o processo foi realizado com sucesso. Por fim, o atributo ds_erro irá conter uma pequena explicação referente ao erro indicado no atributo print_result. Figura: Protocolo de solicitação de impressão direta 3. Instalação Existem dois componentes de devem ser instalados: a aplicação nativa que é responsável pela leitura dos recursos nativos e a extensão no Navegador (ou nos Navegadores) que realizará a comunicação com a aplicação nativa. Mas antes desta instalação é altamente recomendado atualizar o Navegador para sua versão mais recente. 3.1. Instalação da aplicação nativa Para instalar a aplicação nativa primeiramente é necessário fazer o download da mesma na central de downloads através do link: http://app.unimedsc.com.br/sistemas-de-atendimento/addons/biomac/1.7/. Após o download basta executar o instalador e clicar em Install, conforme ilustrado na figura 5. É recomendável não alterar o caminho de instalação sugerido. 8/17
Figura : Instalação aplicação nativa (1) Após a etapa anterior, aguarde o término da instalação e feche o instalador (figura 6). Figura : Instalação aplicação nativa (2) 3.2. Instalação da extensão para o Chrome Com a instalação da aplicação nativa completa, basta instalar a extensão para o navegador desejado. Para adicionar a extensão ao navegador Google Chrome, acesse o link https://chrome.google.com/webstore/detail/biomac/nchbgimeeklhijdekgmhhjknihpnhgpl selecione a opção Usar no Chrome (figura 7). 9/17 e
Figura : Instalar extensão biomac Um alerta surgirá para confirmar a instalação, clique em Adicionar extensão (figura 8) para finalizar. Figura : Confirmar instalação Com este passo finalizado a extensão estará pronta para uso. 3.3. Instalação da Extensão para o Firefox O processo para instalação da extensão no Firefox começa com o download da extensão através do link http://app.unimedsc.com.br/sistemas-de-atendimento/add-ons/biomac/1.7/. 10/17 Após o
download do arquivo 'Plugin - Firefox.zip', é necessário descompactar o arquivo baixado. O próximo passo, é iniciar o Firefox Clicar em 'Abrir Menu' e posteriormente em 'Extensões'. Figura : Abrir Menu Extensões Na página de gerenciamento de extensões, clicar em 'Ferramentas para todos os Complementos' e depois em 'Instalar de um arquivo'. Figura : Ferramentas para todos os complementos Instalar de um Arquivo Selecione o arquivo descompactado, e clique em abrir. 11/17
Figura : Envio do Arquivo descompactado O Firefox emitirá uma mensagem para confirmação da instalação da extensão. Basta apenas confirmar a instalação para a conclusão do processo. Figura : Confirmação da instalação da extensão Após a mensagem de confirmação, reinicie o Firefox e a extensão já estará pronta para uso. Figura : Mensagem de conclusão do processo 12/17
4. Instruções especiais Este capítulo apresenta algumas configurações necessárias para a utilização por completo da ferramenta biomac que devem ser realizadas. 4.1. Cadastro de URL A extensão do Biomac no Google Chrome precisa ser configurada para se comunicar com a Url dos Sistemas de Atendimento. Grande parte dos ambientes que utilizam os sistemas já foram cadastradas. Porém, para os novos ambientes em que os Sistemas de Atendimento forem implantados, é necessário que a FESC seja contactada, fazendo uso dos canais de disponíveis, para que a extensão seja configurada permitindo a comunicação com a nova URL. 4.2. Liberação do IP no firewall Para que o Biomac funcione corretamente é necessário que seja liberado o IP 174.129.231.1 no firewall. Essa liberação é necessária para a comunicação da aplicação com o servidor da Griaule, empresa fornecedora das soluções biométricas. Essa comunicação tem como objetivo a validação da licença de uso da aplicação. 5. Segurança Applet A aplicação SguCard oferece uma opção de login utilizando uma funcionalidade chamada Segurança Applet. Com essa funcionalidade ativada para um determinado usuário, todas as vezes que houver uma tentativa de login com esse usuário, o sistema validará o Mac Address da máquina com uma lista previamente cadastrada. Desta forma, só será possível acessar o sistema com este usuário nos computadores cadastrados pelos administradores do sistema. 13/17
Figura : Segurança Applet Para que não ocorram problemas com essa funcionalidade, recomendamos que sejam cadastrados todos os Mac Address retornados pelo comando 'getmac' do Windows. Figura : Comando 'getmac' Para a máquina descrita na imagem acima, o cadastro de computares ficaria da seguinte maneira: Figura : Lista de Mac Address cadastrados na aplicação 6. Impressão direta Existe uma outra funcionalidade no SguCard que utilizava a tecnologia de Java Applets, a impressão direta. Este modo de impressão faz com que quando o usuário selecionar a opção de impressão de algum documento em pdf no SguCard, o sistema envie o documento diretamente para a impressora da máquina. 14/17
Devido ao fim dos Java Applets esta funcionalidade também foi adicionada ao biomac. Com a aplicação configurada para realizar a impressão direta, o SguCard disponibilizará um link para o biomac fazer o download de um pdf com a informação a ser impressa. O biomac realiza o download do documento e o envia à impressora padrão da máquina. Para a utilização desta funcionalidade, basta que o parâmetro cmagnet.impressao.direct.guias seja ativado para o local de atendimento. Figura: Parâmetro cmagnet.impressao.direct.guias Com o parâmetro ativado, a impressão de guias e lembretes no SguCard será realizada sem abrir o leitor de pdf. Os documentos serão enviados diretamente para a impressora padrão da máquina. Uma observação importante é que o endereço IP externo do SguCard deve estar liberado no firewall para que o biomac consiga realizar o download do documento à ser enviado para a impressora. 6.1. Identificação da impressora padrão Para identificar qual a impressora padrão definida para a máquina, basta acessar o menu do Windows Dispositivos e Impressoras disponível no Menu Iniciar. 15/17
Figura: Menu Iniciar indicando o menu Dispositivos e Impressoras A impressora padrão estará indicada por uma marcação verde. Figura: Impressora padrão da máquina 16/17
6.2. Falha na impressão direta Existem algumas situações que podem fazer com que a impressão direta não seja realizada com sucesso. Podem ser por restrições de acesso no proxy, ou bloqueio de firewall ou até mesmo no envio para a impressora. Nestes casos, o biomac enviará ao SguCard informações referentes ao erro que levou à falha na operação. Quando isso ocorrer, o SguCard apresentará a mensagem de que houve um problema com a impressão direta e disponibilizará um link para que o usuário efetue o download do pdf com o documento. Figura: Link para a realização do Download do documento quando ocorrer algum problema com a impressão 17/17