oauth 2.0 e openid connect

31
OAuth 2.0 e OpenID Connect

Upload: william-calderipe

Post on 16-Aug-2015

160 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: OAuth 2.0 e OpenID Connect

OAuth 2.0 e OpenID Connect

Page 2: OAuth 2.0 e OpenID Connect

WILLIAM CALDERIPE

wcalderipe.com

Backend Developer naConrad Caine

Page 3: OAuth 2.0 e OpenID Connect
Page 4: OAuth 2.0 e OpenID Connect

Proprietário dos Recursos (PR)

Cliente

Servidor de Autorização (SA)

Servidor de Recursos (SR)

Conhecendo os 4 atores do OAuth

Page 5: OAuth 2.0 e OpenID Connect

Proprietário dos Recursos (PR)

Cliente

Servidor de Autorização (SA)

Servidor de Recursos (SR)

O Cliente pede acesso ao SA

Page 6: OAuth 2.0 e OpenID Connect

Proprietário dos Recursos (PR)

Cliente

Servidor de Autorização (SA)

Servidor de Recursos (SR)

O SA pede para o PR se autenticar

Page 7: OAuth 2.0 e OpenID Connect

Proprietário dos Recursos (PR)

Cliente

Servidor de Autorização (SA)

Servidor de Recursos (SR)

O SA retorna um access token

Access Token (AT)

Page 8: OAuth 2.0 e OpenID Connect

Proprietário dos Recursos (PR)

Cliente

Servidor de Autorização (SA)

Servidor de Recursos (SR)

O Cliente usa o AT para acessar os dados do PR no SR

Access Token (AT)

Page 9: OAuth 2.0 e OpenID Connect

Proprietário dos Recursos (PR)

Cliente

Servidor de Autorização (SA)

Servidor de Recursos (SR)

O SR checa se o AT é válido

Access Token (AT)

Page 10: OAuth 2.0 e OpenID Connect

Proprietário dos Recursos (PR)

Cliente

Servidor de Autorização (SA)

Servidor de Recursos (SR)

O SR retorna os dados do PR para o cliente

Page 11: OAuth 2.0 e OpenID Connect

O cliente não sabe nada sobre o usuário

Page 12: OAuth 2.0 e OpenID Connect

(SIMPLIFICADO)

Page 13: OAuth 2.0 e OpenID Connect

Quem é o usuário que se autenticou

Onde

Quando

Como

Quais

Porque

onde ele se autenticou

ele se autenticou

ele se autenticou

atributos ele deu permissão

ele está dando acesso

Page 14: OAuth 2.0 e OpenID Connect

Cliente Servidor de Autorização (SA)

Servidor de Recursos (SR)

foo-mail.com

Sessions

Proprietário dos Recursos (PR)

O cliente pede acesso para o SA

Page 15: OAuth 2.0 e OpenID Connect

Cliente Servidor de Autorização (SA)

Servidor de Recursos (SR)

foo-mail.com

Sessions

Proprietário dos Recursos (PR)

O SA pede para o PR dar autorização para o Cliente

Page 16: OAuth 2.0 e OpenID Connect

Cliente Servidor de Autorização (SA)

Servidor de Recursos (SR)

foo-mail.com

Sessions

Proprietário dos Recursos (PR)

O SA retorna um Access Token e um ID Token

ID Token (IT) and Access Token (AT)

Page 17: OAuth 2.0 e OpenID Connect

Client Servidor de Autorização (SA)

Servidor de Recursos (SR)

foo-mail.com

Sessions

Proprietário dos Recursos (PR)

O Cliente usa o AT para acessar os dados do PR no SR

Access Token (AT)

Page 18: OAuth 2.0 e OpenID Connect

Client Servidor de Autorização (SA)

Servidor de Recursos (SR)

foo-mail.com

Sessions

Proprietário dos Recursos (PR)

O SR checa se o AT é válido

Access Token (AT)

Page 19: OAuth 2.0 e OpenID Connect

Cliente Servidor de Autorização (SA)

Servidor de Recursos (SR)

foo-mail.com

Sessions

Proprietário dos Recursos (PR)

O SR retorna os dados do PR para o cliente

Page 20: OAuth 2.0 e OpenID Connect

Tá, e qual a moral disso?

Page 21: OAuth 2.0 e OpenID Connect

Confiança

Page 22: OAuth 2.0 e OpenID Connect

E quando ele expirar como eu faço pra renovar?

Page 23: OAuth 2.0 e OpenID Connect

O ID token é um JWT( JSON Web Token )

Page 24: OAuth 2.0 e OpenID Connect

Documento JSON assinado{ "iss": "https://auth.awesome-app.com", "typ": "JWT", "alg": "RS256"},{ "username": "jsmith", "name": "John Smith", "email": "[email protected]", "aud": "https://foo-mail.com", "iss": "https://auth.awesome-app.com", "nbf": 56360928133425594, "jti": "JmzLVuRyAr-XAPw-tPey-I6Z0-hUugY8BG6r", "exp": 9068550373, "iat": 4456772927}

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEzODY4OTkxMzEsImlzcyI6ImppcmE6MTU0ODk1OTUiLCJxc2giOiI4MDYzZmY0Y2ExZTQxZGY3YmM5MGM4YWI2ZDBmNjIwN2Q0OTFjZjZkYWQ3YzY2ZWE3OTdiNDYxNGI3MTkyMmU5IiwiaWF0IjoxMzg2ODk4OTUxfQ.uKqU9dTB6gKwG6jQCuXYAiMNdfNRw98Hw_IWuA5MaMo

Page 25: OAuth 2.0 e OpenID Connect

2 tipos de tokens

hUugY8BG6r

John Smith

Valor Referência

Page 26: OAuth 2.0 e OpenID Connect

Token de Valores

Possuí toda a informação necessária

Page 27: OAuth 2.0 e OpenID Connect

Token de Referência

hUugY8BG6r

John Smith

Não possuí informação fora do ecossistema

Page 28: OAuth 2.0 e OpenID Connect

Tá, mas onde isso tudo é usado?

Page 29: OAuth 2.0 e OpenID Connect
Page 30: OAuth 2.0 e OpenID Connect

Play with it!https://developers.google.com/oauthplayground

Page 31: OAuth 2.0 e OpenID Connect

wcalderipe.com

OBRIGADO

Perguntas?