Comment configurer une application ou une API avec OpenID Connect ?

Emmanuel Gautier Emmanuel Gautier ·
OpenID Connect

Les développeurs doivent configurer leurs applications ou leurs API pour fonctionner avec OpenID Connect. Selon le framework, les bibliothèques ou l’OpenID Connect Provider lui-même, cette configuration peut se faire de plusieurs façons. Dans cet article, nous passons en revue les différentes façons de configurer une application ou une API avec OpenID Connect.

Configuration automatique avec OpenID Connect Discovery

OpenID Connect fournit un endpoint de discovery qui permet aux clients de découvrir automatiquement la configuration de l’OpenID Connect Provider. Cet endpoint est une URL well-known qui expose les métadonnées de l’OpenID Connect Provider : authorization endpoint, token endpoint, userinfo endpoint et autres paramètres de configuration.

C’est la méthode recommandée pour configurer une application : elle simplifie la démarche et évite de coder en dur les paramètres de configuration. L’endpoint de discovery se trouve généralement à l’adresse /.well-known/openid-configuration sur le domaine de l’OpenID Connect Provider.

La plupart du temps, les bibliothèques savent nativement récupérer la configuration depuis l’endpoint de discovery. Cette configuration peut être mise en cache pour éviter des requêtes répétées vers cet endpoint.

Configuration manuelle

Si la configuration automatique n’est pas possible ou pas souhaitée (bibliothèque qui ne la supporte pas, absence d’endpoint de discovery ou autre raison), la configuration peut se faire manuellement. Dans ce cas, le développeur doit fournir lui-même les paramètres de configuration à l’application ou à l’API.

Ces paramètres sont les suivants :

  • Issuer : l’URL de l’OpenID Connect Provider.
  • Authorization Endpoint : l’URL à laquelle le client peut initier la requête d’autorisation.
  • Token Endpoint : l’URL à laquelle le client peut échanger l’authorization code contre un access token.
  • Token Authentication Method : la méthode utilisée pour authentifier le client auprès du token endpoint (par exemple, client secret, clé privée).
  • Userinfo Endpoint : l’URL à laquelle le client peut récupérer les informations de profil de l’utilisateur.
  • JWKS URI : l’URL à laquelle le client peut récupérer le JSON Web Key Set (JWKS) utilisé pour vérifier la signature de l’ID token.
  • Client ID : l’identifiant du client délivré par l’OpenID Connect Provider.
  • Client Secret : le secret du client délivré par l’OpenID Connect Provider (en cas d’utilisation du client credentials flow).
  • Redirect URI : l’URL vers laquelle l’OpenID Connect Provider redirige l’utilisateur après l’authentification.

Références