Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leest u hoe u het ConfidentialClientApplication object initialiseert in MSAL Node. U leert hoe u geheimen en certificaten veilig gebruikt en hoe u de instantie configureert.
Prerequisites
Voordat u een toepassing initialiseert, moet u deze eerst registreren in de Microsoft Entra-beheercentrum, om een vertrouwensrelatie tot stand te brengen tussen uw toepassing en de Microsoft identity platform.
Nadat u uw app hebt geregistreerd, hebt u enkele of alle volgende waarden nodig die u kunt vinden in de Microsoft Entra-beheercentrum.
| Value | Vereist | Description |
|---|---|---|
| Applicatie (client) ID | Vereist | Een GUID die uw toepassing uniek identificeert in de Microsoft identity platform. |
| Autoriteit | Optional | De URL van de identiteitsprovider (de instance) en het aanmeldingspubliek voor uw applicatie. De instantie en de aanmeldingsdoelgroep vormen bij het samenvoegen de instantie. |
| Id van directory (tenant) | Optional | Geef de directory-id (tenant) op als u alleen een Line-Of-Business-toepassing bouwt voor uw organisatie, ook wel een toepassing met één tenant genoemd. |
| Omleidings-URL | Optional | Als u een web-app bouwt, geeft u redirectUri aan waar de id-provider (de Microsoft identity platform) de beveiligingstokens moet retourneren die deze heeft uitgegeven. |
Het ConfidentialClientApplication object initialiseren
Als u MSAL Node wilt gebruiken, moet u een ConfidentialClient-object instantiëren.
Geheimen en certificaten veilig gebruiken
Geheimen mogen nooit hardcoded worden. Het dotenv npm-pakket kan worden gebruikt voor het opslaan van geheimen of certificaten in een .env-bestand (in de hoofdmap van het project) dat moet worden opgenomen in .gitignore om onbedoelde uploads van de geheimen te voorkomen.
Certificaten kunnen ook worden gelezen vanuit bestanden via de fs-module van NodeJS. Ze mogen echter nooit worden opgeslagen in de map van het project. Productie-apps moeten certificaten ophalen uit Azure KeyVault of andere beveiligde sleutelkluizen.
Raadpleeg certificaten en geheimen voor meer informatie.
Zie het MSAL-voorbeeld: 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);
Raadpleeg veelvoorkomende problemen bij het importeren van certificaten.
Basisbeginselen van configuratie
Configuratieopties voor knooppunten hebben common parameters en specific paremeters per verificatiestroom.
-
clientIdis verplicht om een openbare clienttoepassing te initialiseren -
authoritywordthttps://login.microsoftonline.com/common/standaard ingesteld als de gebruiker deze niet instelt tijdens de configuratie - Een clientreferentie is verplicht voor vertrouwelijke clients. Clientreferentie kan een van de volgende zijn:
-
clientSecretis een geheime tekenreeks die is gegenereerd voor de app-registratie. -
clientCertificateis een certificaat dat is ingesteld voor de app-registratie. HetthumbprintSha256is een X.509 SHA-256-vingerafdruk van het certificaat en deprivateKeymet PEM gecodeerde persoonlijke sleutel.x5cis de optionele X.509-certificaatketen die wordt gebruikt in authenticatiescenario's op basis van subjectnaam/uitgever. -
clientAssertionis een ClientAssertion-object met een assertietekenreeks of een callback-functie die een assertietekenreeks retourneert die door de toepassing wordt gebruikt bij het aanvragen van een token, evenals het type van de assertie (urn:ietf:params:oauth:client-assertion-type:jwt-bearer). De callback wordt telkens aangeroepen wanneer MSAL een token moet verkrijgen van de tokenverlener. App-ontwikkelaars moeten over het algemeen de callback gebruiken omdat asserties verlopen en nieuwe asserties moeten worden gemaakt. App-ontwikkelaars zijn verantwoordelijk voor de levensduur van de assertie. Gebruik dit mechanisme om tokens op te halen voor een downstream-API met behulp van een federatieve identiteitsreferentie.
-
Zie Configuratie in MSAL Node voor meer opties over Configuratie.
Autoriteit configureren
MSAL is standaard geconfigureerd met de common tenant, die wordt gebruikt voor toepassingen met meerdere tenants en toepassingen die persoonlijke accounts toestaan (niet B2C).
authority: 'https://login.microsoftonline.com/common/'
Als de doelgroep van uw toepassing uit één tenant bestaat, moet u een authority met uw tenant-id opgeven, zoals hieronder wordt weergegeven:
authority: 'https://login.microsoftonline.com/{your_tenant_id}'