Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Varning
Innan du börjar här bör du se till att du förstår Att använda certifikatautentiseringsuppgifter med MSAL Node.
Med SNI-autentisering (ämnesnamn/utfärdare) kan en app autentisera med hjälp av ett offentligt certifikat från en fördefinierad betrodd certifikatutfärdare för att stödja komplexa scenarier för certifikatåterställning. Den använder X5C-huvudparametern för att tillhandahålla certifikatet till servern.
Användare från första part bör följa anvisningarna på den interna Microsoft Entra wiki för att konfigurera sin Microsoft Entra miljö för att stödja SNI.
x5c Hävdar
Du måste ange strängen från ditt pem-kodade certifikat i fältet clientCertificate.x5c i MSAL-konfigurationsobjektet, utöver att även ange både clientCertificate.thumbprintSha256 och clientCertificate.privateKey:
Exempelsträng x5c från en .pem fil:
-----BEGIN CERTIFICATE-----
<cert1>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<cert2>
-----END CERTIFICATE-----
// ...
Se även: Certifikat: konvertera pfx till pem
Appkonfiguration
Använda hemligheter och certifikat på ett säkert sätt
Hemligheter ska aldrig hårdkodas. Dotenv npm-paketet kan användas för att lagra hemligheter eller certifikat i en .env-fil (finns i projektets rotkatalog) som ska ingå i .gitignore för att förhindra oavsiktliga uppladdningar av hemligheterna.
Certifikat kan också läsas in från filer via NodeJS fs-modul. De bör dock aldrig lagras i projektets katalog. Produktionsappar bör hämta certifikat från Azure KeyVault eller andra säkra nyckelvalv.
Mer information finns i certifikat och hemligheter .
Se MSAL-exemplet: auth-code-with-certs
Kodfragmentet nedan visar hur du initierar MSAL för autentisering med ämnesnamn/utfärdare (SNI):
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);