À primeira vista, a idéia é excelente e simples. Oferece uma alternativa fácil de ser implementada, segura, portável e descentralizada. É mais uma alternativa para o OpenID e ao oAuth, com a vantagem de que praticamente todos possuem uma conta de e-mail e por isso lidam com estas de forma muito mais natural.
Em sua proposta, a Mozilla Labs sugere que a autenticação seja de primeiro fator utilizando quaisquer endereço de e-mail do usuário como sua identidade. Reza também que a autenticação seja descentralizada e baseada em servidores de e-mail, ao invés de domínios e websites. Este método libera as aplicações de guardar os atributos de login e senha dos usuários, e os usuários de guardar o usuário/senha para cada serviço na web que utilizem.
O navegador do usuário gerencia os artefatos de autenticação localmente (todos acessíveis via DOM com [window|session].localStorage), ou seja, nada relacionado a certificados ou dispositivos de segurança;
O pop-up de autententicação é implementado em HTML5.
Prós
Facilidade de implementação;
Tempo de vida curta para as chaves pública/privada (são apenas algumas horas);
Revela o endereço de e-mail do usuário para o website que está autenticando-o. Não é um efeito colateral ou algo não esperado, informar o endereço de e-mail para o website é uma decisão de arquitetura tomada pelo pessoal da Mozilla Labs e explicada por Ben Adida. O OpenID aqui leva vantagem pois não revela os endereços de e-mail do usuário;
Não existe uma forma de realizar logout, ele deve ser feito do lado da aplicação invalidando os dados de sessão;
A usabilidade do recurso me incomoda em alguns pontos, como disparar um janela pop-up e o processo adotado quando trata-se da primeira vez do usuário.
Outro ponto incômodo é sobre a descentralização. Se há mais de um ponto autenticador, como a autenticação funcionará quando o usuário navegar em duas aplicações com pontos autenticadores diferentes?
Conclusão
A idéia é excelente, a minha primeira sensação foi de “É só isso?” de tão simples que é. Apesar de ter apresentado mais contras do que prós sinto que disponibilizaria mais esta forma de login se tivesse a chance. Torço para que existam mais autenticadores para fazer valer o efeito da descentralização.
Só é preciso lembrar que este mecanismo é apenas uma parte do processo: a autenticação. O trabalho de identificação e autorização do usuário ainda deve ser realizado pela aplicação.
Quer testar?
Testei o mecanismo na minha garagem virtual (é sua inauguração também, meus testes poderão ser testados “ao vivo” neste local). Além de minha garagem, a Mozilla oferece o website MyFavoriteBeer onde o login já utiliza este recurso.
Pingback: Adriano Laranjeira » Blog Archive » Mozilla BrowserID: More one way to sign in