Qu’est-ce que les métadonnées du serveur d’autorisation OAuth 2.0 ?
Les métadonnées du serveur d’autorisation OAuth 2.0 sont un format standardisé défini dans RFC 8414 qui permet aux clients OAuth 2.0 de découvrir et d’obtenir automatiquement les informations nécessaires pour interagir avec les serveurs d’autorisation OAuth 2.0.
Cela inclut des informations essentielles telles que les emplacements des points de terminaison, les fonctionnalités prises en charge et les capacités du serveur.
Le format des métadonnées fournit un document de configuration lisible par machine qui aide à rationaliser le processus d’intégration entre les clients et les serveurs d’autorisation, réduisant ainsi le besoin de configuration manuelle.
Comment fonctionnent les métadonnées du serveur d’autorisation OAuth 2.0 ?
Dans l’écosystème OAuth 2.0, il y a plusieurs rôles clés :
- Serveur d'autorisation (Authorization server) : Émet des access tokens aux clients après avoir authentifié avec succès le resource owner
- Client : Application demandant l’accès à des ressources protégées
- Propriétaire de ressource (Resource owner) : Entité capable d’accorder l’accès à des ressources protégées
- Serveur de ressources (Resource server) : Serveur hébergeant des ressources protégées
Les métadonnées du serveur d’autorisation fournissent un moyen standardisé pour les clients de découvrir et de comprendre comment interagir avec le serveur d’autorisation. Voici comment cela fonctionne :
- Le client connaît ou découvre l’URL de l’issuer du serveur d’autorisation
- Le client construit l’URL des métadonnées en ajoutant
/.well-known/oauth-authorization-server
à l’URL de l’issuer - Le client récupère le document de métadonnées contenant la configuration du serveur
- Le client utilise les métadonnées récupérées (points de terminaison, fonctionnalités prises en charge, etc.) pour se configurer correctement et interagir avec le serveur d’autorisation
Par exemple, si l’URL de l’issuer est https://auth.example.com
, les métadonnées seraient disponibles à :
https://auth.example.com/.well-known/oauth-authorization-server
Le document de métadonnées inclut des informations importantes telles que :
issuer
: L’identifiant du serveur d’autorisationauthorization_endpoint
: L’URL du point de terminaison d’autorisationtoken_endpoint
: L’URL du point de terminaison de tokenscopes_supported
: Scopes disponiblesresponse_types_supported
: Types de réponses pris en chargetoken_endpoint_auth_methods_supported
: Méthodes d’authentification du client prises en charge
Pour une liste complète des champs de métadonnées, veuillez vous référer à RFC 8414 Section 2 .
Avec ces valeurs de métadonnées, les clients peuvent configurer et exécuter automatiquement le flux OAuth 2.0 :
-
Configuration initiale :
- Le client valide que l’
issuer
correspond au serveur d’autorisation attendu - Le client vérifie
response_types_supported
pour s’assurer que son type de flux (par exemple,code
) est pris en charge
- Le client valide que l’
-
Demande d’autorisation :
- Le client utilise
authorization_endpoint
pour construire l’URL d’autorisation - Le client sélectionne les scopes appropriés à partir de
scopes_supported
en fonction de ses besoins - Exemple :
https://auth.example.com/authorize?response_type=code&scope=profile email
- Le client utilise
-
Échange de token :
- Après avoir reçu le code d’autorisation, le client utilise
token_endpoint
pour l’échange de token - Le client vérifie
token_endpoint_auth_methods_supported
pour déterminer comment s’authentifier (par exemple,client_secret_basic
) - Exemple : Envoyer une requête POST au point de terminaison de token avec les identifiants du client et le code d’autorisation
- Après avoir reçu le code d’autorisation, le client utilise
Ce flux de base aide les clients à se configurer automatiquement et à interagir avec le serveur d’autorisation sans configuration manuelle des points de terminaison ou sélection de scopes par essais et erreurs.
Quelle est la différence entre les métadonnées du serveur d’autorisation OAuth 2.0 et la découverte OpenID Connect ?
Les principales différences sont :
-
Portée et objectif :
- Les métadonnées du serveur d’autorisation OAuth 2.0 se concentrent spécifiquement sur la configuration du protocole OAuth 2.0
- Découverte OpenID Connect (OIDC) (OpenID Connect Discovery) inclut des paramètres supplémentaires pour les fonctionnalités liées à l’identité, telles que :
userinfo_endpoint
: Point de terminaison pour récupérer les informations utilisateurid_token_signing_alg_values_supported
: Algorithmes de signature pris en charge pour les ID Tokensclaims_supported
: Claims utilisateur disponibles qui peuvent être retournés dans l’ID Token ou depuis le UserInfo Endpoint- Prend en charge le scope
openid
pour l’authentification - Inclut des types de réponses de flux hybride (par exemple,
code id_token
,code id_token token
)
-
Point de terminaison des métadonnées :
- OAuth 2.0 utilise
/.well-known/oauth-authorization-server
- OpenID Connect utilise
/.well-known/openid-configuration
- OAuth 2.0 utilise
Les métadonnées du serveur d’autorisation OAuth 2.0 sont-elles conformes à la découverte OpenID Connect ?
Oui, les métadonnées du serveur d’autorisation OAuth 2.0 sont compatibles avec Découverte OpenID Connect (OIDC) (OpenID Connect Discovery) .
La spécification des métadonnées OAuth 2.0 (RFC 8414) a été inspirée par OpenID Connect Discovery 1.0, qui était déjà largement adoptée en pratique.
Points clés concernant la conformité :
- Le format des métadonnées suit la même structure JSON
- Les serveurs d’autorisation peuvent prendre en charge les deux points de terminaison simultanément
- Les fournisseurs OpenID exposent généralement les deux points de terminaison pour la compatibilité ascendante
- Les métadonnées OAuth 2.0 peuvent être étendues avec des champs spécifiques à OpenID Connect lorsque nécessaire
Cette compatibilité garantit que les serveurs d’autorisation peuvent servir à la fois des clients OAuth 2.0 purs et des parties de confiance OpenID Connect sans conflits.