[SP-pm] Autenticação REST

Marcelo Milhomem milhomem at is4web.com
Mon Mar 2 04:41:55 PST 2015


Enviar o ID do usuário em toda requisição é ruim, ele acaba sendo redundante e fazendo par com o token.

O token é uma string única, randômica e temporária associada a um usuário e persistida em algum database. É enviado em toda requisição através de header normalmente. É uma pratica bem comum e viável.

A questão do certificado no client é uma coisa que quero muito fazer a um tempo, mas realmente temos poucas ferramentas prontas, temos que fazer. O Renato falou que o HTTPS já faz isso e ficou a impressão de que isso seria uma camada a mais e não é, ele é o próprio SSL do HTTPS, você só muda as chaves que estão em jogo.

A grande vantagem disso é que não precisa ter um banco de dados central de tokens, ou um controlador de autenticação que deve ser consultado a cada requisição. O client não mandaria mais um token e sim sua identificação confiável por qualquer servidor HTTP que consiga resolver SSL. Você só precisaria distribuir nesses servidores uma chave CA.

Com essa abordagem a quantidade de requisições em banco de dados pode cair pela metade e tira da sua arquitetura o ponto único de falha. Um tópico importante citado por outros é que o seu método de autenticação tem que ser suportado largamente e esse método é nativo para os Browsers e muito bem documentado, eu só vi algumas limitações no mundo Mobile quando se tenta usar um Certificado auto-assinado.

Abs,

> On Mar 1, 2015, at 11:46 PM, Eduardo Almeida <eduardo at web2solutions.com.br> wrote:
> 
> On 3/1/15 11:34 PM, Eduardo Almeida wrote:
>> O user autentica o client uma primeira vez e recebe um token para as consecutivas requisições feita á API. Tokens expiram. É lógico que você pode definir a vida útil deles de acordo com sua necessidade.
> Dá para se implementar coisas interessantes sobre os tokens.
> 
> O token pode conter informações associadas que poderão ser usadas para confrontar com informações obtidas sobre o cliente em cada requisição.
> 
> Por exemplo
> 
>     - você pode associar um 'user id' (geralmente eu envio, via headers, o id do user que está chamando o end point)
>     - você pode associar uma 'allowed origin' (e negar requisições com esse token se feita de uma origem desconhecida)
> 
> Enfim ... há uma série de coisas que poderão ser implementadas no sentido de validar o acesso. é óbvio que há coisas que podem ser burladas quando feita a requisição (mascarando), porém, pra burlar isso, a pessoa precisa conhecer todo seu esquema de validação.
> 
> 
> 
> 
> -- 
> Eduardo Almeida - Software Engineer
> eduardo at web2solutions.com.br <mailto:eduardo at web2solutions.com.br> - 27 3261-0082 / 27 9839 3755
> 
> WEB2 Solutions - Inovando, sempre! 
> <dhtmlx_certified.png>
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20150302/95d4dff2/attachment-0001.html>


More information about the SaoPaulo-pm mailing list