Inicio de sesión en MSAL para iOS/macOS

Las aplicaciones de Biblioteca de autenticación de Microsoft (MSAL) generan mensajes de registro que pueden ayudar a diagnosticar problemas. Una aplicación puede configurar el registro con algunas líneas de código y tener control personalizado sobre el nivel de detalle y si se registran o no datos personales y de la organización. Se recomienda crear una implementación de registro de MSAL y proporcionar una manera de que los usuarios envíen registros cuando tengan problemas de autenticación.

Niveles de registro

MSAL proporciona varios niveles de detalle de registro:

  • LogAlways: no se realiza ningún filtrado de nivel en este nivel de registro. Los mensajes de registro de todos los niveles se registrarán.
  • Crítico: registros que describen un bloqueo irrecuperable de la aplicación o del sistema, o un fallo catastrófico que requiere atención inmediata.
  • Error: indica que algo ha ido mal y se generó un error. Se usa para depurar e identificar problemas.
  • Advertencia: no necesariamente se ha producido un error o un fallo, pero sirve para fines de diagnóstico y para localizar problemas.
  • Informativo: MSAL registrará los eventos de carácter informativo, no relacionados necesariamente con la depuración.
  • Detallado (valor predeterminado): MSAL registra los detalles completos del comportamiento de la biblioteca.

Note

No todos los niveles de registro están disponibles para todos los SDK de MSAL

Datos personales y organizativos

De forma predeterminada, el registrador de MSAL no captura ningún dato personal o organizativo altamente confidencial. La biblioteca proporciona la opción de habilitar el registro de datos personales y organizativos si decide hacerlo.

En las secciones siguientes se proporcionan más detalles sobre el registro de errores de MSAL para la aplicación.

Registro de MSAL para iOS y macOS: ObjC

Establezca una devolución de llamada para capturar el registro de MSAL e incorporarlo al registro de su propia aplicación. La firma de la devolución de llamada tiene el siguiente aspecto:

/*!
    The LogCallback block for the MSAL logger

    @param  level           The level of the log message
    @param  message         The message being logged
    @param  containsPII     If the message might contain Personally Identifiable Information (PII)
                            this will be true. Log messages possibly containing PII will not be
                            sent to the callback unless PIllLoggingEnabled is set to YES on the
                            logger.

 */
typedef void (^MSALLogCallback)(MSALLogLevel level, NSString *message, BOOL containsPII);

Por ejemplo:

[MSALGlobalConfig.loggerConfig setLogCallback:^(MSALLogLevel level, NSString *message, BOOL containsPII)
    {
        if (!containsPII)
        {
#if DEBUG
            // IMPORTANT: MSAL logs may contain sensitive information. Never output MSAL logs with NSLog, or print, directly unless you're running your application in debug mode. If you're writing MSAL logs to file, you must store the file securely.
            NSLog(@"MSAL log: %@", message);
#endif
        }
    }];

Datos personales

De forma predeterminada, MSAL no captura ni registra ningún dato personal. La biblioteca permite a los desarrolladores de aplicaciones activar esto a través de una propiedad en la clase MSALLogger. Al activar pii.Enabled, la aplicación asume la responsabilidad de controlar de forma segura los datos altamente confidenciales y seguir los requisitos normativos.

// By default, the `MSALLogger` doesn't capture any PII

// PII will be logged
MSALGlobalConfig.loggerConfig.piiEnabled = YES;

// PII will NOT be logged
MSALGlobalConfig.loggerConfig.piiEnabled = NO;

Niveles de registro

Para establecer el nivel de registro al iniciar sesión con MSAL para iOS y macOS, use uno de los valores siguientes:

Level Description
MSALLogLevelNothing Deshabilitar todo el registro
MSALLogLevelError Nivel predeterminado, imprime información solo cuando se producen errores.
MSALLogLevelWarning Warnings
MSALLogLevelInfo Puntos de entrada de la biblioteca, con parámetros y varias operaciones de llavero.
MSALLogLevelVerbose Seguimiento de API

Por ejemplo:

MSALGlobalConfig.loggerConfig.logLevel = MSALLogLevelVerbose;

Formato del mensaje de registro

La parte del mensaje de los mensajes de registro de MSAL tiene el formato de TID = <thread_id> MSAL <sdk_ver> <OS> <OS_ver> [timestamp - correlation_id] message

Por ejemplo:

TID = 551563 MSAL 0.2.0 iOS Sim 12.0 [2018-09-24 00:36:38 - 36764181-EF53-4E4E-B3E5-16FE362CFC44] acquireToken returning with error: (MSALErrorDomain, -42400) User cancelled the authorization session.

Proporcionar identificadores de correlación y marcas de tiempo son útiles para rastrear problemas. La marca de tiempo y la información del identificador de correlación están disponibles en el mensaje de registro. El único lugar fiable para obtenerlos son los mensajes de registro de MSAL.

Pasos siguientes

Para obtener más ejemplos de código, consulte Plataforma de identidad de Microsoft ejemplos de código.