Logo Logo
GitHub Designed by Logto

O que é a Descoberta do OpenID Connect (OIDC)?

A Descoberta do OpenID Connect (OIDC), definida em OpenID Connect Discovery 1.0 , é um mecanismo que permite que clientes descubram automaticamente os endpoints e a configuração do Provedor OpenID. É uma abordagem moderna para simplificar a comunicação entre clientes e Provedores OpenID .

A Descoberta do OIDC possui dois componentes principais:

  • Descoberta do issuer (emissor) do Provedor OpenID: O cliente pode descobrir a localização (URL) do issuer via WebFinger ou um documento fora de banda.
  • Metadados do Provedor OpenID: O cliente pode recuperar e processar o documento de metadados para aprender sobre as capacidades e endpoints do Provedor OpenID.

Como funciona a Descoberta do OIDC?

Descoberta do issuer do Provedor OpenID

O issuer do Provedor OpenID é um identificador único (geralmente o mesmo que sua URL) que os clientes podem usar para descobrir a configuração do Provedor OpenID. No entanto, os clientes precisam saber a localização do issuer antes de poderem recuperar o documento de metadados.

Se a localização do issuer já for conhecida, o cliente pode pular para o próximo passo. Caso contrário, o cliente pode usar o WebFinger para descobrir a localização do issuer. As informações necessárias para a descoberta do issuer do OIDC são:

  • host: Onde o serviço WebFinger está hospedado.
  • resource: O endereço de e-mail ou URL do Provedor OpenID.
  • rel: O tipo de relação, que deve ser definido como http://openid.net/specs/connect/1.0/issuer.

Por exemplo, um usuário com o endereço de e-mail [email protected] está tentando descobrir a localização do issuer em example.com. A solicitação WebFinger seria assim:

GET /.well-known/webfinger?resource=acct%3Afoo%40bar.com&
  rel=http%3A%2F%2Fopenid.net%2Fspecs%2Fconnect%2F1.0%2Fissuer HTTP/1.1
Host: example.com

O parâmetro resource decodificado é acct:[email protected], e o parâmetro rel é http://openid.net/specs/connect/1.0/issuer.

Metadados do Provedor OpenID

Uma vez que o cliente sabe a localização do issuer, ele pode recuperar o documento de metadados do endpoint bem conhecido. O caminho para o documento de metadados é /.well-known/openid-configuration relativo à URL do issuer.

Por exemplo, se a URL do issuer for https://oidc.example.com, o cliente pode recuperar o documento de metadados de https://oidc.example.com/.well-known/openid-configuration. Aqui está um exemplo não normativo da resposta de metadados:

{
  "issuer": "https://oidc.example.com",
  "authorization_endpoint": "https://oidc.example.com/authorize",
  "token_endpoint": "https://oidc.example.com/token",
  //...
}

O documento de metadados contém muitas informações úteis sobre o Provedor OpenID. Vamos destacar alguns campos-chave:

Para uma lista exaustiva de campos de metadados, consulte a especificação OpenID Connect Discovery 1.0 .

Veja também