Logo Logo
GitHub Designed by Logto

O que é um servidor de autorização?

O termo “servidor de autorização” pode ser um termo geral que se refere a qualquer servidor que realiza autorização. Vamos nos concentrar na definição no contexto dos frameworks OAuth 2.0 e OpenID Connect (OIDC) .

No OAuth 2.0, um servidor de autorização é um componente que emite access tokens (tokens de acesso) para clients (clientes) após autenticar e autorizar com sucesso. Os access tokens (tokens de acesso) são usados pelos clients (clientes) para acessar recursos protegidos em nome do usuário (proprietário do recurso).

Muitos termos? Vamos ver um exemplo do mundo real: um usuário clica em “Entrar com Google” em uma aplicação “MyApp” que usa Fluxo de código de autorização (Authorization code flow) para login com Google.

Neste exemplo, o Google atua como o servidor de autorização que emite um access token (token de acesso) para o client (MyApp) após o usuário entrar com sucesso. O client (cliente) pode então usar o access token (token de acesso) para buscar o perfil do usuário (recurso protegido) no Google.

Servidor de autorização no OpenID Connect (OIDC)

Como o OpenID Connect é construído sobre o OAuth 2.0, ele reutiliza alguns termos e conceitos do OAuth 2.0. O OIDC adiciona a capacidade de autenticação ao servidor de autorização do OAuth 2.0, o que faz com que o servidor de autorização também seja um OpenID Provider (OP) . Para evitar ambiguidades, recomendamos sempre usar o termo “OpenID Provider” ao se referir ao servidor de autorização no OIDC.

Além de emitir access tokens (tokens de acesso), o OpenID Provider (servidor de autorização) no OIDC também emite ID tokens (tokens de ID) para clients (clientes). Os ID tokens (tokens de ID) contêm informações do usuário e são usados para autenticar usuários.

Como funciona um servidor de autorização?

Um servidor de autorização deve suportar os OAuth 2.0 grants (concessões) para emitir access tokens (tokens de acesso) para clients (clientes). Um tipo de concessão geralmente consiste em uma série de etapas que o client (cliente) e o servidor de autorização seguem para obter um access token (token de acesso).

O servidor de autorização também deve validar a solicitação do client (cliente), autenticar o client (cliente) e verificar a identidade do usuário antes de emitir um access token (token de acesso). Ele também pode impor medidas de segurança adicionais, como Prova de Chave para Troca de Código (PKCE) para o Fluxo de código de autorização (Authorization code flow) .

Casos de uso do servidor de autorização

Como o nome sugere, servidores de autorização são usados para lidar com Autorização (Authorization) . O servidor de autorização pode envolver primeiras e terceiras partes:

  • O exemplo acima de login com Google.
  • Um site de e-commerce (client) solicitando acesso às informações de pagamento de um usuário (recurso protegido) de outro site.
  • Um aplicativo móvel (client) solicitando acesso aos dados de localização de um usuário (recurso protegido) de um fornecedor de serviços de localização.

Ou, pode ser usado apenas para autorização interna, como:

  • Um usuário precisa acessar seus pedidos (recurso protegido) em um site de e-commerce (client).
  • Um serviço (client) precisa acessar um banco de dados (recurso protegido) em uma arquitetura de microsserviços.

Em aplicações modernas, um servidor de autorização também pode ser um Provedor de identidade (IdP) que também suporta OpenID Connect (OIDC) para autenticação de usuários.

Veja também