Busca com resultados formatados: /search.xml?q=fluffy+fur
Exemplos de serviços de autenticação utilizados
PayPal Permissions Service API
Facebook OAuth 2.0
Twitter OAuth 1.0a
Toda chamada REST deve ser executada usando ssl (https), pois evita ataques do tipo man in the midle
Toda chamada deve ocorrer com chaves de API dedicadas
Todas chamadas REST devem ser autenticadas
Tipos de autenticação
Http Básica
(Authtype basic)
Utiliza a autenticação do apache, onde é
configurado 'basic' e com utilização de arquivo
de senha ou senhas gerenciadas pela aplicação
Vantagens
Está disponível desde o Http 1.0
Api mantém apenas hashes
Desvantagens
Depende da configuração do webserver
Nome do usuário e senha
são transmitidos via base64
Autenticação de resumo
(AuthType digest)
Possui 2
elementos a
mais do que a
básica
NONCE: string passada pela api para
o cliente que deve ser enviada junto à
requisição
Geração do NONCE = MD5(TIMESTAMP:METHOD(GET):URI:PKEY)
qop: verificador de qualidade de proteção
Vantagens
Senhas protegidas, utiliza troca de hash
Http 1.0
Utiliza NONCE e CNONCE, estes
protegem contra ataques de ataque
repetido, pois possui sincronismo
entre api/cliente e também contra
inserção de textos manipulados
Desvantagens
Complexidade maior que a básica
Toda requisição deve passar
pelo desafio (duplica cada
requisição)
Vulnerável a apis forjadas
Token de Usuário (WSSE)
É uma extensão do SOAP
Todo processo de autenticação é feito pela aplicação
Desafio de autenticação contém:
Defino o tipo WSSE
Especifica o perfil e regras
Desvantagens
API mantém cópia da senha
Desconsidera método, URI, conteúdo, etc
Vulnerável à intercepções
Vantagens
Não envia senha pelo meio
Não requer configuração do servidor
Identifica servidor, evitando apis
forjadas (outras API fingindo ser a sua)
Assinatura de Requisição Personalizada
Utiliza Hmac com md5 e sha1
Utiliza chaves simétricas
Utilizar NONCE
A chave pode ser transferida
no login ou no momento do
cadastro
Políticas de segurança das
chaves, revogadas, alteradas
Vatagens
Servidor identificável
Senhas seguras
Requisições indiretas
Desvantagens
Pode se tornar complexo
Pode desagradar o desempenho
Depende do suporte às bibliotecas
OAuth
É utilizado pelo Facebook, Twitter, Github
Autenticação do Windows
Depende dos protocolos suportados pelo Windows
É seguro mesmo sem utilizar ssl (https)
Requer os serviços e produtos da Microsoft (Active Directory)
A autenticação funciona como um selo de autenticidade que é enviado jungo com cada chamada
A API não utiliza sessão
O cliente consumidor de uma api não precisa utilizar cookies
Armazenamento no cliente consumidor da api
WebStorage -> Armazenar o estado da aplicação no cliente
SessionStorage -> Armazenar o estado de uma aplicação em uma
página e o mesmo estado para outra página
LocalStorage -> manter informação de uma dia por
outro (muito tempo)
Cada requisição em uma API REST deve ter os dados para autenticá-la