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 explique comment initialiser l’objet ConfidentialClientApplication dans MSAL Node. Vous allez apprendre à utiliser des secrets et des certificats en toute sécurité et à configurer l’autorité.
Prerequisites
Avant d’initialiser une application, vous devez d’abord l’inscrire dans le centre d’administration Microsoft Entra, en établissant une relation d’approbation entre votre application et le Plateforme d'identités Microsoft.
Après avoir inscrit votre application, vous aurez besoin d'une partie ou de toutes les valeurs suivantes qui sont disponibles dans le centre d’administration Microsoft Entra.
| Valeur | Obligatoire | Description |
|---|---|---|
| ID d’application (client) | Obligatoire | GUID qui identifie de façon unique votre application dans le Plateforme d'identités Microsoft. |
| Autorité | Optional | URL du fournisseur d’identité ( instance) et audience de connexion pour votre application. L’instance et l’audience de connexion, une fois concaténées, constituent l’autorité. |
| ID de l’annuaire (locataire) | Optional | Spécifiez l’ID d’annuaire (locataire) si vous créez une application métier destinée uniquement à votre organisation, souvent appelée application à locataire unique. |
| URI de redirection | Optional | Si vous développez une application web, le redirectUri indique où le fournisseur d’identité (la plateforme d’identités Microsoft) doit renvoyer les jetons de sécurité qu’elle a émis. |
Initialisation de l’objet ConfidentialClientApplication
Pour utiliser MSAL Node, vous devez instancier un objet ConfidentialClient .
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
import * as msal from "@azure/msal-node";
import "dotenv/config"; // process.env now has the values defined in a .env file
const clientAssertionCallback = async (config) => {
// network request that uses config.clientId and (optionally) config.tokenEndpoint
const result = await Promise.resolve(
"network request which gets assertion"
);
return result;
};
const clientConfig = {
auth: {
clientId: "your_client_id",
authority: "your_authority",
clientSecret: process.env.clientSecret, // OR
clientCertificate: {
thumbprintSha256: process.env.thumbprint,
privateKey: process.env.privateKey,
}, // OR
clientAssertion: clientAssertionCallback, // or a predetermined clientAssertion string
},
};
const cca = new msal.ConfidentialClientApplication(clientConfig);
Reportez-vous aux problèmes courants lors de l’importation de certificats.
Principes de base de la configuration
Les options de configuration pour le nœud comportent common paramètres et specific paramètres par flux d’authentification.
-
clientIdest obligatoire pour initialiser une application cliente publique -
authorityprend la valeurhttps://login.microsoftonline.com/common/par défaut si l’utilisateur ne la définit pas lors de la configuration - Les informations d’identification du client sont obligatoires pour les clients confidentiels. Les informations d’identification du client peuvent être les suivantes :
-
clientSecretest une chaîne secrète générée sur l’inscription de l’application. -
clientCertificateest un certificat défini sur l’inscription de l’application. LethumbprintSha256est une empreinte SHA-256 X.509 du certificat, et leprivateKeyest la clé privée encodée au format PEM.x5cest la chaîne de certificats X.509 optionnelle utilisée dans les scénarios d’authentification basés sur le nom du sujet et l’émetteur. -
clientAssertionest un objet ClientAssertion contenant une chaîne d’assertion ou une fonction de rappel qui retourne une chaîne d’assertion utilisée par l’application lors de la demande d’un jeton, ainsi que du type de l’assertion (urn :ietf :params :oauth :client-assertion-type :jwt-bearer). Le rappel est invoqué chaque fois que MSAL doit acquérir un token auprès de l'émetteur de tokens. Les développeurs d’applications doivent généralement utiliser le rappel, car les assertions expirent et de nouvelles assertions doivent être créées. Les développeurs d’applications sont responsables de la durée de vie des assertions. Utilisez ce mécanisme pour obtenir des jetons pour une API en aval à l’aide d’informations d’identification d’identité fédérée.
-
Pour plus d’options sur Configuration , reportez-vous à Configuration dans MSAL Node.
Configurer l’autorité
Par défaut, MSAL est configuré avec le tenant common, utilisé pour les applications multilocataires et les applications qui autorisent les comptes personnels (hors B2C).
authority: 'https://login.microsoftonline.com/common/'
Si votre audience d'application est limitée à un seul locataire, vous devez fournir une autorité contenant l'ID de votre locataire, comme ci-dessous :
authority: 'https://login.microsoftonline.com/{your_tenant_id}'