Como implementar A2F usando Swivel? Quero começar falando do Swivel, Swivel é um provedor de soluções de autenticação que foi destaque anos atrás com o Prêmio SC Magazine Europe Award como a melhor solução de autenticação multifator.
Dentre os seus produtos de fatores de autenticação se encontram: OneTouch PUSH, SMS, Token, PINpad, TURing e PINsafe. Neste post usaremos TURing, embora com alguns parâmetros mudados,(poderíamos também usar o PINsafe enviando um SMS, por exemplo).
Como funciona o TURing?
Primeiro, cada usuário que usar essa opção receberá previamente um PIN, que é um código de 4 dígitos, o usuário precisa manter esse código na memória – assim como a senha do nosso cartão de crédito -. Essa tarefa é executada pelo administrador do servidor Swivel.
Para implementar a autenticação dupla( A2F), a aplicação web requer do usuário um OTC – One Time Code, que solicitará que o usuário digite. Se você não sabe o que é isso, convido-o a ler minha publicação anterior “Autenticação de 2 fatores com o Scriptcase“.
Para determinar qual OTC o usuário deve inserir, no momento da autenticação e logo depois de fazer a conexão com o servidor Swivel, um código de 10 dígitos é enviado para o navegador do usuário na forma de uma imagem retangular, então o usuário leva os números representados por seu PIN na imagem exibida – o PIN que foi atribuído anteriormente pelo administrador do Swivel -, ou seja, se o PIN for 5273, você simplesmente escreve o número na imagem na 5ª posição, depois o número na 2ª posição, depois o número na 7ª posição e finalmente o número na 3ª posição, tudo isso com base na imagem que o servidor enviou.
TURing example. Based on the example described above, the OTC would be 3507
Deve-se notar que, obviamente, as imagens geradas pelo servidor são dinâmicas, ou seja, diferentes a cada vez que uma OTC é solicitada.
Outro ponto a levar em consideração, e mencionado na publicação anterior, é que cada fornecedor indica como deve ser integrado e, em muitos casos, disponibiliza recursos para o programador em diferentes linguagens de programação. Bom no caso do Swivel, tive exemplos em PHP, que baixei e comecei a entender como funcionava e depois a fazer as adaptações no Scriptcase. Eu recomendo que você sempre tente as demos ou exemplos de fornecedores separadamente, certificando-se de que eles funcionam bem antes de ir ao Scriptcase implementá-lo, isso pode evitar grandes dores de cabeça!
Em resumo, o que fiz primeiro foi entender o funcionamento do exemplo e adaptá-lo às minhas necessidades, criando uma biblioteca php, que usaria no Scriptcase por meio de duas aplicações do tipo blank, decidi que seriam duas aplicações diferentes por causa da maneira que o TURing funciona.
Uma aplicação chamada Token, que é chamada após a validação do Login e Senha Normal (primeiro fator) e que gerencia a configuração da conexão ao servidor, assim como sua interface gráfica de solicitação do segundo fator e por fim, a validação do código inserido pelo usuário.
A segunda aplicação pode ser considerado como um procedimento explicitamente responsável por exibir a imagem gerada pelo servidor por meio de um URL no modelo da aplicação 1.
Talvez a explicação anterior possa ter parecido um pouco confusa, por esse motivo fiz um vídeo onde explico com mais detalhes, a maneira que se faz essa implementação.
(legenda em PT-BR disponível)
É evidente que existem maneiras diferentes de implementá-lo, mas o objetivo deste post é mostrar qual é uma dessas maneiras para servir de exemplo para seus projetos.
Na minha publicação seguinte vou falar de como Implementar A2F usando um Desenvolvimento Próprio em NodeJS.
Confira mais artigos no nosso blog!
Você pode gostar também…