https://example-client.com/mcp-metadata.json). L’URL du CIMD correspond à l’ID client de l’application et prouve la propriété du domaine, ce qui garantit que seuls les administrateurs de tenant de confiance peuvent enregistrer des applications.
Lorsque vous importez une application à partir de son URL CIMD, Auth0 récupère, valide et enregistre les métadonnées afin d’enregistrer l’application en tant que client CIMD. Bien qu’Auth0 conserve une copie de ces paramètres, le CIMD hébergé demeure la source faisant autorité; les mises à jour des métadonnées sont synchronisées au moyen d’actualisations manuelles. Ce processus d’enregistrement d’application s’appelle l’enregistrement manuel CIMD.
Vous pouvez uniquement enregistrer des applications tierces au moyen du CIMD manuel; elles sont soumises à des contrôles de sécurité renforcés. Une fois enregistrée, configurez votre client CIMD comme application tierce dans Auth0.
Les clients CIMD sont toujours enregistrés avec
third_party_security_mode: "strict", quel que soit le paramètre Créer des clients tiers permissifs par défaut de votre tenant. Le mode permissif n’est pas offert pour les clients CIMD. Les applications tierces strictes ne prennent pas en charge les Rules, et les flux de connexion des clients CIMD échouent si votre tenant comporte des Rules actives. Si vous utilisez des Rules, migrez vers Actions avant d’enregistrer des clients CIMD.Principaux avantages
- Il utilise la cryptographie asymétrique (clés publiques/privées) au lieu de secrets symétriques partagés susceptibles d’être divulgués.
- Les propriétaires d’applications gèrent directement les métadonnées du client dans le CIMD; Auth0 se contente de récupérer ces mises à jour et de les enregistrer.
- L’ID client correspond à l’URL du CIMD, hébergée sur un domaine HTTPS sécurisé, ce qui constitue une preuve de propriété compréhensible par l’humain dans les journaux d’audit.
Les applications tierces, y compris les clients CIMD, ne prennent pas en charge Organizations. La prise en charge d’Organizations pour les applications tierces sera ajoutée dans une prochaine version.
Des limites de débit pour les clients CIMD seront ajoutées dans une prochaine version. Vous pourrez définir une limite de débit précise pour un client CIMD, ainsi qu’une limite de débit partagée pour le trafic agrégé de tous les clients CIMD dans un tenant.
Cas d’usage
- Clients MCP : n’ont besoin d’être enregistrés avec CIMD qu’une seule fois par déploiement. Toutes les instances de ce déploiement utilisent les mêmes identifiants d’enregistrement. Pour savoir comment Auth0 sécurise les clients et les serveurs MCP, consultez Auth for MCP.
- Intégrations tierces : applications partenaires, plateformes SaaS et services externes qui authentifient les utilisateurs pour le compte d’organisations. Ces applications gèrent leurs propres métadonnées client et clés cryptographiques, ce qui permet des mises à jour indépendantes et la rotation des clés sans avoir à partager de secrets.
Exemple de CIMD
"token_endpoint_auth_method": "none" :
https://example-client.com/mcp-metadata.json
Fonctionnement
Phase 1 : Enregistrement
- Création de l’application : l’administrateur de tenant crée une application CIMD dans Auth0 en :
- sélectionnant Import from URL dans l’Auth0 Dashboard
- effectuant une requête POST vers le point de terminaison
/register, en fournissant leexternal_client_id
- Récupération des métadonnées : Auth0 effectue une requête GET vers le domaine du client pour récupérer le CIMD (
client.json). - Validation de sécurité : Auth0 mappe et valide l’URL du CIMD en fonction des règles de validation de l’URL du CIMD, puis valide le CIMD en fonction des règles de validation du CIMD, en vérifiant notamment que le
external_client_idcorrespond à l’URL du CIMD. - Enregistrement : une fois validé, Auth0 stocke les métadonnées du client dans la base de données.
- Confirmation : Auth0 renvoie une réponse de réussite; l’application a été enregistrée avec succès comme client CIMD dans Auth0.
- Tâche initiée par l’utilisateur : L’utilisateur lance une tâche qui oblige l’application à accéder à une API.
- Demande d’autorisation : L’application envoie une demande à l’Auth0 Authorization Server en transmettant son URL CIMD comme
client_id. - Résolution du client : L’Auth0 Authorization Server interroge la base de données pour associer l’URL fournie (
client_id) à la configuration client enregistrée (external_client_id). - Consentement de l’utilisateur : Auth0 affiche un écran de consentement à l’utilisateur et identifie l’application à l’aide du
client_namerécupéré dans les métadonnées CIMD. - Redirection : Une fois le consentement accordé par l’utilisateur, Auth0 le redirige vers l’application avec un code d’autorisation.
- Échange de code : L’application échange le code d’autorisation contre un jeton d’accès au point de terminaison des jetons.
- Autorisation terminée : L’Auth0 Authorization Server renvoie un jeton d’accès dans lequel le
client_idcorrespond à l’URL CIMD. L’application peut maintenant accéder à l’API au nom de l’utilisateur.
Prérequis
Configuration du tenant
- Activer la prise en charge de CIMD : activez la bascule Client ID Metadata Document Registration dans vos paramètres du tenant pour indiquer la prise en charge de CIMD dans les métadonnées de l’Auth0 Authorization Server, ce qui permet aux clients de détecter automatiquement cette fonctionnalité lors de la connexion.
- Accédez à Paramètres > Avancé et faites défiler la page jusqu’à la section Paramètres.
- Activez la bascule Client ID Metadata Document Registration.
- Profil de compatibilité du paramètre de ressource (facultatif) : pour les clients MCP, nous recommandons d’activer ce profil dans vos paramètres du tenant. Cela permet au serveur d’autorisation de traiter les requêtes propres aux ressources (RFC 8707) en vérifiant le paramètre
resourcesiaudiencen’est pas fourni.
Types de clients pris en charge
- Type d’application : il doit s’agir d’une application native ou d’une application Web traditionnelle.
- Application tierce : il doit s’agir d’une application tierce (
is_first_party: false), soumise à des contrôles de sécurité renforcés. Une fois l’enregistrement terminé, configurez votre client CIMD comme une application tierce dans Auth0.
Méthodes d’authentification prises en charge
client_secret_post, client_secret_basic ou client_secret_jwt.
Selon que le client est public ou confidentiel, Auth0 prend en charge les méthodes d’authentification suivantes pour les clients CIMD :
- Clients publics :
- Aucune authentification du client n’est requise au point de terminaison de jeton; définissez
token_endpoint_auth_methodsurnonedans les métadonnées du client - Doivent utiliser la clé de preuve pour l’échange de code (PKCE) pour les flux d’autorisation
- Aucune authentification du client n’est requise au point de terminaison de jeton; définissez
- Clients confidentiels :
- Seule l’authentification Private Key JWT est prise en charge; définissez
token_endpoint_auth_methodsurprivate_key_jwtdans les métadonnées du client - Fournissez un
jwks_uripour héberger les clés publiques. Lejwks_uridoit avoir exactement la même origine (schéma, hôte et port) que l’URL CIMD. Pour en savoir plus, consultez les règles de validation JSON CIMD.
- Seule l’authentification Private Key JWT est prise en charge; définissez
L’authentification Private Key JWT est offerte uniquement aux clients d’entreprise. Pour en savoir plus sur les forfait Enterprise, consultez Pricing ou communiquez avec Auth0 Sales.
Les clients CIMD qui utilisent l’authentification Private Key JWT doivent mettre en place la rotation des clés en générant une nouvelle paire de clés avec un nouveau
kid unique.Enregistrer des applications avec un CIMD manuel
- Auth0 Dashboard
- Management API
Pour enregistrer une application avec un CIMD manuel à l’aide de l’Auth0 Dashboard :
- Accédez à Applications > Applications.
- Sélectionnez Create Application > Import from URL.
- Entrez l’URL du CIMD. Ensuite, sélectionnez Preview. Auth0 valide l’URL du CIMD selon les règles de validation des URL CIMD.
- Si l’URL du CIMD est valide, Auth0 charge le CIMD et le valide selon les règles de validation JSON CIMD. Prévisualisez les métadonnées du client et corrigez toute erreur de validation.
- Sélectionnez Create.
Configurer le client CIMD
is_first_party: false), qui sont soumises à des contrôles de sécurité renforcés. Une fois votre client CIMD enregistré, configurez-le comme application tierce dans Auth0 :
- Configurer la politique d’accès à l’API : Créez des autorisations client pour l’autoriser à accéder aux API
- Faire passer les connexions au niveau du domaine : Rendez les connexions disponibles au niveau du domaine ou du tenant afin d’authentifier vos utilisateurs
Actualiser les métadonnées du client
app_type et grant_types pour qu’ils correspondent aux valeurs du CIMD hébergé. Pour en savoir plus sur les champs CIMD, consultez règles de validation JSON CIMD.
Dans l’Auth0 Dashboard :
- Accédez à Applications > Applications et sélectionnez votre client CIMD.
- Dans le coin supérieur droit, sélectionnez Actualiser les métadonnées du client.
- Sélectionnez Aperçu de l’actualisation pour prévisualiser les métadonnées client les plus récentes du CIMD. Examinez les avertissements ou erreurs de validation, s’il y en a.
- Sélectionnez Enregistrer.
Obtenir le client CIMD
GET vers l’endpoint /v2/clients/{clientId}, où {clientID} correspond à l’ID client généré par Auth0 attribué au client CIMD :
external_client_id ou l’URL CIMD en paramètre de requête au point de terminaison /v2/clients :
external_client_id, name, callbacks, token_endpoint_auth_method, et plus encore.
Mettre à jour le client CIMD
Pour mettre à jour un client CIMD, envoyez une requête
PATCH au point de terminaison /v2/clients/{clientId}, où {clientID} est le client ID généré par Auth0 et attribué au client CIMD :
Règles de validation des URL CIMD
Règles de validation JSON CIMD
- Propriétés non prises en charge : Auth0 ignore les propriétés non prises en charge lors du mappage et les signale comme des avertissements dans la réponse de validation.
- JWKS intégré : Fournir un objet
jwksintégré au lieu d’unjwks_urin’est pas pris en charge et déclenchera une erreurinvalid_client_metadata. - Clés privées : Tout JWKS récupéré via
jwks_uriqui contient des éléments de clé privée (le paramètred) sera rejeté. - Sécurité de récupération : Le document CIMD et le
jwks_urisont soumis à des limites de taille de 5 KB et 12 KB, respectivement, et ni l’un ni l’autre ne prend en charge les redirections HTTP.
Considérations relatives à la sécurité
Rotation des clés pour les clients CIMD avec l’authentification private_key_jwt
kid nouveau et unique. Si vous faites la rotation de votre clé privée et mettez à jour votre JWKS avec de nouvelles clés sous le même kid, l’enregistrement CIMD d’Auth0 rejettera la nouvelle clé et conservera l’ancienne. Cela garantit que la rotation des clés exige l’ajout explicite de nouvelles clés, plutôt qu’un remplacement silencieux.
Assurez-vous d’actualiser l’enregistrement de votre clé dans Auth0 après avoir fait la rotation de vos clés. Pour en savoir plus, consultez Rotation des clés de signature.