O que são Metadados do Servidor de Autorização OAuth 2.0?
Os Metadados do Servidor de Autorização OAuth 2.0 são um formato padronizado definido no RFC 8414 que permite que os clientes OAuth 2.0 descubram e obtenham automaticamente as informações necessárias para interagir com os servidores de autorização OAuth 2.0.
Isso inclui informações essenciais, como locais de endpoints, funcionalidades suportadas e capacidades do servidor.
O formato de metadados fornece um documento de configuração legível por máquina que ajuda a simplificar o processo de integração entre clientes e servidores de autorização, reduzindo a necessidade de configuração manual.
Como funcionam os Metadados do Servidor de Autorização OAuth 2.0?
No ecossistema OAuth 2.0, existem vários papéis chave:
- Servidor de autorização : Emite access tokens para clientes após autenticar com sucesso o resource owner
- Cliente : Aplicação que solicita acesso a recursos protegidos
- Proprietário do recurso (Resource owner) : Entidade capaz de conceder acesso a recursos protegidos
- Servidor de recursos : Servidor que hospeda recursos protegidos
Os Metadados do Servidor de Autorização fornecem uma maneira padronizada para os clientes descobrirem e entenderem como interagir com o servidor de autorização. Veja como funciona:
- O cliente conhece ou descobre o URL do issuer do servidor de autorização
- O cliente constrói o URL dos metadados anexando
/.well-known/oauth-authorization-server
ao URL do issuer - O cliente recupera o documento de metadados contendo a configuração do servidor
- O cliente usa os metadados recuperados (endpoints, funcionalidades suportadas, etc.) para se configurar adequadamente e interagir com o servidor de autorização
Por exemplo, se o URL do issuer for https://auth.example.com
, os metadados estariam disponíveis em:
https://auth.example.com/.well-known/oauth-authorization-server
O documento de metadados inclui informações importantes como:
issuer
: O identificador do servidor de autorizaçãoauthorization_endpoint
: O URL do endpoint de autorizaçãotoken_endpoint
: O URL do endpoint de tokenscopes_supported
: Scopes disponíveisresponse_types_supported
: Tipos de resposta suportadostoken_endpoint_auth_methods_supported
: Métodos de autenticação do cliente suportados
Para uma lista completa de campos de metadados, consulte RFC 8414 Seção 2 .
Com esses valores de metadados, os clientes podem configurar e executar automaticamente o fluxo OAuth 2.0:
-
Configuração inicial:
- O cliente valida se o
issuer
corresponde ao servidor de autorização esperado - O cliente verifica
response_types_supported
para garantir que seu tipo de fluxo (por exemplo,code
) é suportado
- O cliente valida se o
-
Pedido de autorização:
- O cliente usa
authorization_endpoint
para construir o URL de autorização - O cliente seleciona os scopes apropriados de
scopes_supported
com base em suas necessidades - Exemplo:
https://auth.example.com/authorize?response_type=code&scope=profile email
- O cliente usa
-
Troca de token:
- Após receber o código de autorização, o cliente usa
token_endpoint
para a troca de token - O cliente verifica
token_endpoint_auth_methods_supported
para determinar como autenticar (por exemplo,client_secret_basic
) - Exemplo: Enviar uma solicitação POST para o endpoint de token com credenciais do cliente e código de autorização
- Após receber o código de autorização, o cliente usa
Este fluxo básico ajuda os clientes a se configurarem automaticamente e interagirem com o servidor de autorização sem configuração manual de endpoints ou seleção de scopes por tentativa e erro.
Qual é a diferença entre Metadados do Servidor de Autorização OAuth 2.0 e OpenID Connect Discovery?
As principais diferenças são:
-
Escopo e Propósito:
- Os Metadados do Servidor de Autorização OAuth 2.0 focam especificamente na configuração do protocolo OAuth 2.0
- Descoberta do OpenID Connect (OIDC) inclui parâmetros adicionais para funcionalidades relacionadas à identidade, tais como:
userinfo_endpoint
: Endpoint para recuperar informações do usuárioid_token_signing_alg_values_supported
: Algoritmos de assinatura suportados para ID Tokensclaims_supported
: Claims de usuário disponíveis que podem ser retornados no ID Token ou do UserInfo Endpoint- Suporta o scope
openid
para autenticação - Inclui tipos de resposta de hybrid flow (por exemplo,
code id_token
,code id_token token
)
-
Endpoint de Metadados:
- OAuth 2.0 usa
/.well-known/oauth-authorization-server
- OpenID Connect usa
/.well-known/openid-configuration
- OAuth 2.0 usa
Os Metadados do Servidor de Autorização OAuth 2.0 são compatíveis com OpenID Connect Discovery?
Sim, os Metadados do Servidor de Autorização OAuth 2.0 são compatíveis com Descoberta do OpenID Connect (OIDC) .
A especificação de metadados OAuth 2.0 (RFC 8414) foi inspirada pelo OpenID Connect Discovery 1.0, que já era amplamente adotado na prática.
Pontos chave sobre a conformidade:
- O formato de metadados segue a mesma estrutura JSON
- Os servidores de autorização podem suportar ambos os endpoints simultaneamente
- Os Provedores de Identidade geralmente expõem ambos os endpoints para compatibilidade retroativa
- Os metadados OAuth 2.0 podem ser estendidos com campos específicos do OpenID Connect quando necessário
Esta compatibilidade garante que os servidores de autorização possam atender tanto clientes OAuth 2.0 puros quanto partes confiantes do OpenID Connect sem conflitos.