Opciones de configuración de autenticación

Antes de empezar aquí, asegúrese de comprender cómo inicializar un objeto de aplicación.

La biblioteca MSAL tiene un conjunto de opciones de configuración que se pueden usar para personalizar el comportamiento de los flujos de autenticación. Estas opciones se pueden establecer en el constructor del PublicClientApplication objeto o como parte de las API de solicitud. Aquí se describe el objeto de configuración que se puede pasar al PublicClientApplication constructor.

Uso del objeto config

El objeto de configuración tiene la estructura siguiente y se puede pasar al PublicClientApplication constructor. El único parámetro de configuración necesario es el identificador de cliente de la aplicación. Todo lo demás es opcional, pero puede ser necesario en función del inquilino y el modelo de aplicación.

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);

Opciones de configuración

Opciones de configuración de autenticación

Opción Description Format Valor predeterminado
clientId Id. de aplicación de la aplicación. Puede encontrarse en el panel de registro de aplicaciones de Azure Portal UUID/GUID None. Este parámetro es necesario para que MSAL realice cualquier acción.
authority URI del inquilino con el que autenticar y autorizar. Normalmente toma la forma de https://{uri}/{tenantid} Cadena en formato URI con inquilino: https://{uri}/{tenantid} https://login.microsoftonline.com/common
knownAuthorities Matriz de URI que se sabe que son válidas. Se usa en escenarios B2C. Matriz de cadenas en formato URI Matriz vacía []
cloudDiscoveryMetadata Cadena que contiene la respuesta de Cloud Discovery. Se usa en escenarios de Microsoft Entra. string Cadena vacía ""
authorityMetadata Cadena que contiene la respuesta del punto de conexión .conocido/openid-configuration. string Cadena vacía ""
redirectUri URI en el que se devuelve la respuesta del código de autorización. Cualquier ubicación especificada aquí debe tener la biblioteca MSAL disponible para controlar la respuesta. Cadena en formato URI absoluto o relativo Página de solicitud de inicio de sesión (window.location.href de la página que realizó la solicitud de autenticación)
postLogoutRedirectUri URI al que se redirige después de realizar una llamada logout(). Cadena en formato URI absoluto o relativo. Pase null para deshabilitar la redirección posterior al cierre de sesión. Página de solicitud de inicio de sesión (window.location.href de la página que realizó la solicitud de autenticación)
navigateToLoginRequestUrl Si truees , volverá a la ubicación de solicitud original antes de procesar la respuesta del código de autorización. redirectUri Si es el mismo que la ubicación de solicitud original, esta marca debe establecerse en false. booleano true
clientCapabilities Matriz de funcionalidades que se van a agregar a todas las solicitudes de red como parte de la xms_cc solicitud de notificaciones Matriz de cadenas []
azureCloudOptions Un conjunto definido de opciones de nube de Azure para que los desarrolladores usen de forma predeterminada sus autoridades en la nube específicas. AzureCloudOptions AzureCloudInstance.None
skipAuthorityMetadataCache Marca para elegir si se va a usar la caché de metadatos locales durante la inicialización de la autoridad. La caché de metadatos se usa si no se proporciona ningún metadato de autoridad y antes de realizar una llamada de red para los metadatos. booleano false
onRedirectNavigate Una devolución de llamada que se pasa a la dirección URL MSAL navegará a en los flujos de redirección. Devolver false en la devolución de llamada detiene la navegación. Función : (url: string) => boolean \| void undefined
instanceAware Marca que indica si el STS debe devolver parámetros adicionales para especificar dónde se deben recuperar los tokens. booleano false
isMcp Si truees , se requiere un resource parámetro en todas las solicitudes de token. Se usa para los flujos del Protocolo de contexto de modelo (MCP). booleano false

Opciones de configuración de caché

Opción Description Format Valor predeterminado
cacheLocation Ubicación de la caché de tokens en el explorador. Valor de cadena que debe ser uno de los siguientes: "sessionStorage", "localStorage", "memoryStorage" sessionStorage
temporaryCacheLocation (en desuso) Ubicación de la caché temporal en el explorador. Esta opción solo debe cambiarse para casos perimetrales específicos. Para obtener más información, consulte Almacenamiento en caché. Valor de cadena que debe ser uno de los siguientes: "sessionStorage", "localStorage", "memoryStorage" sessionStorage
storeAuthStateInCookie (en desuso) Si es true, almacena los elementos de caché en cookies, así como en la memoria caché del explorador. Anteriormente se usaba para Internet Explorer compatibilidad. booleano false
secureCookies (en desuso) Si es true y storeAuthStateInCookie también está habilitado, MSAL agrega la Secure marca a la cookie del explorador para que solo se pueda enviar a través de HTTPS. booleano false
cacheMigrationEnabled Si es true, las entradas de caché de versiones anteriores de MSAL se actualizan para ajustarse al esquema de caché más reciente en el inicio. Si la aplicación no se ha actualizado recientemente a una nueva versión de MSAL.js, puede desactivarlo de forma segura. Si no se migran las entradas de caché antiguas, es posible que se produzca un error en la memoria caché al intentar recuperar cuentas o tokens, y es posible que los usuarios afectados necesiten volver a autenticarse para actualizarse. booleano truecuando se usa localStorage, de lo contrario, false
claimsBasedCachingEnabled Si truees , los tokens de acceso se almacenan en caché en una clave que contiene el hash de la cadena de notificaciones solicitada, lo que da lugar a una falta de caché y a una nueva solicitud de token cuando se realiza la misma solicitud de token con notificaciones diferentes o que faltan. Si se establece falseen , los tokens se almacenan en caché sin notificaciones, pero todas las solicitudes que contienen notificaciones van a la red y sobrescriben cualquier token previamente almacenado en caché con los mismos ámbitos. booleano false

Note

La temporaryCacheLocation opción ha quedado en desuso en versiones recientes de MSAL Browser y se puede quitar en una versión principal futura. No debe confiar en esta opción para las nuevas implementaciones.

Note

Las storeAuthStateInCookie opciones y secureCookies han quedado en desuso en versiones recientes de MSAL Browser. Estas opciones se usaron principalmente para Internet Explorer compatibilidad, que ya no se admite. Se pueden quitar en una versión principal futura.

Consulte Almacenamiento en caché en MSAL para obtener más información.

Opciones de configuración del sistema

Opción Description Format Valor predeterminado
loggerOptions Objeto config para el registrador. Consulte a continuación. Consulte a continuación.
windowHashTimeout Tiempo de espera en milisegundos para esperar a que se resuelvan las operaciones emergentes. entero (milisegundos) 60000
iframeHashTimeout Tiempo de espera en milisegundos para esperar a que se resuelvan las operaciones de iframe. entero (milisegundos) 6000
loadFrameTimeout Tiempo de espera en milisegundos para esperar a que se resuelvan las operaciones iframe/popup. Si se proporciona, establecerá valores predeterminados para windowHashTimeout y iframeHashTimeout. entero (milisegundos) undefined
navigateFrameWait Retraso en milisegundos para esperar a que el iframe se cargue en la ventana. entero (milisegundos) En IE o Edge: 500, en todos los demás exploradores: 0
asyncPopups (En desuso , use navigatePopups en su lugar). Establece si los elementos emergentes se abren de forma asincrónica. Cuando se establece en false, los elementos emergentes en blanco se abren antes de que ocurra cualquier otra cosa. Cuando se establece en true, los elementos emergentes se abren al realizar la solicitud de red. booleano false
navigatePopups Establece si los elementos emergentes se abren y navegan a más adelante. Cuando se establece en true, se abren ventanas emergentes en blanco y, a continuación, navegan al dominio de inicio de sesión. Cuando se establece en false, los elementos emergentes se abren directamente en el dominio de inicio de sesión. Esto se puede establecer false en para escenarios en about:blank los que no se admite, como aplicaciones de escritorio o aplicaciones web progresivas. booleano true
allowRedirectInIframe De forma predeterminada, MSAL no permite que las operaciones de redirección se inicien cuando la aplicación está dentro de un iframe. Establezca esta marca en true para quitar esta comprobación. booleano false
cryptoOptions Objeto config para operaciones criptográficas en el explorador. Consulte Opciones de configuración criptográfica. Consulte Opciones de configuración criptográfica.
pollIntervalMilliseconds Intervalo de tiempo en milisegundos entre sondeos de hash de dirección URL emergente durante la autenticación. entero (milisegundos) 30
protocolMode Enumeración que representa el modo de protocolo que se va a usar. Si "AAD"es , MSAL funciona en los puntos de conexión de AAD v2 compatibles con OIDC; si "OIDC"es , funciona en otros puntos de conexión compatibles con OIDC. string "AAD"

Opciones de configuración del registrador

Opción Description Format Valor predeterminado
loggerCallback Función de devolución de llamada que controla el registro de instrucciones MSAL. Función : loggerCallback: (level: LogLevel, message: string, containsPii: boolean): void Consulte lo anterior.
piiLoggingEnabled Si es true, la información de identificación personal (PII) se incluye en los registros. booleano false

Opciones de configuración criptográfica

Opción Description Format Valor predeterminado
useMsrCrypto Si se usa MSR Crypto si está disponible en el explorador (y otras interfaces criptográficas no están disponibles). booleano false
entropy Valores aleatorios criptográficos seguros usados para inicializar MSR Crypto (por ejemplo crypto.randomBytes(48) , desde Node). Se recomiendan 48 bits de entropía. Obligatorio si useMsrCrypto está habilitado. Uint8Array undefined

Opciones de configuración de telemetría

Opción Description Format Valor predeterminado
application Opciones de telemetría para aplicaciones que usan MSAL.js Consulte a continuación Consulte a continuación
client Instancia de cliente de rendimiento de telemetría IPerformanceClient StubPerformanceClient

Telemetría de aplicaciones

Opción Description Format Valor predeterminado
appName Nombre de cadena único de una aplicación string Cadena vacía ""
appVersion Versión de la aplicación mediante MSAL string Cadena vacía ""