WebAPI - Como funciona a autorização OAUTH 2.0?

WebAPI - Como funciona a autorização OAUTH 2.0?

O OAuth 2.0 é um protocolo standard de autorização que permite que aplicações acedam de forma limitada à conta de um utilizador num serviço Web (HTTP), como a Web API Valuekeep CMMS.
O protocolo delega a autenticação do utilizador ao serviço que detém a conta do utilizador e autoriza o acesso de aplicações externas a essa conta do utilizador. O protocolo disponibiliza fluxos de autorização para aplicações Web, aplicações desktop e aplicações mobile.
De seguida descreve-se o funcionamento básico do protocolo na perspetiva do developer de uma aplicação.

OAuth Roles

O protocolo define 4 roles (papéis):
  1. Resource owner: trata-se do utilizador que autoriza o acesso da aplicação à sua conta. Esse acesso fica limitado ao scope da autorização dada pelo utilizador.
  2. Client: é a aplicação que pretende aceder à conta do utilizador.
  3. Resource server: corresponde ao servidor que hospeda as contas do utilizador.
  4. Authorization server: é o servidor que verifica a identidade do utilizador e atribui tokens de autorização ao cliente (a aplicação).
Do ponto de vista do developer de uma aplicação, a Web API que pretende consumir cumpre tanto o papel de resource server como o papel de authorization server. Por isso é comum combinarem-se os dois papéis e chamar-lhe de Service (serviço) ou simplesmente API.

Fluxo genérico de autorização

Tipicamente o fluxo de autorização de uma aplicação externa seguirá os seguintes passos:
  1. A aplicação solicita autorização para aceder aos recursos do utilizador.
  2. Se o utilizador já autorizou esse pedido, a aplicação recebe um authorization grant.
  3. A aplicação solicita ao authorization server um access token, apresentando a identidade do utilizador e o authorization grant.
  4. Se a identidade da aplicação estiver autenticada e o authorization grant for válido, o authorization server atribuirá um acess token à aplicação e o fluxo de autorização termina.
  5. A aplicação solicita um determinado recurso ao resource server e apresenta o access token que obteve antes.
  6. Se o access token for válido, o resource server devolverá o recurso solicitado à aplicação.
  7. Na realidade o fluxo real de autenticação depende do tipo de authorization grant que for utilizado, no entanto, este é fluxo conceptual normal do OAuth. Adiante discutem-se os vários authorization grants disponíveis.

Authorization Grant : Client credentials grant

O tipo de grant utilizado depende do método de autorização que aplicação pretender utilizar e, claro, dos métodos que a Web API suportar. Para trabalhar com a Web API do Valuekeep CMMS devem usar o método de autorização Client Credentials.

Refresh Token

Quando um access token expira, a sua utilização para fazer pedidos à API resultará num erro “Invalid Token Error”. Nesse momento, se um refresh token tiver sido incluído no momento em que o access token foi gerado, pode ser utilizado para fazer um novo token de acesso ao servidor.
Exemplo de um pedido desse tipo:


    • Related Articles

    • WebAPI - Como obter o registo da webapi?

      No momento em que é realizada a subscrição no Valuekeep CMMS o subscriber recebe um email com as credenciais da subscrição, compostas por client_Id e um Cliente_Secret. Estas credencias devem ser guardadas, caso contrário não será possível utilizar a ...
    • WebAPI - Como obter os equipamentos a que um funcionário tem acesso?

      O método devolve a lista de equipamentos e o seu nível de acesso ao qual o funcionário tem permissão. O método a utilizar para obter a lista de equipamentos e o seu nível de acesso ao qual o funcionário tem permissões é: GET ...
    • WebAPI - Como obter as ferramentas a que um funcionário tem acesso?

      O método devolve a lista de ferramentase o seu nível de acesso ao qual o funcionário tem permissão. O método a utilizar para obter a lista de ferramentas e o seu nível de acesso ao qual o funcionário tem permissões é: GET ...
    • WebAPI - Como obter as localizações a que um funcionário tem acesso?

      O método devolve a lista de localizações e o seu nível de acesso ao qual o funcionário tem permissão. O método a utilizar para obter a lista de localizações e o seu nível de acesso ao qual o funcionário tem permissões é: GET ...
    • WebAPI – Autenticação

      A autenticação na webapi é feita através do serviço "Primavera Identity". Para obter o token de autenticação deve seguir os seguintes passos: Fazer a chamada ao Primavera Identity(https://identity.primaverabss.com/connect/token), colocando o ...