Bizalmas ügyfélalkalmazások inicializálása az MSAL-csomópontban

Ez a cikk bemutatja, hogyan inicializálhatja az objektumot az ConfidentialClientApplication MSAL-csomópontban. Megtudhatja, hogyan használhatja biztonságosan a titkos adatokat és a tanúsítványokat, valamint hogyan konfigurálhatja a hitelesítésszolgáltatót.

Prerequisites

Az alkalmazás inicializálása előtt először regisztrálnia kell azt a Microsoft Entra felügyeleti központ, és megbízhatósági kapcsolatot kell létesítenie az alkalmazás és a Microsoft Identitásplatform között.

Az alkalmazás regisztrálása után szüksége lesz a Microsoft Entra felügyeleti központ található alábbi értékekre vagy az összesre.

Érték Kötelező Description
Alkalmazás (ügyfél) azonosítója Kötelező GUID, amely a Microsoft Identity Platformon belül egyedileg azonosítja az Ön alkalmazását.
Hatóság Optional Az identitásszolgáltató URL-címe (azaz a példány) és az alkalmazás bejelentkezési célközönsége. A példány és a bejelentkezési célközönség összefűzve alkotja a hitelesítési végpontot.
Címtár (bérlő) azonosítója Optional Adja meg a címtár (bérlő) azonosítóját, ha kizárólag a szervezet számára készít üzletági alkalmazást, amelyet gyakran egy-bérlős alkalmazásnak neveznek.
Átirányítási URI Optional Webalkalmazás létrehozásakor az redirectUri adja meg, hová kell az identitásszolgáltatónak (a Microsoft Identitásplatformnak) visszaküldenie az általa kibocsátott biztonsági tokeneket.

Az objektum inicializálása ConfidentialClientApplication

Az MSAL-csomópont használatához egy ConfidentialClient objektumot kell létrehoznia.

Titkos kódok és tanúsítványok biztonságos használata

A titkos kulcsokat soha nem szabad szigorúan kódolni. A dotenv npm-csomag segítségével titkos kulcsokat vagy tanúsítványokat tárolhat egy .env fájlban (amely a projekt gyökérkönyvtárában található), amelyet a .gitignore-ban kell elhelyezni a titkos kódok véletlen feltöltésének megakadályozása érdekében.

A tanúsítványok a NodeJS fs modulján keresztül is beolvashatók a fájlokból. Ezeket azonban soha nem szabad a projekt könyvtárában tárolni. Az éles alkalmazásoknak a tanúsítványokat az Azure KeyVaultból vagy egyéb biztonságos kulcstartárakból kell lekérniük.

További információért tekintse meg a tanúsítványokat és a titkos kulcsokat .

Lásd az MSAL-mintát: 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);

Kérjük, olvassa el a következőt: A tanúsítványok importálásakor gyakori problémák.

A konfiguráció alapjai

A csomópont konfigurációs beállításai hitelesítési folyamatonként paraméterekkel és common paremeterekkel rendelkeznekspecific.

  • clientId nyilvános ügyfélalkalmazás inicializálása kötelező
  • authority alapértelmezett érték, https://login.microsoftonline.com/common/ ha a felhasználó nem állítja be a konfiguráció során
  • Bizalmas ügyfelek esetében kötelező az ügyfél-hitelesítő adatok megadása. Az ügyfél hitelesítő adatai lehetnek:
    • clientSecret az alkalmazás regisztrációjában létrehozott titkos karakterlánc.
    • clientCertificate az alkalmazásregisztrációhoz beállított tanúsítvány. A thumbprintSha256 tanúsítvány X.509 SHA-256 ujjlenyomata, a privateKey PEM kódolt titkos kulcsa. x5c az opcionális X.509-tanúsítványlánc, amelyet a tulajdonosnév/kiállító hitelesítési forgatókönyveiben használnak.
    • clientAssertion Egy ClientAssertion objektum, amely egy helyességi sztringet vagy egy visszahívási függvényt tartalmaz, amely egy olyan helyességi sztringet ad vissza, amelyet az alkalmazás a jogkivonat kérésekor használ, valamint az állítás típusát (urn:ietf:params:oauth:client-assertion-type:jwt-bearer). A visszahívás minden alkalommal meghívásra kerül, amikor az MSAL-nak tokent kell beszereznie a tokenkibocsátótól. Az alkalmazásfejlesztők általában azért használják a visszahívást, mert az állítások lejárnak, és új állításokat kell létrehozni. Az alkalmazásfejlesztők felelősek az állítás élettartamáért. A mechanizmus használatával tokeneket szerezhet egy háttérbeli API-hoz federált identitás-hitelesítő adat használatával.

A konfigurációval kapcsolatos további lehetőségekért tekintse meg az MSAL-csomópont konfigurációját.

Hitelesítésszolgáltató konfigurálása

Az MSAL alapértelmezés szerint a common bérlő használatára van konfigurálva, amelyet több-bérlős alkalmazásokhoz, valamint személyes fiókokat engedélyező alkalmazásokhoz használnak (nem B2C).

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

Ha az alkalmazás célközönsége egyetlen bérlő, az alábbiakhoz hasonlóan meg kell adnia egy szolgáltatónak a bérlőazonosítóját:

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

Következő lépések