Initiera konfidentiella klientprogram i MSAL Node

Den här artikeln visar hur du initierar objektet ConfidentialClientApplication i MSAL Node. Du får lära dig hur man använder hemliga nycklar och certifikat på ett säkert sätt och hur man konfigurerar auktoriteten.

Förutsättningar

Innan du initierar ett program måste du först registrera det i Microsoft Entra administrationscenter och upprätta en förtroenderelation mellan ditt program och Microsofts identitetsplattform.

När du har registrerat din app behöver du några eller alla av följande värden som finns i Microsoft Entra administrationscenter.

Value Obligatoriskt Description
App-ID (klient-ID) Obligatoriskt Ett GUID som unikt identifierar ditt program i Microsofts identitetsplattform.
Auktoritet Optional Identitetsproviderns URL ( instansen) och inloggningspubliken för ditt program. Instansen och målgruppen för inloggning bildar tillsammans authority när de sammanfogas.
Katalog-ID (klientorganisation) Optional Ange katalog-ID (klientorganisation) om du skapar ett verksamhetsspecifikt program enbart för din organisation, vilket ofta kallas för ett program med en enda klientorganisation.
URI för omdirigering Optional Om du skapar en webbapp redirectUri anger den var identitetsprovidern (Microsofts identitetsplattform) ska returnera de säkerhetstoken som den har utfärdat.

Initiera objektet ConfidentialClientApplication

För att kunna använda MSAL Node måste du instansiera ett ConfidentialClient-objekt .

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

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

Se Vanliga problem när du importerar certifikat.

Grundläggande konfiguration

Nodens konfigurationsalternativ har common parametrar och specific parametrar per autentiseringsflöde.

  • clientId är obligatoriskt att initiera ett offentligt klientprogram
  • authority standardvärdet om https://login.microsoftonline.com/common/ användaren inte ställer in den under konfigurationen
  • En klientautentiseringsuppgift är obligatorisk för konfidentiella klienter. Klientautentiseringsuppgifter kan vara:
    • clientSecret är en hemlig sträng som genererats i appregistreringen.
    • clientCertificate är ett certifikat som angetts för appregistreringen. thumbprintSha256 är ett X.509 SHA-256 tumavtryck för certifikatet och privateKey är den PEM-kodade privata nyckeln. x5c är den valfria X.509-certifikatkedjan som används i autentiseringsscenarier med ämnesnamn/utfärdare.
    • clientAssertion är ett ClientAssertion-objekt som innehåller en kontrollsträng eller en återanropsfunktion som returnerar en kontrollsträng som programmet använder vid begäran av en token, samt försäkrans typ (urn:ietf:params:oauth:client-assertion-type:jwt-bearer). Återanropet anropas varje gång MSAL behöver hämta en token från token utfärdaren. Apputvecklare bör vanligtvis använda återanropet eftersom försäkran upphör att gälla och nya intyg måste skapas. Apputvecklare är ansvariga för intygets giltighetstid. Använd den här mekanismen för att hämta token för ett underordnat API med hjälp av en federerad identitetsautentiseringsuppgift.

Fler alternativ för konfiguration finnsi Konfiguration i MSAL Node.

Konfigurera utfärdare

Som standard konfigureras MSAL med klientorganisationen common, som används för program med flera klientorganisationer och program som tillåter personliga konton (inte B2C).

    authority: 'https://login.microsoftonline.com/common/'

Om programmets målgrupp är en enskild klientorganisation måste du ange en auktoritet med ditt tenant-ID enligt nedan:

    authority: 'https://login.microsoftonline.com/{your_tenant_id}'

Nästa steg