OAuth: Gerenciamento de acessos para clientes de APIs

Preview:

Citation preview

Fábio  Assunção  da  Silva  front-end / back-end developer

www.fabioassuncao.com.br

Sobre  Front-end / back-end developer na VAT Tecnologia SA, graduando em Sistemas de Informação, pai do Gabriel, apaixonado por fígado and Babitinha, interessado em UX e Interaction Design.

OAuth2  Gerenciamento de acessos para clientes de APIs

O  que  é  OAuth?  Um padrão aberto para autenticação

Como  surgiu?    OAuth surgiu em 2006 quando Blaine Cook estava implementando o Twitter OpenID e notou que o mesmo tinha muitas limitações e não delegava acessos, também não havia um padrão aberto para autenticação de acesso a APIs. Em 2007 OAuth discussion group foi criado por um grupo de desenvolvedores que se empenharam em resolver esse problema. Entre eles, Blaine Cook, Chris Messina, Larry Halff, David Recordon, Eran Hammer, DeWitt Clinton.

Timeline  11/2006 Surgiu a ideia 04/2007 Criação do OAuth discussion group 07/2007 Projeto da versão 1.0 04/2009 “Faça login com o Twitter”

Quem  usa?  

VOCE  

Nos últimos anos, com a tão aclamada Web 2.0 muitos serviços passaram a fornecer APIs que podem ser usadas por terceiros. Twitter, Google, Facebook são alguns exemplos.

ObjeCvo  Permit i r que uma apl icação possa acessar determinadas APIs no lugar do usuário de forma segura e padronizada.

A  autenCcação  por  meio  do    OAuth  consiste  de  três  passos

Referência:  h

Jp://www.4shared

.com

/  

SOLICITAÇÃO  

1)  Aplicação  cliente  obtém  chave  de  autenCcação  

Referência:  h

Jp://goo.gl/6YW

6md  

Referência:  h

Jps://w

ww.fa

cebo

ok.com

 

AUTORIZAÇÃO  

2)  Usuário  autoriza  aplicação    cliente  na  aplicação  servidora  

Referência:  h

Jp://goo.gl/6YW

6md  

Referência:  h

Jp://www.4shared

.com

/  

CONTROLE  DE  ACESSOS  CLIENTE  

3)  Aplicação  cliente  troca  a  chave  de    autenCcação  pela  chave  de  acesso  

Referência:  h

Jp://goo.gl/6YW

6md  

Referência:  h

Jps://w

ww.fa

cebo

ok.com

 

REVOGAR  ACESSO  

Algumas  vantagens    Flexibilidade

Independente de implementação

Deployment diverso (público, privado e corporativo)

Interoperabilidade (web, mobile , desktop)

Utilizar serviços que o usuário confia

Pode-se trocar de implementação facilmente

Segurança O usuário deve ter cuidado ao autorizar aplicações

clientes e conceder apenas os privilégios necessários.

Como  uClizar  em  um    Sistema,  site,  blog  ou    aplicaCvo  ?  

1. Cadastre seu aplicativo

https://developers.facebook.com/

https://dev.twitter.com/

https://developers.google.com

2. Utilize uma lib, framework ou desenvolva seu script

http://oauth.net/2/

https://github.com/fkooman/php-oauth-client

https://github.com/ivan-novakov/php-openid-connect-client

https://github.com/ssx/oauth-facebook-examples

http://www.phpclasses.org/package/7700-PHP-Authorize-and-access-APIs-using-OAuth.html

Referências  http://oauth.net/ http://hueniverse.com/oauth/guide/ http://hueniverse.com/2007/10/04/beginners-guide-to-oauth-part-i-overview/ http://www.slideshare.net/gigantedesousa/quemtemmedoo-auth http://www.slideshare.net/GuilhermeHenriqueOliveira/coderockrjam-entendendo-oauth-com-zend http://goo.gl/6YW6md