Registrazione in MSAL per iOS/macOS

Le app Libreria di Autenticazione Microsoft (MSAL) generano messaggi di log che consentono di diagnosticare i problemi. Un'app può configurare la registrazione con alcune righe di codice e avere un controllo personalizzato sul livello di dettaglio e se i dati personali e dell'organizzazione vengono registrati o meno. È consigliabile creare un'implementazione della registrazione MSAL e fornire agli utenti un modo per inviare i log in caso di problemi di autenticazione.

Livelli di registrazione

MSAL offre diversi livelli di dettaglio della registrazione:

  • LogAlways: nessun filtro a livello viene eseguito a questo livello di log. Verranno registrati i messaggi di log di tutti i livelli.
  • Critico: log che descrivono un arresto anomalo non recuperabile dell'applicazione o del sistema, oppure un guasto catastrofico che richiede attenzione immediata.
  • Errore: indica che si è verificato un problema e che è stato generato un errore. Usato per il debug e l'identificazione dei problemi.
  • Avviso: non si è necessariamente verificato un errore o un guasto, ma questi elementi sono destinati alla diagnosi e all'individuazione dei problemi.
  • Informativo: MSAL registra gli eventi destinati a scopi informativi non necessariamente destinati al debug.
  • Dettagliato (impostazione predefinita): MSAL registra tutti i dettagli del comportamento della libreria.

Note

Non tutti i livelli di log sono disponibili per tutti gli SDK MSAL

Dati personali e aziendali

Per impostazione predefinita, il logger MSAL non acquisisce dati personali o aziendali estremamente sensibili. La libreria offre la possibilità di abilitare la registrazione dei dati personali e dell'organizzazione se si decide di farlo.

Le sezioni seguenti forniscono altri dettagli sulla registrazione degli errori MSAL per l'applicazione.

MSAL per iOS e macOS logging-ObjC

Configura un callback per acquisire il logging di MSAL e integrarlo nel sistema di logging della tua applicazione. La firma per il callback è simile alla seguente:

/*!
    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);

Per esempio:

[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
        }
    }];

Dati personali

Per impostazione predefinita, MSAL non acquisisce o registra dati personali. La libreria consente agli sviluppatori di app di attivare questa funzionalità tramite una proprietà nella classe MSALLogger. Attivando pii.Enabled, l'app assume la responsabilità di gestire in modo sicuro i dati altamente sensibili e i requisiti normativi seguenti.

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

Livelli di registrazione

Per impostare il livello di registrazione quando si esegue la registrazione con MSAL per iOS e macOS, usare uno dei valori seguenti:

Level Description
MSALLogLevelNothing Disabilitare tutte le registrazioni
MSALLogLevelError Livello predefinito, stampa le informazioni solo quando si verificano errori
MSALLogLevelWarning Warnings
MSALLogLevelInfo Punti di ingresso della libreria, con parametri e varie operazioni del portachiavi
MSALLogLevelVerbose Tracciamento API

Per esempio:

MSALGlobalConfig.loggerConfig.logLevel = MSALLogLevelVerbose;

Formato del messaggio di log

La parte del messaggio dei messaggi di log MSAL è nel formato di TID = <thread_id> MSAL <sdk_ver> <OS> <OS_ver> [timestamp - correlation_id] message

Per esempio:

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.

Fornire ID di correlazione e timestamp sono utili per tenere traccia dei problemi. Il timestamp e le informazioni sull'ID di correlazione sono disponibili nel messaggio di log. L'unica posizione affidabile per recuperarle è dai messaggi di registrazione MSAL.

Passaggi successivi

Per altri esempi di codice, vedere Microsoft Identity Platform esempi di codice.