Configuração OpenID (OpenID Configuration)
O endpoint de configuração OpenID, também conhecido como OpenID Configuration ou OpenID Connect Discovery Endpoint, é um recurso fundamental para a autenticação moderna baseada em padrões. Ele permite que clientes (aplicações) obtenham dinamicamente as informações necessárias para interagir com um provedor OpenID (OP) de forma padronizada.
Esse endpoint é publicado no caminho /.well-known/openid-configuration do domínio do provedor e retorna um documento JSON contendo metadados essenciais. A seguir, exploramos os principais campos presentes nessa configuração e como eles são utilizados no fluxo de autenticação.
O que é o OpenID Configuration?
O OpenID Connect (OIDC) é uma camada de identidade sobre o protocolo OAuth 2.0. O endpoint de configuração faz parte da especificação OpenID Connect Discovery, que define como um cliente pode descobrir as características do provedor. Ao acessar o endpoint, o cliente obtém uma lista de URLs e parâmetros suportados, evitando a necessidade de configuração manual.
Principais campos do JSON
O documento JSON retornado pelo endpoint inclui diversos campos que descrevem as capacidades do provedor. Abaixo listamos os mais importantes e suas funções:
issuer– Identificador único do provedor OpenID. Deve ser uma URL que representa o emissor dos tokens.authorization_endpoint– URL do endpoint de autorização, para onde o cliente redireciona o usuário para autenticação.token_endpoint– URL do endpoint de token, utilizado para obter tokens de acesso, refresh e ID Token.userinfo_endpoint– URL do endpoint que retorna informações sobre o usuário autenticado (quando acessado com Access Token).jwks_uri– URL onde estão as chaves públicas (JWKS) do provedor, usadas para verificar a assinatura dos tokens.scopes_supported– Lista de escopos suportados, comoopenid,profile,email, etc.response_types_supported– Tipos de resposta suportados, por exemplocode,id_token,token.grant_types_supported– Tipos de concessão suportados, comoauthorization_code,implicit,refresh_token.subject_types_supported– Tipos de identificadores de sujeito (ex.:public,pairwise).id_token_signing_alg_values_supported– Algoritmos de assinatura para o ID Token, comoRS256,ES256.token_endpoint_auth_methods_supported– Métodos de autenticação suportados no endpoint de token (ex.:client_secret_basic,client_secret_post).claims_supported– Lista de Claims (afirmações) que podem ser retornadas, comosub,name,email.
Exemplo de resposta
Um exemplo típico do JSON retornado por um provedor OpenID Connect pode ser visualizado abaixo. Os valores reais dependem da implementação do provedor.
{
"issuer": "https://exemplo.com",
"authorization_endpoint": "https://exemplo.com/authorize",
"token_endpoint": "https://exemplo.com/token",
"userinfo_endpoint": "https://exemplo.com/userinfo",
"jwks_uri": "https://exemplo.com/.well-known/jwks.json",
"scopes_supported": ["openid", "profile", "email"],
"response_types_supported": ["code", "id_token"],
"grant_types_supported": ["authorization_code", "implicit"],
"subject_types_supported": ["public"],
"id_token_signing_alg_values_supported": ["RS256"],
"token_endpoint_auth_methods_supported": ["client_secret_basic"],
"claims_supported": ["sub", "name", "preferred_username", "email"]
}
Como utilizar
Para usar o OpenID Configuration, o cliente (aplicação) faz uma requisição GET para o endpoint /.well-known/openid-configuration do provedor desejado. A resposta JSON é processada para configurar automaticamente a biblioteca de autenticação. Por exemplo, em uma aplicação que utiliza OIDC, o desenvolvedor pode apontar para o endpoint de descoberta e a biblioteca obtém todos os endpoints necessários.
Isso simplifica o desenvolvimento, pois o cliente não precisa armazenar manualmente as URLs do provedor. Basta saber a URL base (emissor) e o mecanismo de descoberta cuida do resto. Além disso, qualquer alteração nos endpoints do provedor é refletida dinamicamente.
Importância na autenticação moderna
O OpenID Configuration é um pilar da interoperabilidade na web. Ele permite que sistemas implementem login único (SSO), autenticação federada e outras funcionalidades de identidade de forma segura e padronizada. Empresas e plataformas que adotam OIDC publicam esse endpoint para que seus clientes possam se integrar sem atritos.
Em resumo, compreender o endpoint de configuração OpenID é essencial para qualquer profissional que trabalhe com autenticação e autorização na web. Este recurso promove a padronização, reduz erros de configuração e melhora a experiência de desenvolvimento.
Para saber mais sobre autenticação e outros temas, visite nossa página inicial ou explore as categorias do blog. Caso tenha dúvidas, entre em contato através da nossa página de contato.