Autentisering med ämnesnamn/utfärdare (SNI) i MSAL Node

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);

Vanliga problem

Se Vanliga problem när du importerar certifikat.