Baixe o app para aproveitar ainda mais
Prévia do material em texto
OAuth 2.0 Introdução - É um protocolo de autorização para API's web. - Permite uma aplicação utilizar recursos de outras, sem precisar expor suas credenciais. Introdução Por que usar? ● Segurança ○ Aplicações que desejam consumir recursos de terceiros ganhariam um acesso muito amplo aos recursos. ○ A granularidade da concessão de acesso seria de total responsabilidade da aplicação disponibilizadora de recursos. - Client: A aplicação que solicita acesso aos recursos protegidos do Resource Owner. - Authorization Server: Servidor que gera tokens de acesso, permite que o Client acesse os recursos que o Resource Owner permitiu, com o nível de acesso que o Resource Owner especificou. Papéis(Roles) - Resource Owner: A entidade capaz de controlar o acesso aos recursos protegidos. Como o nome diz, é o “dono do recurso”. - Resource Server: Servidor que hospeda os recursos a serem acessados. É quem recebe as requisições e quem expõe a API que queremos acessar. Papéis(Roles) Papéis(Roles) 1. O Client pede autorização ao Resource Owner para acessar seus recursos. 2. Assumindo que o Resource Owner autorize o acesso, o Client recebe um authorization grant(garantia de autorização). Essa credencial representa a autorização concedida pelo Resource Owner. Fluxo de Autorização 3. O Client pede um access token ao Authorization Server, enviando o authorization grant. 4. Assumindo que o Client foi autorizado com sucesso e que o authorization grant é válido, o Authorization Server gera um access token e o envia ao Client. Fluxo de Autorização 5. O Client pede acesso a um recurso protegido pelo Resource Server, e se autentica utilizando o access token. 6. Assumindo que o access token seja válido, o Resource Server responde à requisição do Client servindo o recurso solicitado. Fluxo de Autorização - Authorization Code: Utilizados por aplicações web que executam em servidores, principalmente quando queremos obter recursos de usuários de aplicações de terceiros, login com Google ou Facebook por exemplo. - Implicit: Utilizado por SPAs (single page applications) que executam em browsers onde o cliente recebe diretamente o token de acesso. Tipos de autorização - Resource Owner Password Credentials: Utilizado por trusted apps (aplicativos confiáveis). Aplicativos podem ser considerados trusted apps por quem define as restrições de acesso do Resource Owner. - Client Credentials: Utilizado em comunicações do tipo “machine to machine”, deixando de ser necessário que o usuário forneça informações de acesso. Tipos de autorização https://oauthtest.000webhostapp.com/ https://AUTH_DOMAIN.com/auth ?response_type=code &audience=API_AUDIENCE &client_id=CLIENT_ID &redirect_uri=REDIRECT_URI &scope=PHOTOS Exemplo com Authorization Code Exemplo com Authorization Code response_type=code Aplicação espera receber um Authorization Code. audience Identificador único da API que seu aplicativo deseja acessar. client_id ID da aplicação no domínio requisitado. redirect_uri URI para onde o usuário será redirecionado após concluir a autenticação com sucesso. scope Define quais recursos do usuário deseja obter acesso. ● https://developers.google.com/identity/protocols/OAuth2 ● https://developers.google.com/oauthplayground/ ● https://developers.google.com/api-client-library/ ● https://developers.google.com/adwords/api/docs/guides/authentication?hl=pt-br ● https://developer.twitter.com/en/docs/basics/authentication/api-reference/token Referências Fábio Preisler Larissa Taw Raphael Martins Thiago Mohr
Compartilhar