´

OpenID Connect 2.0

O OIDC é um protocolo de autenticação implementada sobre o protocolo OAuth 2.0. Enquanto que o protocolo OAuth 2.0 é destinado ao controlo de acesso e partilha de recursos o protocolo OIDC é destinado a autenticação de utilizadores.

Este protocolo garante a implementação do Single Sign-on (SSO) de forma segura. O SSO permite aos utilizadores autenticarem uma única vez e ter acesso a múltiplas aplicações.

Como funciona

Os passos a seguir ilustram como funciona a autenticação dum utilizador numa aplicação via Autentika:

  1. Quando o utilizador iniciar o processo de autenticação na aplicação, a aplicação envia uma requisição de autorização ao Autentika (redireciona o utilizador para o Autentika);
  2. O Autentika autentica o utilizador ou solicita as credenciais de acesso caso o utilizador ainda não estiver autenticado e solicita o consentimento (autorização) do utilizador para a partilha dos dados de perfil com a aplicação;
  3. Após o utilizador autenticar e autorizar a partilha dos dados, o Autentika redireciona o utilizador para a aplicação e envia á aplicação um código de acesso;
  4. A aplicação faz uma requisição ao Autentika, passando o código de acesso e solicitando o token de acesso;
  5. O Autentika valida o código e retorna á aplicação o token de acesso;
  6. A aplicação requisita os dados do utilizador ao Autentika, identificando-se com o token de acesso.

O fluxo de autenticação descrita acima corresponde a concessão de autorização utilizando um código (Authorization Code). Para mais detalhes sobre este e outros tipos de conessão de autorização clique aqui.

Token de acesso

Os tokens de acesso são credenciais utilizadas pelas aplicações para consumir uma determinada API. O Autentika gera e faz a gestão do ciclo de vida dos tokens.

Token de identidade (ID Token)

O ID token é uma JSON Web Token (JWT) que contem os dados de perfil de um utilizador (e outros metadados), sendo composto pelo cabeçalho, corpo e assinatura. É consumida pela aplicação para obter os dados de perfil do utilizador (como por exemplo o nome e o email).

Exemplo duma ID token:

{ "sub" : "pedro.ramos@nosi.cv", "iss" : "https://autentika.gov.cv/oauth2/oidcdiscovery", "aud" : "74zdFEfgdZ6L1Ze82ZID8", "auth_time" : 1563964449, "iat" : 1563968049, "exp" : 1563964449 }

Claims

Uma claim é uma informação que caracteriza uma entidade (como por exemplo o nome ou o email). Uma JWT contém um conjunto de claims.

Endpoints do OpenID Connect

Authorization Endpoint

Este é o endpoint do Autentika onde o utilizador é solicitado para autenticar e autorizar a partilha dos dados de seu perfil (como por exemplo nome e email) com uma determinada aplicação.

Quando um utilizador aceder uma aplicação que requer autenticação, ele é redirecionado para este endpoint. Esse é o único endpoint em que o utilizador interage com o Autentika (normalmente via um browser web).

Token Endpoint

O Token Endpoint é utilizado pelas aplicações para obter tokens, incluindo o ID Token e o Access Token. Para autenticar-se nesse endpoint, a aplicação deve apresentar o seu ID e a sua chave secreta na requisição.

A chamada a este endpoint deve ser realizada com o método POST e a comunicação deve utilizar o protocolo TLS.

UserInfo Endpoint

As aplicações utilizam o UserInfo Endpoint do Autentika para obter claims (atributos) do utilizador autenticado. Apenas são retornados os atributos autorizados pelo utilizador.

Para identificar-se, a aplicação deve apresentar um token de acesso válido. A chamada a este endpoint pode ser feita utilizando tanto o método GET como o método POST, mas a comunicação deve utilizar o protocolo TLS.

Na resposta do Autentika os claims são apresentados num objeto JSON em forma de pares chave (nome do atributo) e valor (valor do atributo).

Endpoints adicionais

A listagem a seguir descreve endpoints adicionais.

Token Revocation Endpoint Permite às aplicações revogar um token de acesso ou uma refresh token
Token Introspection Endpoint Endpoint para validar um token. A resposta ao chamar esse endpoint inclui a validade do token e quantos segundos restam para o token tornar inválido (para o fim do seu tempo de vida)
Session IFrame Endpoint Permite ás aplicações monitorar o estado da autenticação do utilizador no Autentika (verificar se o utilizador continua logado ou fez o logout).
Logout Endpoint É utilizado pela aplicação para redirecionar o utilizador para a página de logout do Autentika. Na página de logout o Autentika disponibiliza a opção de logout ao utilizador

Voltar ao topo