1        API SMARTCHARGE

No ambiente Smartcharge, o acesso a qualquer informação e feita através de API’s. Foi criado um pacote implementado no padrão OAuth2 e denominada Smartcharge OAuth2 Framework. Esse pacote fornece endpoints, dados e lógica necessária para implementar o padrão OAuth2 em projetos Smartcharge.

1.1  OAuth

O OAuth é um padrão de autenticação para API’s Web, permitindo que aplicações client acessem recursos protegidos em uma API. É um padrão de autorização aberto, poderoso e flexível que pode ser usado para proteção de aplicações e API’s Rest. Com OAuth é possível prover um mecanismo padronizado em que todos os componentes do sistema possam interagir de um modo seguro. O padrão mais atual do OAuth é o OAuth2. O OAuth 2 fornece fluxo de autorização para aplicações web e desktop, e para dispositivos móveis.

1.2  Como funciona

A estrutura de autorização Smartcharge permite que os websites e aplicativos obtenham acesso limitado às contas de usuários em um serviço HTTP. Ele funciona delegando a autenticação de usuário ao serviço que hospeda a conta do usuário, e autorizando aplicações de terceiros a acessar a conta do usuário.

Este guia informativo é orientado para desenvolvedores de aplicativos, e fornece uma visão geral dos papéis OAuth 2, tipos de concessão de autorização, casos de uso, e fluxos.

1.3  Papéis OAuth

O OAuth define quatro papéis:

·         Proprietário do Recurso

·         Cliente

·         Servidor de Recurso

·         Servidor de Autorização

1.3.1   Proprietário do Recurso: Usuário

O proprietário do recurso é o usuário que autoriza uma aplicação a acessar sua conta. O acesso da aplicação à conta do usuário é limitado ao “escopo” da autorização concedida (por exemplo, acesso para leitura ou escrita).

1.3.2   Recurso / Servidor de Autorização: API

O servidor de recurso hospeda as contas de usuário protegidas, e o servidor de autorização verifica a identidade do usuário e então emite tokens de acesso para a aplicação.

Pelo ponto de vista de um desenvolvedor de aplicações, a API de um serviço cumpre os papéis de servidor de recursos e de autorização.

1.3.3   Cliente: Aplicação

O cliente é a aplicação que quer acessar a conta do usuário. Antes de fazer isso, ela deve ser autorizada pelo usuário, e a autorização deve ser validada pela API.

1.3.4   Fluxo Abstrato do Protocolo

Agora que você tem uma idéia do que são os papéis OAuth, vamos dar uma olhada em um diagrama de como eles geralmente interagem uns com os outros.

https://assets.digitalocean.com/articles/translateddiagrams32918/Abstract-Protocol-Flow-Portuguese@2x.png

1.3.5   Registro da Aplicação

Antes de utilizar o Smartcharge OAuth2 Framework com a sua aplicação, você deve registrar sua aplicação com o serviço. Isso é feito através de um formulário de registro na parte de “desenvolvedor” do website do serviço, onde você irá fornecer as seguintes informações:

·         Nome da Aplicação

·         Site da Aplicação

·         URI de Redirecionamento ou URL de Retorno

A URI de redirecionamento é para onde o serviço irá redirecionar o usuário depois de autorizar (ou negar) a sua aplicação, e, portanto, a parte do seu aplicativo que irá lidar com códigos de autorização ou tokens de acesso.

1.3.6   ID do Cliente e Chave de Acesso do Cliente

Uma vez que sua aplicação esteja registrada, o serviço irá emitir “credenciais do cliente” na forma de identificador do cliente e chave de acesso do cliente. O ID do Cliente é uma seqüência exposta publicamente que é utilizada pelo serviço de API para identificar a aplicação, e também é utilizada para construir URLs de autorização que são apresentadas aos usuários. A Chave Secreta do Cliente é utilizado para autenticar a identidade da aplicação para o serviço de API quando a aplicação solicita acesso à conta do usuário, e deve ser mantido em segredo entre a aplicação e a API.

1.3.7   Concessão de Autorização

No Fluxo Abstrato do Protocolo acima, os primeiros quatro passos cobrem a obtenção de uma concessão de autorização e do token de acesso. O tipo da concessão de autorização depende do método usado pela aplicação para solicitar a autorização, e dos tipos de concessão suportados pela API. O OAuth 2 define quatro tipos de concessão, cada um dos quais é útil em diferentes casos:

·         Código de Autorização: usado com aplicações do lado servidor

·         Implícito: usado com Apps Móveis ou Aplicações Web (aplicações que rodam no dispositivo do usuário)

·         Credenciais de Senha do Proprietário do Recurso: usado com aplicativos confiáveis, como os de propriedade do próprio serviço

·         Credenciais do Cliente: usado no acesso de API das Aplicações