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.
Warning
Avant de commencer ici, veillez à comprendre l’utilisation des informations d’identification de certificat avec MSAL Node.
L’authentification SNI (nom/émetteur de l’objet) permet à une application de s’authentifier à l’aide d’un certificat public à partir d’une autorité de certification approuvée prédéterminée pour prendre en charge les scénarios de substitution de certificats complexes. Il utilise le paramètre d’en-tête X5C pour fournir le certificat au serveur.
Les utilisateurs internes doivent suivre les instructions sur le wiki interne Microsoft Entra pour configurer leur environnement de Microsoft Entra pour prendre en charge SNI.
x5c Réclamation
Vous devrez fournir la chaîne de votre certificat codé à l’objet de configuration MSAL dans le champ clientCertificate.x5c, en plus de fournir également clientCertificate.thumbprintSha256 et clientCertificate.privateKey :
Exemple x5c de chaîne issue d’un fichier .pem :
-----BEGIN CERTIFICATE-----
<cert1>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<cert2>
-----END CERTIFICATE-----
// ...
Voir aussi : Certificats : conversion de pfx en pem
la configuration d’une application ;
Utilisation sécurisée des secrets et des certificats
Les secrets ne doivent jamais être codés en dur. Le package npm dotenv peut être utilisé pour stocker des secrets ou des certificats dans un fichier .env (situé dans le répertoire racine du projet) qui doit être inclus dans .gitignore pour empêcher les chargements accidentels des secrets.
Les certificats peuvent également être en lecture à partir de fichiers via le module fs de NodeJS. Toutefois, ils ne doivent jamais être stockés dans le répertoire du projet. Les applications de production doivent extraire des certificats de Azure KeyVault ou d’autres coffres de clés sécurisés.
Pour plus d’informations, consultez les certificats et les secrets .
Consultez l’exemple MSAL : authentification-code-with-certs
L’extrait de code ci-dessous montre comment initialiser MSAL pour l’authentification SNI (Subject Name/ Issuer) :
var msal = require('@azure/msal-node');
require('dotenv').config(); // process.env now has the values defined in a .env file
const config = {
auth: {
clientId: "ENTER_CLIENT_ID",
authority: "https://login.microsoftonline.com/ENTER_TENANT_ID",
clientCertificate: {
thumbprintSha256: process.env.thumbprint, // a 64-digit hexadecimal string
privateKey: process.env.privateKey,
x5c: process.env.x5c
}
}
}
};
// Create msal application object
const cca = new msal.ConfidentialClientApplication(config);
Problèmes courants
Reportez-vous aux problèmes courants lors de l’importation de certificats.