Iniciar sessão em MSAL para iOS/macOS

As aplicações Biblioteca de Autenticação da Microsoft (MSAL) geram mensagens de registo que podem ajudar a diagnosticar problemas. Uma aplicação pode configurar registos com algumas linhas de código e ter controlo personalizado sobre o nível de detalhe e se os dados pessoais e organizacionais são registados ou não. Recomendamos que crie uma implementação de registo MSAL e forneça uma forma para os utilizadores submeterem registos quando tiverem problemas de autenticação.

Níveis de registo

O MSAL fornece vários níveis de detalhe de registo:

  • LogAlways: Não é feita filtragem de nível neste nível de log. As mensagens de registo de todos os níveis serão registadas.
  • Crítico: Registos que descrevem uma falha de aplicação ou sistema irrecuperável, ou uma falha catastrófica que requer atenção imediata.
  • Erro: Indica que algo correu mal e foi gerado um erro. Usado para depuração e identificação de problemas.
  • Aviso: Não houve necessariamente um erro ou falha, mas destinam-se a diagnósticos e à identificação de problemas.
  • Informativo: O MSAL regista eventos para fins informativos, não necessariamente para depuração.
  • Verbose (Predefinição): o MSAL regista todos os detalhes do comportamento da biblioteca.

Note

Nem todos os níveis de log estão disponíveis para todos os SDKs MSAL

Dados pessoais e organizacionais

Por predefinição, o sistema de registo do MSAL não captura dados pessoais nem organizacionais de elevada sensibilidade. A biblioteca oferece a opção de permitir o registo de dados pessoais e organizacionais, caso assim o decida.

As secções seguintes fornecem mais detalhes sobre o registo de erros MSAL para a sua aplicação.

MSAL para iOS e macOS logging-ObjC

Defina uma função de retorno para capturar os registos do MSAL e integrá-los no sistema de registo da sua aplicação. A assinatura para o callback é a seguinte:

/*!
    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 exemplo:

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

Dados pessoais

Por defeito, a MSAL não captura nem regista quaisquer dados pessoais. A biblioteca permite aos programadores de aplicações ativar isto através de uma propriedade na classe MSALLogger. Ao ativar pii.Enabled, a aplicação assume a responsabilidade de lidar com dados altamente sensíveis de forma segura e de cumprir os requisitos regulamentares.

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

Níveis de registo

Para definir o nível de registo ao iniciar login usando MSAL para iOS e macOS, use um dos seguintes valores:

Nível Description
MSALLogLevelNothing Desative todo o registo
MSALLogLevelError Nível padrão, imprime informação apenas quando ocorrem erros
MSALLogLevelWarning Warnings
MSALLogLevelInfo Pontos de entrada da biblioteca, com parâmetros e diversas operações do porta-chaves
MSALLogLevelVerbose Rastreamento de API

Por exemplo:

MSALGlobalConfig.loggerConfig.logLevel = MSALLogLevelVerbose;

Formato da mensagem de registo

A parte da mensagem dos registos do MSAL está no formato de TID = <thread_id> MSAL <sdk_ver> <OS> <OS_ver> [timestamp - correlation_id] message

Por exemplo:

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.

Fornecer IDs de correlação e marcas temporais é útil para localizar problemas. A informação de carimbo temporal e de identificação de correlação está disponível na mensagem do registo. O único lugar fiável para os recuperar é nas mensagens de registo do MSAL.

Passos seguintes

Para mais exemplos de código, consulte exemplos de código da plataforma de identidades da Microsoft.