Configurer les clés gérées par le client avec Management API

Auth0 sécurise les secrets et les données de votre locataire à l’aide d’une clé racine d’environnement Auth0, au sommet de la hiérarchie des clés de chiffrement d’enveloppe.  La clé racine de l’environnement Auth0 et la clé racine fournie par le client sont stockées dans le module de sécurité matériel (HSM) du fournisseur de nuage Auth0 correspondant, AWS ou Azure.

Bring Your Own Key (Apportez votre propre clé)

En utilisant Bring Your Own Key (Apportez votre propre clé), les utilisateurs ayant le rôle d’éditeur de gestion des clés peuvent utiliser Management API Auth0 pour remplacer la clé racine par défaut de l’environnement Auth0 par leur propre clé racine fournie par le client. Les clients peuvent téléverser en toute sécurité leur propre clé racine, qui contient leur propre matériel cryptographique, afin de :

  • répondre aux exigences de génération et de provenance de clés personnalisées pour la clé racine de l’environnement;

  • répondre aux exigences particulières en matière d’installation ou de durée de vie des clés pour la clé racine de l’environnement;

  • conserver une copie de la clé racine fournie par le client dans les locaux du client.

Vous pouvez créer et gérer votre clé racine fournie par le client à l’aide de Management API, en suivant les étapes ci-après :

  1. Appeler le point de terminaison Create the new encryption key (Créer la nouvelle clé de chiffrement) pour lancer le processus Apportez votre propre clé et obtenir le kid (identifiant de clé) de la clé racine pré-activée fournie par le client sans méthode de chiffrement.

  2. Appelez le point de terminaison Create the public wrapping key (Créer la clé publique enveloppante) pour créer et renvoyer une clé publique enveloppante.

  3. Générez votre propre clé de chiffrement et enveloppez-la (chiffrez-la) avec la clé publique d’enveloppe pour créer une clé de chiffrement enveloppée (la clé racine fournie par le client) à partir de votre environnement.

  4. Appelez le point de terminaison Import the encryption key (Importation de la clé de chiffrement) pour importer votre clé racine fournie par le client dans Auth0.

Exigences en matière de matériel cryptographique

Utilisez votre système de gestion des clés pour envelopper votre propre matériel cryptographique avec la clé publique d’enveloppement et créer la clé de chiffrement enveloppée. Utilisez ces paramètres pour définir les paramètres de l’algorithme CKM_RSA_AES_KEY_WRAP en fonction de votre fournisseur de services infonuagiques Auth0 (AWS ou Azure) :

Auth0 sur AWS Cloud

  • Longueur de la clé publique d’enveloppement : 3 072 bits

  • Algorithme : CKG_MGF1_SHA256

  • Longueur temporaire de la clé AES pour CKM_AES_KEY_WRAP_PAD : 256 bits

  • Type de clé racine fourni par le client : Clé symétrique AES de 256 bits

Auth0 sur Azure Cloud

  • Longueur de la clé publique d’enveloppement : 2048 bits

  • Algorithme : CKG_MGF1_SHA-1

  • Longueur temporaire de la clé AES pour CKM_AES_KEY_WRAP_PAD : 256 bits

  • Type de clé racine fourni par le client : Clé privée RSA de 2 048 bits

  • Codage de la clé privée : PKCS #8 – ASN.1 DER

Permissions (Autorisations)

Utilisez les autorisations suivantes pour permettre l’accès aux points de terminaison des clés de chiffrement.

Autorisations Descriptions
read:encryption_keys Les utilisateurs peuvent rechercher et récupérer des clés dans le locataire Auth0. Cela comprend la lecture des points de terminaison /api/v2/keys/encryption, /api/v2/keys/encryption/{kid}.
create:encryption_keys Les utilisateurs peuvent créer leur propre clé racine fournie par le client et la clé d’enveloppement publique à l’aide des points de terminaison /api/v2/keys/encryption et /api/v2/keys/encryption/{kid}/wrapping-key.
delete:encryption_keys Les utilisateurs peuvent supprimer leur propre clé racine fournie par le client par le point de terminaison /api/v2/keys/encryption/{kid}.
update:encryption_keys Les utilisateurs peuvent importer leur propre clé racine fournie par le client par le point de terminaison /api/v2/keys/encryption/{kid}.

Points de terminaison