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.
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 -
authoritystandardvärdet omhttps://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 ochprivateKeyä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}'