Autenticação com o Twitter em várias etapas

OAuth

Comecei a estudar sobre a autenticação OAuth para utilizá-la com o Twitter. Protocolo utilizado em muitos serviços web e é a forma mais segura de permitir que uma terceira aplicação acesse um serviço  (o Twitter no caso) de maneira segura e prática.

Uma forma de utilizar o Twitter seria solicitando aos usuários que informassem seu usuário e senha para a aplicação intermediária (vou chamá-la de Hub). Um exemplo pode ser visto na  figura abaixo.

Twitter

Esse modelo apresenta diversos problemas ligados à segurança. Informando o usuário e senha para o Hub, esta aplicação pode realizar qualquer operação no Twitter em nome do usuário, inclusive realizar alterações no perfil.

Justamente para resolver esse problema, foi criado o OAuth que restringe o acesso a operações determinadas sem o fornecimento de senhas para o Hub. O processo pode ser visto na figura abaixo.

OAuth

A autenticação acontece da seguinte forma:

O Hub realiza uma solicitação ao Twitter pedindo um endereço, para que um usuário se vincule a ele. Quando o usuário final visualiza a página, é solicitada para confirmar ao Twitter se perfil de usuário e concordar ou não com a vinculação de seu perfil com o Hub. A página já estamos acostumados a ver.

Twiiter

Após essa confirmação, o Twitter chama o Hub, informando uma nova chave gerada sem vinculação com o usuário e senha reais. Isso garante que o Hub desconhece os dados do usuário.

Para que o Hub possa utilizar a autenticação OAuth é necessário que esteja cadastrado como um App no Twitter (https://dev.twitter.com/apps). Com o cadastramento serão gerados dois códigos: Consumer Key e Consumer Secret.

Guarde esses códigos! Eles são muito importantes e são utilizados em todas as requisições com o Twitter, pois essa é a maneira que ele reconhece a App. Nesse momento é especificado que tipo de acesso será necessário ao perfil do usuário: Somente Leitura ou Leitura e Gravação.

Na última troca de mensagens, o Twitter devolve 2 novos códigos: Access token e Access token secret, estes são os códigos únicos que dão acesso ao usuário.

Pronto!! O vinculo entre o Hub e o Twitter está configurado. 

Todas vez que o Twitter for acessado, os 4 parâmentros (Consumer Key, Consumer Secret,  Access token e Access token secret) devem ser informados.

Como o nome diz a autenticação é feita em vários passos, mas esses passos são feitos entre o Hub e o Twitter, o usuário final precisa somente confirmar o vínculo entra as duas aplicação.

Não vou entrar em detalhes de codificação, pois existe centenas de códigos prontos para realizar esta operação. Para C# utilizei como referência as páginas  http://www.deanhume.com/Home/BlogPost/a-simple-guide-to-using-oauth-with-c-/49 e http://oauth.net/code/. Existe um framework chamado Twiiterizer (http://www.twitterizer.net/) com toda a codificação pronta.

Alguns materiais que marquei:

https://dev.twitter.com/docs/auth/oauth

https://dev.twitter.com/docs/auth/using-oauth

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s