Logo Logo
GitHub Designed by Logto

O que é um endpoint de userinfo?

No OpenID Connect (OIDC) , um endpoint de userinfo é um endpoint do Provedor OpenID (OP) que oferece informações do usuário para clientes . O endpoint de userinfo é geralmente um endpoint suplementar ao Token de ID (ID token) e permite que os clientes recuperem informações adicionais do usuário que não estão incluídas no ID token.

O endpoint de userinfo é definido na especificação OpenID Connect Core e é tipicamente acessado por clientes após terem obtido um ID token.

Como funciona um endpoint de userinfo?

Quando um cliente faz uma solicitação ao endpoint de userinfo, ele precisa incluir o access token obtido da Solicitação de token (Token request) e usar os métodos HTTP GET ou POST. O endpoint de userinfo valida o access token e retorna as informações do usuário na resposta.

Aqui está um exemplo não normativo de uma solicitação de userinfo:

GET /userinfo HTTP/1.1
Host: openid-provider.example.com
Authorization: Bearer some-access-token

O caminho exato do endpoint de userinfo pode variar em diferentes OpenID Providers. Você pode consultar a Descoberta do OpenID Connect (OIDC) do provedor para encontrar a URL do endpoint de userinfo. Se o access token for válido, o endpoint de userinfo responde com as informações do usuário:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "sub": "user123",
  "name": "Alice",
  "email": "[email protected]",
  "birthdate": "1990-01-01",
  "address": {
    "street": "1234 Elm St",
    "city": "Springfield",
    "country": "US"
  }
}

A resposta pode conter vários atributos do usuário, como name, email, birthdate e address; e tipicamente, contém mais claims do que o Token de ID (ID token) . Os atributos reais retornados dependem da configuração do Provedor OpenID (OP) e do consentimento do usuário. Consulte a documentação do seu OpenID Provider para os atributos específicos disponíveis.

Assinatura e criptografia

A resposta do userinfo pode ser assinada e/ou criptografada para garantir sua integridade e confidencialidade. Se uma ou ambas as proteções forem aplicadas, a resposta do endpoint de userinfo será um JSON Web Token (JWT) em vez de um objeto JSON simples.

Veja também