Níveis de Autenticação

Autenticação do Usuário (Chave Pública)

O usuário é um utilizador humano do sistema que possua uma credencial de acesso (par login/senha). Por exemplo, o usuário Bruno da Silva Righes cadastrado com o login brunorighes e uma senha “b7637”.

SIExp_Logon

Autenticação do Cliente (Chave Privada)

O cliente é um dispositivo que possua um par identificador/chave privada que o autorize a performar requisições a um serviço. A autenticação de um cliente, permite restringir o uso do WebService por determinados dispositivos ou sistemas específicos. Esse nível de segurança permite a implementação de políticas de cotas; restrição de funcionalidades; compartilhamento de chaves por empresa, unidade, departamento, equipe, etc; autorizar softwares de terceiros; auditoria; mudança de chave privada em caso de perda ou roubo de equipamento; cancelamento de credências no fim de contratos; etc. Por padrão, a chave privada terá sempre 16 caracteres que podem incluir apenas dígitos e letras maiúsculas. Por exemplo, em uma aplicação fictícia, todos os smartphones e tablets dos funcionários da Embrapa Gado de Corte acessam um serviço de documentos com um identificador “123” e uma chave privada “7XK9OT8ZW34IPRQA”, mas a intranet da Embrapa Informática Agropecuária acessa o serviço o com o identificador “456” e a chave privada “QWERTYUI5678ASDF”.

Mosca-dos-Estabulos_PK_Export

Autenticação da Aplicação (Token)

Uma aplicação autorizada é qualquer programa que possua um par identificador/token que o autorize a performar requisições ao serviço. As credenciais de aplicação preferencialmente devem ser embutidas junto ao código fonte do programa, e não devem ser alteráveis pelo usuário comum. Esse nível de segurança permite restringir que somente alguns programas específicos estejam aptos à performarem requisições ao serviço. Por exemplo, imagine que a Embrapa desenvolva o Pandora Mobile, uma plataforma de software formada por uma aplicação Android e outra iOS que permita o acesso a informações e à gestão do software Pandora. Estas aplicações móveis farão requisições para o WebService desenvolvido para esse propósito. Além de adotar a autenticação de usuário, a equipe de desenvolvimento pode querer restringir que esse WebService atenda apenas requisições oriundas de instâncias dos aplicativos da plataforma Pandora Mobile, garantindo que outros softwares não tenham acesso aos serviços. A equipe de desenvolvimento define um identificador “pandora_mobile” e um token de tamanho e formato aleatório “GoFqh18rO5tUHCyZG2”, e irá e anexar essas credenciais junto a todas as requisições HTTP feitas ao serviço. A validação do timestamp protege o servidor contra replay attacks.

Essas credenciais poderão ser embutidas diretamente no código fonte (proriedades de classe, variáveis de classe, constantes, etc) ou em arquivos de configuração da aplicação que serão empacotados no artefato de deploy da aplicação.