Logo Logo
GitHub Designed by Logto

Qu’est-ce que la découverte OpenID Connect (OIDC) ?

La découverte OpenID Connect (OIDC), définie dans OpenID Connect Discovery 1.0 , est un mécanisme qui permet aux clients de découvrir automatiquement les points de terminaison et la configuration de l’OpenID Provider. C’est une approche moderne pour simplifier la communication entre les clients et les OpenID Providers .

La découverte OIDC a deux principaux composants :

  • Découverte de l’issuer (OpenID Provider) : Le client peut découvrir l’emplacement (URL) de l’issuer via WebFinger ou un document hors bande.
  • Métadonnées de l’OpenID Provider : Le client peut récupérer et traiter le document de métadonnées pour connaître les capacités et les points de terminaison de l’OpenID Provider.

Comment fonctionne la découverte OIDC ?

Découverte de l’issuer (OpenID Provider)

L’issuer (OpenID Provider) est un identifiant unique (généralement le même que son URL) que les clients peuvent utiliser pour découvrir la configuration de l’OpenID Provider. Cependant, les clients doivent connaître l’emplacement de l’issuer avant de pouvoir récupérer le document de métadonnées.

Si l’emplacement de l’issuer est déjà connu, le client peut passer à l’étape suivante. Sinon, le client peut utiliser WebFinger pour découvrir l’emplacement de l’issuer. Les informations nécessaires pour la découverte de l’issuer OIDC sont :

  • host : Où le service WebFinger est hébergé.
  • resource : L’adresse e-mail ou l’URL de l’OpenID Provider.
  • rel : Le type de relation, qui devrait être défini sur http://openid.net/specs/connect/1.0/issuer.

Par exemple, un utilisateur avec l’adresse e-mail [email protected] essaie de découvrir l’emplacement de l’issuer sur example.com. La requête WebFinger ressemblerait à ceci :

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

Le paramètre resource décodé est acct:[email protected], et le paramètre rel est http://openid.net/specs/connect/1.0/issuer.

Métadonnées de l’OpenID Provider

Une fois que le client connaît l’emplacement de l’issuer, il peut récupérer le document de métadonnées à partir du point de terminaison bien connu. Le chemin vers le document de métadonnées est /.well-known/openid-configuration par rapport à l’URL de l’issuer.

Par exemple, si l’URL de l’issuer est https://oidc.example.com, le client peut récupérer le document de métadonnées à partir de https://oidc.example.com/.well-known/openid-configuration. Voici un exemple non normatif de réponse de métadonnées :

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

Le document de métadonnées contient de nombreuses informations utiles sur l’OpenID Provider. Mettons en évidence quelques champs clés :

Pour une liste exhaustive des champs de métadonnées, veuillez vous référer à la spécification OpenID Connect Discovery 1.0 .

Voir aussi