Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article fournit un guide sur la gestion sécurisée et l’accès aux informations sensibles, telles que les certificats, dans une application Node.js à l’aide de Azure Key Vault. Vous allez apprendre à créer un coffre de clés, à importer des certificats dans celui-ci et à accéder à ces informations d’identification à l’aide de SDK Azure. Vous découvrez comment convertir des formats de certificat à l’aide d’OpenSSL et comment extraire des certificats à partir du coffre de clés dans une application Node.js.
Prerequisites
- Node.js
- Une bonne compréhension de l’utilisation des informations d’identification basées sur un certificat avec MSAL Node.
Utilisation d’Azure Key Vault
Les informations sensibles ne doivent pas être stockées dans le code source. Cette section décrit la création d’un coffre de clés et l’accès aux informations d’identification à partir de celui-ci à l’aide de SDK Azure. Pour une implémentation, consultez l’exemple de code : auth-code-key-vault.
Créer un coffre de clés et importer des certificats
Tout d’abord, créez un coffre de clés. Pour ce faire, suivez le guide de démarrage rapide : Créer un coffre de clés à l’aide du portail Azure
En plus des certificats, Azure Key Vault peut également être utilisé pour stocker des secrets et d’autres informations sensibles telles que des chaînes de connexion de base de données et etc.
Vous pouvez maintenant importer votre certificat dans Key Vault. Azure Key Vault attend des certificats dans l’une ou l’autre des options suivantes :
- Le format de fichier .pem contient un ou plusieurs fichiers de certificat X509.
- Le format de fichier .pfx est un format de fichier d’archive permettant de stocker plusieurs objets de chiffrement dans un seul fichier, c’est-à-dire un certificat de serveur (émis pour votre domaine), une clé privée correspondante et peut éventuellement inclure une autorité de certification intermédiaire.
Si vous n'avez pas de certificats à la main, vous pouvez utiliser Azure Key Vault pour en générer un pour vous. Il présente les avantages supplémentaires de l’attribution d’une autorité de certification partenaire et de l’automatisation de la rotation des certificats. Pour plus d’informations, consultez Démarrage rapide : Générer un certificat avec Azure Key Vault à l’aide du portail Azure
Nous allons combiner notre clé publique et privée dans un seul fichier .pem et charger ce fichier dans Key Vault. Pour la conversion, nous allons utiliser OpenSSL. Tapez ce qui suit dans un terminal :
cat example.crt example.key > example.pem
Les utilisateurs PowerShell peuvent utiliser l’équivalent cat ci-dessous :
Get-Content example.crt, exampleDecrypted.key | Set-Content example.pem
Vous devriez obtenir example.pem. Ensuite, chargez-le sur Key Vault.
- Accédez à votre coffre de clés sur Azure portail.
- Dans les pages de propriétés Key Vault, sélectionnez Certificats.
- Cliquez sur Générer/Importer.
- Dans l’écran Créer un certificat, choisissez les valeurs suivantes :
- Méthode de création de certificat : Importation.
- Nom du certificat : ExampleCertificate.
- Charger le fichier de certificat : sélectionnez le fichier de certificat à partir du disque
- Mot de passe : Si vous téléversez un fichier de certificat protégé par mot de passe (c’est-à-dire une phrase secrète), indiquez ce mot de passe ici. Autrement, laissez le champ vide. Une fois le fichier de certificat importé, le coffre de clés supprime ce mot de passe.
- Cliquez sur Créer.
Pour obtenir d’autres méthodes d’importation, consultez : Tutoriel : Importer un certificat dans Azure Key Vault.
ℹ️ Lorsque vous générez/importez un certificat dans Azure Key Vault Certificats, une clé privée correspondante est créée automatiquement sous Azure Key Vault secrets. Par la suite, vous pouvez récupérer votre clé privée dans le volet Secrets.
Récupérer un certificat depuis votre coffre dans Node.js
À l'aide de Azure Key Vault Kit de développement logiciel (SDK) JavaScript, nous pouvons extraire le certificat que nous avons chargé à l'étape précédente. Pendant le développement, Azure Key Vault Kit de développement logiciel (SDK) JavaScript récupère le jeton d'accès requis à partir de l'environnement local à l'aide du contexte de VS Code, via le package @azure/identity. Pour ce faire, vous devez être connecté à Azure.
Tout d’abord, téléchargez et installez Azure CLI. Cela doit ajouter Azure CLI au chemin d’accès système. Le nouveau lancement de VS Code et de Azure CLI doit être disponible dans le terminal intégré VS Code. Ensuite, tapez ce qui suit pour vous connecter :
az login --tenant YOUR_TENANT_ID
Une fois authentifié, @azure/package d’identité peut accéder au Azure Key Vault, comme indiqué ci-dessous :
// Initialize Azure SDKs
const credential = new identity.DefaultAzureCredential();
const certClient = new keyvaultCert.CertificateClient(KVUri, credential);
const secretClient = new keyvaultSecret.SecretClient(KVUri, credential);
async function main() {
// Grab the certificate thumbprint
const certResponse = await certClient.getCertificate(CERTIFICATE_NAME);
const thumbprint = certResponse.properties.x509Thumbprint.toString('hex').toUpperCase();
// When you upload a certificate to Key Vault, a "secret" containing your private key is automatically created
const secretResponse = await secretClient.getSecret(CERTIFICATE_NAME);
// secretResponse contains both public and private key, but we only need the private key
const privateKey = secretResponse.value.split('-----BEGIN CERTIFICATE-----\n')[0]
// Initialize msal and start the server
msalApp(thumbprint, privateKey);
}
main();
Pour une implémentation, consultez l’exemple de code : auth-code-key-vault.
Conversion de PKCS12/PFX en PEM
Dans la plupart des cas, Azure Key Vault pouvez exporter des certificats et des clés privées au pem format (voir : Exporter des certificats stockés), si le type de contenu a été choisi comme pem pendant la génération de certificats (voir : Créer un certificat dans Key Vault). Si, pour une raison quelconque, cela n’est pas le cas, OpenSSL peut être utilisé pour les conversions. Veuillez consulter Certificats : conversion de pfx en pem.
Utilisation d’une identité managée Azure
Lors du développement sur un environnement local, vous pouvez utiliser Azure Key Vault Kit de développement logiciel (SDK) JavaScript, vous utilisez Azure service Managed Identity pour accéder à votre coffre de clés en production et en déploiement.
Prenez un moment pour vous familiariser avec l’identité managée : Qu’est-ce que les identités managées pour les ressources Azure ?
Déploiement sur App Service
Pour plus d’informations, consultez : Utilisation d’identités managées pour App Service
Étape 1 : Déployer vos fichiers
- Dans la barre d’activité VS Code, sélectionnez le logo Azure pour afficher l’explorateur Azure App Service. Sélectionnez Se connecter à Azure... et suivez les instructions. Une fois connecté, l’Explorateur doit afficher le nom de votre ou vos abonnements Azure.
- Dans la section De l’Explorateur App Service , vous verrez une icône de flèche vers le haut. Cliquez dessus pour publier vos fichiers locaux dans l’exemple de dossier pour Azure App Services (utilisez l’option « Parcourir » si nécessaire, puis recherchez le dossier approprié).
- Choisissez une option de création basée sur le système d’exploitation sur lequel vous souhaitez déployer. dans cet exemple, nous choisissons Linux.
- Sélectionnez une version Node.js lorsque vous y êtes invité. Une version LTS est recommandée.
- Tapez un nom global unique pour votre application web, puis appuyez sur Entrée. Le nom doit être unique dans toutes les Azure. (p. ex.
msal-node-webapp1) - Une fois que vous avez répondu à toutes les invites, VS Code affiche les ressources Azure qui sont créées pour votre application dans sa fenêtre contextuelle de notification.
- Sélectionnez Oui quand vous êtes invité à mettre à jour votre configuration pour qu’elle s’exécute
npm installsur le serveur Linux cible.
Étape 2 : Mettre à jour l’URI de redirection de votre application
- Accédez au portail Azure et sélectionnez le service Microsoft Entra ID.
- Sélectionnez le panneau Inscriptions d’applications à gauche, puis recherchez et sélectionnez l’application web que vous avez inscrite.
- Accédez au panneau Authentification . Dans la section URI de redirection , entrez l’URI de redirection suivant :
https://msal-node-webapp1.azurewebsites.net/redirect. - Cliquez sur Enregistrer pour enregistrer vos modifications.
Intégrer l’identité managée
Créer une identité attribuée par le système
- Accédez au portail Azure et sélectionnez le Azure App Service.
- Recherchez et sélectionnez App Service que vous avez créé précédemment.
- Sur le portail App Service, sélectionnez Identité.
- Dans l’onglet Attribuée par le système, définissez État sur Activé. Cliquez sur Enregistrer.
Pour plus d’informations, consultez Ajouter une identité affectée par le système
Accorder l’accès à Key Vault
Maintenant que votre application déployée sur App Service a une identité managée, dans cette étape, vous lui accordez l’accès à votre coffre de clés.
- Accédez au portail Azure et recherchez votre Key Vault.
- Sélectionnez le volet Vue d’ensemble>Stratégies d’accès à gauche.
- Cliquez sur Ajouter une stratégie d’accès>Autorisations du certificat>Obtenir
- Cliquez sur Ajouter une stratégie d’accès>Autorisations des secrets>Obtenir
- Cliquez sur Sélectionner le principal, ajoutez votre compte ainsi que l’identité précréée attribuée par le système.
- Cliquez sur OK pour ajouter la nouvelle stratégie d’accès, puis cliquez sur Enregistrer pour enregistrer la stratégie d’accès.
Pour plus d’informations, consultez Utiliser Key Vault à partir d’App Service avec Azure Identité managée
Ajouter des variables d’environnement
Enfin, vous devez ajouter des variables d’environnement à App Service où vous avez déployé votre application web.
- Dans le portail Azure, recherchez et sélectionnez App Service, puis sélectionnez votre application.
- Sélectionnez le panneau Configuration à gauche, puis sélectionnez Nouveaux paramètres d’application.
- Ajoutez les variables suivantes (nom-valeur) :
-
REDIRECT_URI : l'URI de redirection que vous avez inscrit sur Microsoft Entra ID, par exemple
https://msal-node-webapp1.azurewebsites.net/redirect -
KEY_VAULT_NAME : nom du coffre de clés que vous avez créé, par exemple.
node-test-vault -
CERTIFICATE_NAME : nom du certificat que vous avez spécifié lors de l’importation dans le coffre de clés, par exemple.
ExampleCert
-
REDIRECT_URI : l'URI de redirection que vous avez inscrit sur Microsoft Entra ID, par exemple
Attendez quelques minutes que vos modifications sur App Service prennent effet. Vous devriez ensuite être en mesure de visiter votre site web publié et de vous connecter en conséquence.