Como fazer registro em log no MSAL.js
Os aplicativos da MSAL (Biblioteca de Autenticação da Microsoft) geram mensagens de log que podem ajudar a diagnosticar problemas e fornecer detalhes. Um aplicativo pode configurar o registro em log com algumas linhas de código, ter um controle personalizado sobre o nível de detalhes e determinar se dados pessoais e organizacionais serão registrados. Recomendamos que você crie uma implementação de registro em log da MSAL e forneça uma maneira para os usuários enviarem logs quando estiverem com problemas de autenticação.
Níveis de log
A MSAL fornece vários níveis de detalhes de log:
- LogAlways: nenhuma filtragem de nível é feita neste nível de log. As mensagens de log de todos os níveis serão registradas.
- Crítico: logs que descrevem uma falha irrecuperável do aplicativo ou do sistema ou uma falha catastrófica que exige atenção imediata.
- Erro: indica que algo deu errado e um erro foi gerado. Utilizado para depuração e identificação de problemas.
- Aviso: é destinado a diagnosticar e identificar problemas, mesmo que não tenha havido necessariamente um erro ou falha.
- Informativo: a MSAL registrará em log os eventos destinados a fins informativos, não necessariamente voltados a depuração.
- Detalhado (padrão): a MSAL registra em log os detalhes completos do comportamento da biblioteca.
Observação
Nem todos os níveis de log estão disponíveis para todos os SDKs da MSAL
Dados pessoais e organizacionais
Por padrão, o agente da MSAL não captura dados pessoais ou organizacionais altamente confidenciais. A biblioteca oferece a opção para habilitar o registro em log de dados pessoais e organizacionais, se você optar por fazer isso.
As seções a seguir fornecem mais detalhes sobre o log de erros da MSAL para seu aplicativo.
Configurar o registro em log na MSAL.js
Você pode habilitar o registro em log na MSAL.js passando um objeto loggerOptions durante a configuração para criar uma instância PublicClientApplication
. O único parâmetro de configuração necessário é a ID do cliente do aplicativo. Tudo o mais é opcional, mas pode ser necessário dependendo do seu locatário e do modelo de aplicativo.
O objeto loggerOptions tem as seguintes propriedades:
loggerCallback
: uma função de retorno de chamada que pode ser fornecida pelo desenvolvedor para manipular o registro em log de instruções MSAL de uma maneira personalizada. Implemente a funçãologgerCallback
dependendo de como você deseja redirecionar os logs. A função loggerCallback tem o seguinte formato(level: LogLevel, message: string, containsPii: boolean): void
- Os níveis de log compatíveis são:
Error
,Warning
,Info
eVerbose
. O padrão éInfo
.
- Os níveis de log compatíveis são:
piiLoggingEnabled
(opcional): se definido como true, registra em log dados pessoais e organizacionais. Por padrão, fica definido como false para que o aplicativo não registre dados pessoais. Logs de dados pessoais nunca são gravados em saídas padrão como Console, Logcat ou NSLog.
import msal from "@azure/msal-browser"
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",
storeAuthStateInCookie: false,
secureCookies: false
},
system: {
loggerOptions: {
logLevel: msal.LogLevel.Verbose,
loggerCallback: (level, message, containsPii) => {
if (containsPii) {
return;
}
switch (level) {
case msal.LogLevel.Error:
console.error(message);
return;
case msal.LogLevel.Info:
console.info(message);
return;
case msal.LogLevel.Verbose:
console.debug(message);
return;
case msal.LogLevel.Warning:
console.warn(message);
return;
}
},
piiLoggingEnabled: false
},
},
};
Próximas etapas
Para obter mais exemplos de código, consulte Exemplos de código da plataforma de identidade da Microsoft.