Iniciar sessão em MSAL para Java

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 logarítmico. As mensagens de registo de todos os níveis serão registadas.
  • Critical: Registos que descrevem uma falha de aplicação ou sistema irrecuperável, ou uma falha catastrófica que requer atenção imediata.
  • Error: Indica que algo correu mal e foi gerado um erro. Usado para depuração e identificação de problemas.
  • Warning: Não houve necessariamente um erro ou falha, mas destinam-se a diagnósticos e à identificação de problemas.
  • Informational: O MSAL regista eventos para fins informativos, não necessariamente para depuração.
  • Verbose (Padrã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 registo em Java

O MSAL para Java permite-lhe utilizar a biblioteca de registo que já utiliza na sua aplicação, desde que seja compatível com Simple Logging Facade for Java (SLF4J). O MSAL para Java utiliza o SLF4J como uma abstração simples para vários frameworks de registo, como java.util.logging, Logback e Log4j. O SLF4J permite ao utilizador ligar o framework de registo desejado no momento da implementação e associa-se automaticamente ao Logback nessa altura. Os registos do MSAL serão registados na consola. Este artigo mostra como ativar o registo MSAL4J usando o framework de logback numa aplicação web Spring Boot.

  1. Para implementar o registo, inclua o pacote logback em pom.xml.

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    
  2. Navegue até à resources pasta, adicione um ficheiro chamado logback.xml, e insira o seguinte código. Isto vai adicionar registos à consola. Pode alterar o anexor class para escrever registos num ficheiro, base de dados ou qualquer anexor que quiser.

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
        <root level="debug">
            <appender-ref ref="STDOUT" />
        </root>    
    </configuration>
    
  3. Defina a logging.config propriedade para a localização do logback.xml ficheiro antes do método principal. Navegue até MsalWebSampleApplication.java e adicione o seguinte código à MsalWebSampleApplication classe pública.

    @SpringBootApplication
    public class MsalWebSampleApplication {
    
        static { System.setProperty("logging.config", "C:\Users\<your path>\src\main\resources\logback.xml"); }
        public static void main(String[] arrgs) {
            // Console.log("main");
            // System.console().printf("Hello");
            // System.out.printf("Hello %s!%n", "World");
            System.out.printf("%s%n", "Hello World");
            SpringApplication.run(MsalWebSampleApplication.class, args);
        }
    }
    

No seu tenant, vai precisar de registos de aplicação separados para a aplicação Web e para a API da Web. Para registo de aplicações e exposição do âmbito da API web, siga os passos no cenário Uma aplicação web que autentica utilizadores e chama APIs web.

Para instruções sobre como associar a outros frameworks de registo, consulte a documentação do SLF4J.

Informações pessoais e organizacionais

Por defeito, o registo MSAL não captura nem regista quaisquer dados pessoais ou organizacionais. No exemplo seguinte, registar dados pessoais ou organizacionais está desativado por defeito:

PublicClientApplication app2 = PublicClientApplication.builder(PUBLIC_CLIENT_ID)
        .authority(AUTHORITY)
        .build();

Ative o registo de dados pessoais e organizacionais definindo logPii() no construtor de aplicações cliente. Se ativar o registo de dados pessoais ou organizacionais, a sua aplicação deve assumir a responsabilidade de lidar com dados altamente sensíveis em segurança e cumprir quaisquer requisitos regulamentares.

No exemplo seguinte, o registo de dados pessoais ou organizacionais está ativado:

PublicClientApplication app2 = PublicClientApplication.builder(PUBLIC_CLIENT_ID)
        .authority(AUTHORITY)
        .logPii(true)
        .build();

Passos seguintes

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