Options de configuration de l’authentification

Avant de commencer ici, assurez-vous de comprendre comment initialiser un objet d’application.

La bibliothèque MSAL a un ensemble d’options de configuration qui peuvent être utilisées pour personnaliser le comportement de vos flux d’authentification. Ces options peuvent être définies dans le constructeur de l’objet PublicClientApplication ou dans le cadre des API de requête. Ici, nous décrivons l’objet de configuration qui peut être transmis au PublicClientApplication constructeur.

Utilisation de l’objet config

L’objet de configuration a la structure suivante et peut être passé dans le PublicClientApplication constructeur. Le seul paramètre de configuration requis est l’ID client de l’application. Tout le reste est facultatif, mais peut être nécessaire en fonction de votre client et de votre modèle d’application.

const msalConfig = {
    auth: {
        clientId: "enter_client_id_here",
        authority: "https://login.microsoftonline.com/common",
        knownAuthorities: [],
        cloudDiscoveryMetadata: "",
        redirectUri: "enter_redirect_uri_here",
        postLogoutRedirectUri: "enter_postlogout_uri_here",
        navigateToLoginRequestUrl: true,
        clientCapabilities: ["CP1"],
    },
    cache: {
        cacheLocation: "sessionStorage",
    },
    system: {
        loggerOptions: {
            loggerCallback: (
                level: LogLevel,
                message: string,
                containsPii: boolean
            ): void => {
                if (containsPii) {
                    return;
                }
                switch (level) {
                    case LogLevel.Error:
                        console.error(message);
                        return;
                    case LogLevel.Info:
                        console.info(message);
                        return;
                    case LogLevel.Verbose:
                        console.debug(message);
                        return;
                    case LogLevel.Warning:
                        console.warn(message);
                        return;
                }
            },
            piiLoggingEnabled: false,
        },
        windowHashTimeout: 60000,
        iframeHashTimeout: 6000,
        loadFrameTimeout: 0,
        protocolMode: "AAD"
    },
    telemetry: {
        application: {
            appName: "My Application",
            appVersion: "1.0.0",
        },
    },
};

const msalInstance = new PublicClientApplication(msalConfig);

Options de configuration

Options de configuration d’authentification

Option Description Format Valeur par défaut
clientId ID d’application de votre application. Se trouve dans votre volet d’inscription d’application Portail Azure UUID/GUID Aucun. Ce paramètre est requis pour que MSAL effectue toutes les actions.
authority URI du locataire avec authentification et autorisation. Prend généralement la forme de https://{uri}/{tenantid} Chaîne au format URI avec le locataire - https://{uri}/{tenantid} https://login.microsoftonline.com/common
knownAuthorities Tableau d’URI connus comme valides. Utilisé dans les scénarios B2C. Tableau de chaînes au format URI Tableau vide []
cloudDiscoveryMetadata Chaîne contenant la réponse de découverte cloud. Utilisé dans Microsoft Entra scénarios. ficelle Chaîne vide ""
authorityMetadata Chaîne contenant la réponse du point de terminaison .well-known/openid-configuration. ficelle Chaîne vide ""
redirectUri URI vers lequel la réponse du code d’autorisation est renvoyée. Quel que soit l’emplacement spécifié ici, la bibliothèque MSAL doit être disponible pour gérer la réponse. Chaîne au format URI absolu ou relatif Page demande de connexion (window.location.href de page qui a effectué une demande d’authentification)
postLogoutRedirectUri URI redirigé vers une fois qu’un appel de déconnexion() est effectué. Chaîne au format URI absolu ou relatif. null Passez pour désactiver la redirection post-déconnexion. Page demande de connexion (window.location.href de page qui a effectué une demande d’authentification)
navigateToLoginRequestUrl Si true, revenez à l’emplacement de la demande d’origine avant de traiter la réponse du code d’autorisation. Si la redirectUri valeur est identique à l’emplacement de la requête d’origine, cet indicateur doit être défini sur false. booléen true
clientCapabilities Tableau de fonctionnalités à ajouter à toutes les demandes réseau dans le cadre de la xms_cc demande de revendications Tableau de chaînes []
azureCloudOptions Ensemble défini d’options cloud Azure pour que les développeurs mettent par défaut leurs autorités cloud spécifiques. AzureCloudOptions AzureCloudInstance.None
skipAuthorityMetadataCache Indicateur permettant de choisir s’il faut utiliser le cache de métadonnées locales pendant l’initialisation de l’autorité. Le cache de métadonnées est utilisé si aucune métadonnées d’autorité n’est fournie et avant qu’un appel réseau pour les métadonnées ait été effectué. booléen false
onRedirectNavigate Un rappel passé à l’URL MSAL accède dans les flux de redirection. Le retour false dans le rappel arrête la navigation. Fonction- (url: string) => boolean \| void undefined
instanceAware Indicateur indiquant si le STS doit renvoyer des paramètres supplémentaires pour spécifier à partir duquel les jetons doivent être récupérés. booléen false
isMcp Si true, un resource paramètre est requis sur toutes les demandes de jeton. Utilisé pour les flux MCP (Model Context Protocol). booléen false

Options de configuration du cache

Option Description Format Valeur par défaut
cacheLocation Emplacement du cache de jetons dans le navigateur. Valeur de chaîne qui doit être l’une des suivantes : "sessionStorage", , "localStorage""memoryStorage" sessionStorage
temporaryCacheLocation (Déconseillé) Emplacement du cache temporaire dans le navigateur. Cette option ne doit être modifiée que pour des cas de périphérie spécifiques. Pour plus d’informations, consultez la mise en cache. Valeur de chaîne qui doit être l’une des suivantes : "sessionStorage", , "localStorage""memoryStorage" sessionStorage
storeAuthStateInCookie (Déconseillé) Si la valeur est true, stocke les éléments de cache dans les cookies ainsi que le cache du navigateur. Utilisé précédemment pour la compatibilité Internet Explorer. booléen false
secureCookies (Déconseillé) Si la valeur est true et storeAuthStateInCookie est également activée, MSAL ajoute l’indicateur Secure au cookie du navigateur afin qu’il puisse uniquement être envoyé via HTTPS. booléen false
cacheMigrationEnabled Si la valeur est true, les entrées de cache des versions antérieures de MSAL sont mises à jour pour être conformes au schéma de cache le plus récent au démarrage. Si votre application n’a pas été récemment mise à jour vers une nouvelle version de MSAL.js, vous pouvez désactiver cela en toute sécurité. Si les anciennes entrées de cache ne sont pas migrées, cela peut entraîner une absence de cache lors de la tentative de récupération de comptes ou de jetons, et les utilisateurs affectés peuvent avoir besoin de se réauthentifier pour être à jour. booléen true lors de l’utilisation localStorage, false sinon
claimsBasedCachingEnabled Si true, les jetons d’accès sont mis en cache sous une clé contenant le hachage de la chaîne de revendications demandée, ce qui entraîne une absence de cache et une nouvelle demande de jeton réseau lorsque la même demande de jeton est effectuée avec des revendications différentes ou manquantes. Si la valeur est définie false, les jetons sont mis en cache sans revendications, mais toutes les requêtes contenant des revendications vont au réseau et remplacent tout jeton précédemment mis en cache avec les mêmes étendues. booléen false

Note

L’option temporaryCacheLocation a été déconseillée dans les versions récentes de MSAL Browser et peut être supprimée dans une prochaine version majeure. Vous ne devez pas vous appuyer sur cette option pour les nouvelles implémentations.

Note

Les storeAuthStateInCookie options et secureCookies les options ont été déconseillées dans les versions récentes de MSAL Browser. Ces options ont été principalement utilisées pour la compatibilité Internet Explorer, qui n’est plus prise en charge. Ils peuvent être supprimés dans une prochaine version majeure.

Pour plus d’informations, consultez Mise en cache dans MSAL .

Options de configuration système

Option Description Format Valeur par défaut
loggerOptions Objet config pour l’enregistreur d’événements. Voir ci-dessous. Voir ci-dessous.
windowHashTimeout Délai d’expiration en millisecondes pour attendre la résolution des opérations contextuelles. entier (millisecondes) 60000
iframeHashTimeout Délai d’expiration en millisecondes pour attendre la résolution des opérations iframe. entier (millisecondes) 6000
loadFrameTimeout Délai d’expiration en millisecondes pour attendre la résolution des opérations iframe/popup. Si elle est fournie, définit les valeurs par défaut pour windowHashTimeout et iframeHashTimeout. entier (millisecondes) undefined
navigateFrameWait Retard en millisecondes pour attendre que l’iframe se charge dans la fenêtre. entier (millisecondes) Dans Internet Explorer ou Edge : 500, dans tous les autres navigateurs : 0
asyncPopups (Déconseillé : utiliser navigatePopups à la place.) Définit si les fenêtres contextuelles sont ouvertes de manière asynchrone. Lorsque la valeur est définie false, les fenêtres contextuelles vides sont ouvertes avant tout autre événement. Lorsque la valeur est définie true, les fenêtres contextuelles sont ouvertes lors de la requête réseau. booléen false
navigatePopups Définit si les fenêtres contextuelles sont ouvertes et accédées ultérieurement. Lorsque la valeur est définie true, les fenêtres contextuelles vides sont ouvertes, puis accédez au domaine de connexion. Lorsque la valeur est définie false, les fenêtres contextuelles sont ouvertes directement dans le domaine de connexion. Cela peut être défini false pour les scénarios où about:blank il n’est pas pris en charge, comme les applications de bureau ou les applications web progressives. booléen true
allowRedirectInIframe Par défaut, MSAL n’autorise pas les opérations de redirection à lancer lorsque l’application se trouve à l’intérieur d’un iframe. Définissez cet indicateur pour true supprimer cette vérification. booléen false
cryptoOptions Objet config pour les opérations de chiffrement dans le navigateur. Afficher les options de configuration de chiffrement Afficher les options de configuration de chiffrement
pollIntervalMilliseconds Intervalle de temps en millisecondes entre les sondages de hachage d’URL contextuelle pendant l’authentification. entier (millisecondes) 30
protocolMode Énumération représentant le mode de protocole à utiliser. Si "AAD", MSAL fonctionne sur les points de terminaison AAD v2 conformes à OIDC ; si "OIDC", il fonctionne sur d’autres points de terminaison conformes à OIDC. ficelle "AAD"

Options de configuration de l’enregistreur d’événements

Option Description Format Valeur par défaut
loggerCallback Fonction de rappel qui gère la journalisation des instructions MSAL. Fonction- loggerCallback: (level: LogLevel, message: string, containsPii: boolean): void Voir ci-dessus.
piiLoggingEnabled Si la valeur est true, les informations d’identification personnelle (PII) sont incluses dans les journaux. booléen false

Options de configuration de chiffrement

Option Description Format Valeur par défaut
useMsrCrypto Indique s’il faut utiliser MSR Crypto s’il est disponible dans le navigateur (et d’autres interfaces de chiffrement ne sont pas disponibles). booléen false
entropy Valeurs aléatoires fortes par chiffrement utilisées pour amorçage de MSR Crypto (par exemple, crypto.randomBytes(48) à partir de Node). 48 bits d’entropie sont recommandés. Obligatoire si useMsrCrypto elle est activée. Uint8Array undefined

Options de configuration de télémétrie

Option Description Format Valeur par défaut
application Options de télémétrie pour les applications utilisant MSAL.js Voir ci-dessous Voir ci-dessous
client Instance cliente de performances de télémétrie IPerformanceClient StubPerformanceClient

Télémétrie d’application

Option Description Format Valeur par défaut
appName Nom de chaîne unique d’une application ficelle Chaîne vide «  »
appVersion Version de l’application à l’aide de MSAL ficelle Chaîne vide «  »