Use this file to discover all available pages before exploring further.
La Clé privée JWT est disponible pour les clients du plan Enterprise. Pour mettre votre plan à niveau, contactez le service Tarification Auth0.
L’authentification par clé privée prend en charge l’authentification client OIDC Connect Core Client Authentication 1.0 en utilisant des assertions signées par des paires de clés asymétriques. Vous pouvez créer une nouvelle application pour qu’elle utilise private_key_jwt ou permettre aux applications existantes d’utiliser des paires de clés privées pour l’authentification.
Vous pouvez utiliser Auth0 Dashboard pour créer une nouvelle application et configurer des identifiants ou mettre à jour une application existante.Nous vous recommandons de stocker en toute sécurité le paramètre client_secret actuel avant de définir la méthode d’identification de votre application sur la clé privée JWT. Le paramètre client_secret sera masqué une fois la configuration de la clé privée JWT terminée.
Sélectionnez Create Application (Créer une application).
Choisissez votre type d’application.
Dans les paramètres de l’application, sélectionnez l’onglet Identifiants.
Sous Méthodes d’authentification, sélectionnez Clé privée JWT.
Configurer les détails de l’identifiant :
Entrez un nom pour l’identifiant.
Téléversez votre certificat en format PEM ou X.509.
Sélectionnez l’algorithme pour signer les assertions.
Facultatif : Activez l’expiration personnalisée. Sélectionnez Set an explicit expiry date for this Credential (Définir une date d’expiration explicite pour cet identifiant) et définissez une date dans le futur.
Vous pouvez recevoir une erreur de certificat invalide si vous soumettez un matériel de clé malformé. Pour éviter tout problème, il est préférable de téléverser le fichier directement créé par OpenSSL.
Téléversez votre certificat en format PEM ou X.509.
Sélectionnez l’algorithme pour signer les assertions.
Facultatif : Activez l’expiration personnalisée. Sélectionnez Set an explicit expiry date for this Credential (Définir une date d’expiration explicite pour cet identifiant) et définissez une date dans le futur.
Choisissez l’identifiant que vous voulez mettre à jour et sélectionnez Edit Credential (Modifier l’identifiant).
Sélectionnez Set an explicit expiry date for this Credential (Définir une date d’expiration explicite pour cet identifiant) et définissez une date ultérieure.
Sélectionnez Update Credential (Mettre à jour l’identifiant).
Configurer une nouvelle application pour private_key_jwt
Vous pouvez créer une nouvelle application avec private_key_jwt comme méthode d’authentification à l’aide de Management API. Effectuez un appel POST au point de terminaison Create a Client avec la charge utile suivante :
Algorithme utilisé pour signer les assertions. Les valeurs prises en charge sont RS256, RS384 et PS256. S’il n’est pas précisé, l’algorithme sera par défaut RS256.
clientName
Nom pour votre nouveau client.
credentialName
Nom pour la clé publique.
expires_at
Facultatif. Date d’expiration de l’authentifiant au format ISO 8601. Par exemple, « 2020-08-20T19:10:06.299Z ». Une fois la date d’expiration passée, l’authentifiant n’est plus valide.
Clé publique, ou certificat x.509, encodé au format PEM.
parse_expiry_from_cert
Facultatif. Un booléen qui indique à Auth0 d’analyser la date d’expiration lorsqu’un certificat lui est fourni. Si aucun certificat n’est fourni , Auth0 renverra une erreur. parse_expiry_from_cert et expires_at sont aussi mutuellement exclusifs. Dans ce cas, Auth0 renverra une erreur.
La clé publique PEM devrait être échappée par JSON avant d’être transmise à Auth0. Dans notre exemple, voici le contenu que nous devrions transmettre :-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA53VzmIVVZZWyNm266l82 mnoDc9g/snXklax5kChEhqK/WnTUvuXP4Gd4THj8rchxgUGKXd4PF3SUcKyn/qPm Tet0idVHk2PwP//FOVgYo5Lb04js0pgZkbyB/WjuMp1w+yMuSn0NYAP7Q9U7DfTb jmox8OQt4tCB4m7UrJghGqT8jkPyZO/Ka6/XsyjTYPOUL3t3PD7JShVAgo1mAY6g Sr4SORywIiuHsg+59ad7MXGy78LirhtqAcDECKF7VZpxMuEjMLg3o2yzNUeWI2Mg IF+t0HbO1E387fvLcuSyai1yWbSr1PXyiB2aXyDpbD4u7d3ux4ahU2opH11lBqvx +wIDAQAB -----END PUBLIC KEY-----
La réponse contient la propriété client_id, qui liera votre application au serveur de ressources. La réponse contient également un kid généré pour l’identifiant que vous avez créé. Celui-ci sera utilisé plus tard pour générer la valeur client_assertion.
Auth0 utilise la norme Schéma de clé Web JSON pour générer l’enfant de vos identifiants.L’enfant consiste en un ensemble SHA256 codé en base64URL de la représentation JWK de votre clé publique.
Vous pouvez aussi configurer une application existante pour utiliser l’authentification par clé privée JWT avec Auth0 Management API. Vous devrez retirer les valeurs du champ token_endpoint_auth_method et créer des valeurs dans le champ client_authentication_methods.
Si vous mettez à jour une application de production existante pour effectuer l’authentification avec private_key_jwt, nous vous conseillons de stocker en toute sécurité votre valeur client_secret actuelle pour consultation future.Après avoir configuré private_key_jwt, vous ne pourrez plus accéder à la valeur client_secret, à moins que vous ne rétablissiez la configuration de votre application pour utiliser un secret client.
Créer la ressource d’identification
Une fois que vous avez généré une paire de clés, créez la ressource d’identification. Effectuez la demande POST suivante au point de terminaison /clients de Management API.
Algorithme utilisé pour signer les assertions. Les valeurs prises en charge sont RS256, RS384 et PS256. S’il n’est pas spécifié, l’algorithme par défaut est RS256.
Clé publique, ou certificat x.509, encodée au format PEM.
expires_at
Facultatif. Date d’expiration de l’identifiant au format ISO 860. Par exemple, 2020-08-20T19:10:06.299Z. Une fois la date d’expiration passée, l’identifiant n’est plus valide.
parse_expiry_from_cert
Facultatif. Un booléen qui indique qu’Auth0 doit analyser l’expiration lorsqu’un certificat est fourni. Si aucun certificat n’est fourni, Auth0 renvoie une erreur. parse_expiry_from_cert et expires_at sont mutuellement exclusifs. Dans ce cas, Auth0 va retourner une erreur.
La clé publique PEM doit être décodée en JSON avant d’être transmise à Auth0. Dans cet exemple, le contenu à inclure est le suivant :
----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA53VzmIVVZZWyNm266l82mnoDc9g/snXklax5kChEhqK/WnTUvuXP4Gd4THj8rchxgUGKXd4PF3SUcKyn/qPmTet0idVHk2PwP//FOVgYo5Lb04js0pgZkbyB/WjuMp1w+yMuSn0NYAP7Q9U7DfTbjmox8OQt4tCB4m7UrJghGqT8jkPyZO/Ka6/XsyjTYPOUL3t3PD7JShVAgo1mAY6gSr4SORywIiuHsg+59ad7MXGy78LirhtqAcDECKF7VZpxMuEjMLg3o2yzNUeWI2MgIF+t0HbO1E387fvLcuSyai1yWbSr1PXyiB2aXyDpbD4u7d3ux4ahU2opH11lBqvx+wIDAQAB-----END PUBLIC KEY-----
Un identifiant est retourné dans la réponse. Utilisez l’identifiant pour l’étape suivante.
Association de l’identifiant
Une fois que vous avez créé l’identifiant, associez-le à votre application. Votre application utilise ces identifiants pendant l’authentification avec private_key_jwt.Effectuez une requête PATCH au point de terminaison Update a Client de Management API :
Auth0 ne prend pas en charge l’utilisation de HS256 comme algorithme de signature JWT de l’application. Vous devez avoir le champ jwt_configuration.alg défini sur l’algorithme RS256. Pour savoir comment modifier l’algorithme de signature, lisez Modifier les algorithmes de signature de l’application.
Configurer une application pour qu’elle utilise l’authentification par secret client
Pour restaurer la configuration de votre application afin qu’elle utilise un secret client, vous devez désactiver client_authentication_methods et activer à nouveau token_endpoint_auth_method avec la méthode d’authentification.
Une fois que vous avez configuré votre méthode d’authentification en tant que client_secret, vos applications ne seront plus capables de s’authentifier en utilisant private_key_jwt tant que vous ne les aurez pas mises à jour pour s’authentifier avec client_secret.
Ajout d’un champ d’expiration comme correctif pour les identifiants
Vous pouvez mettre à jour un identifiant existant avec une date d’expiration à l’aide du point de terminaison Mettre à jour un identifiant de Management API.
| Paramètre | Description | | ---------- | ---------- | |managementApiAccessToken| Jetons d’accès à Management API avec les permissions update:credentials.| |clientId| Le client que vous souhaitez mettre à jour.| |expires_at|La date d’expiration des identifiants est au format ISO 8601. Par exemple, 2020-08-20T19:10:06.299Z.|Le champ expires_at est le seul que vous pouvez mettre à jour. Le reste des attributs sont immuables et nécessitent une rotation de l’identifiant pour être modifiés.
Auth0 impose une taille de clé RSA minimale de 2 048 bits et une taille de clé maximale de 4 096 bits. Les applications peuvent avoir un maximum de deux informations d’identification configurées.