Configurare il nodo MSAL

La libreria MSAL include un set di opzioni di configurazione che possono essere usate per personalizzare il comportamento dei flussi di autenticazione. Queste opzioni possono essere impostate nel costruttore dell'oggetto PublicClientApplication o come parte delle API di richiesta. Di seguito viene descritto l'oggetto di configurazione che può essere passato al costruttore PublicClientApplication .

Prerequisiti

Utilizzo

L'oggetto di configurazione può essere passato al PublicClientApplication costruttore. L'unico parametro di configurazione obbligatorio è l'oggetto client_id dell'applicazione. Tutto il resto è facoltativo, ma può essere necessario a seconda del flusso di autenticazione, del tenant e del modello di applicazione.

L'oggetto Configuration con tutti i parametri supportati è illustrato di seguito:


// Call back APIs which automatically write and read into a .json file - example implementation
const beforeCacheAccess = async (cacheContext) => {
    cacheContext.tokenCache.deserialize(await fs.readFile(cachePath, "utf-8"));
};

const afterCacheAccess = async (cacheContext) => {
    if(cacheContext.cacheHasChanged){
        await fs.writeFile(cachePath, cacheContext.tokenCache.serialize());
    }
};

// Cache Plugin
const cachePlugin = {
    beforeCacheAccess,
    afterCacheAccess
};;

const msalConfig = {
    auth: {
        clientId: "enter_client_id_here",
        authority: "https://login.microsoftonline.com/common",
        knownAuthorities: [],
        cloudDiscoveryMetadata: "",
        azureCloudOptions: {
            azureCloudInstance: "enter_AzureCloudInstance_here" // AzureCloudInstance enum is exported as a "type",
            tenant: "enter_tenant_info" // defaults to "common"
        }
    },
    cache: {
        cachePlugin // your implementation of cache plugin
    },
    system: {
        loggerOptions: {
            loggerCallback(loglevel, message, containsPii) {
                console.log(message);
            },
            piiLoggingEnabled: false,
            logLevel: msal.LogLevel.Verbose,
        },
    }
}

const msalInstance = new PublicClientApplication(msalConfig);

Options

Opzioni di configurazione dell'autenticazione

Option Description Formato Valore predefinito
clientId ID app dell'applicazione. La registrazione dell'app è disponibile nella registrazione dell'app Interfaccia di amministrazione di Microsoft Entra. UUID/GUID Nessuno. Questo parametro è obbligatorio affinché MSAL esegua qualsiasi azione.
authority URI del tenant con cui eseguire l'autenticazione e l'autorizzazione. In genere assume la forma di https://{uri}/{tenantid} Stringa in formato URI con tenant - https://{uri}/{tenantid} https://login.microsoftonline.com/common
knownAuthorities Matrice di URI noti come validi. Usato negli scenari B2C. Matrice di stringhe in formato URI Matrice vuota []
cloudDiscoveryMetadata Stringa contenente la risposta di Cloud Discovery. Usato negli scenari di Microsoft Entra. Per altre informazioni, vedi Prestazioni Stringa Stringa vuota ""
authorityMetadata Stringa contenente la risposta dell'endpoint .well-known/openid-configuration. Per altre informazioni, vedi Prestazioni Stringa Stringa vuota ""
clientCapabilities Matrice di funzionalità da aggiungere a tutte le richieste di rete come parte della xms_cc richiesta di attestazioni Matrice di stringhe []
azureCloudOptions Un set definito di opzioni cloud di Azure per gli sviluppatori per impostazione predefinita per le autorità cloud specifiche, per cloud specifici supportati, vedere AzureCloudInstance AzureCloudOptions AzureCloudInstance.None

Opzioni di configurazione della cache

Option Description Formato Valore predefinito
cachePlugin Plug-in cache con callback alla lettura e scrittura nella persistenza della cache (vedere anche: memorizzazione nella cache) ICachePlugin Null

Opzioni di configurazione broker

Option Description Formato Valore predefinito
nativeBrokerPlugin Plug-in broker per l'acquisizione di token tramite un broker di token nativo (vedere anche: brokering) INativeBrokerPlugin Null

Opzioni di configurazione del sistema

Option Description Formato Valore predefinito
loggerOptions Oggetto Config per logger. Vedere di seguito. Vedere di seguito.
NetworkClient Implementazione HTTP personalizzata INetworkModule HttpClient.ts
protocolMode Enumerazione che rappresenta la modalità protocollo da utilizzare. Se "AAD", funzionerà negli endpoint Microsoft Entra v2; se "OIDC", funzionerà sugli endpoint conformi a OIDC. Stringa "AAD"
disableInternalRetries Se true, MSAL non ritenta le richieste di rete non riuscite Boolean false

Note

Nel nodo MSAL v5 i proxyUrl parametri e customAgentOptions sono stati rimossi. Se l'applicazione richiede il supporto proxy, implementare un client HTTP personalizzato usando INetworkModule. Per un esempio, vedere l'esempio INetworkModule personalizzato . Il protocolMode parametro è stato inoltre spostato dalla configurazione di autenticazione alla configurazione di sistema.

Opzioni di configurazione del logger

Option Description Formato Valore predefinito
loggerCallback Funzione di callback che gestisce la registrazione delle istruzioni MSAL. Funzione- loggerCallback: (level: LogLevel, message: string, containsPii: boolean): void Vedere sopra.
piiLoggingEnabled Se true, le informazioni personali vengono incluse nei log. Boolean false

Opzioni di configurazione dei dati di telemetria

Option Description Formato Valore predefinito
application Opzioni di telemetria per le applicazioni che usano MSAL.js Vedere di seguito Vedere di seguito

Telemetria dell'applicazione

Option Description Formato Valore predefinito
appName Nome stringa univoco di un'applicazione Stringa Stringa vuota ""
appVersion Versione dell'applicazione con MSAL Stringa Stringa vuota ""

Operazioni successive

Continuare a comprendere le API pubbliche fornite da msal-node per acquisire i token qui