Perguntas frequentes

Scope do MSAL4J

Qual é a principal funcionalidade do MSAL?

Aquisição de token de um Serviço de Token de Segurança (STS) para uma aplicação cliente aceder a um recurso protegido.

O que é o MSAL4J?

O MSAL está disponível para muitas linguagens de programação e plataformas. O MSAL4J foi concebido para ser usado em qualquer aplicação que corra na máquina virtual Java.

Que protocolos padrão a MSAL segue para aquisição de tokens?

A MSAL está a implementar uma versão personalizada do protocolo OAuth2. Além disso, para alguns cenários específicos, pode usar internamente outros protocolos (por exemplo, WS-Trust).

A MSAL é uma biblioteca geral para aquisição de tokens usando o protocolo OAuth2?

Não. MSAL é uma biblioteca cliente para Microsoft Entra ID, Serviços de Federação do Active Directory (AD FS) (ADFS) e Azure Active Directory B2C. Existem algumas noções personalizadas, como "recurso", exigidas pela ADAL, que são consideradas extensões da especificação geral do protocolo OAuth2 e não suportadas por outros STS.

Aumento gradual da API

Devo desativar a validação de autoridade passando false ao construtor?

Depende do tipo de autoridade com quem fala. Se for ADFS, tem de passar false, pois o ADFS de momento não suporta a validação da autoridade. Se for o Microsoft Entra ID, ainda tem a opção de passar falso, mas recomenda-se que seja verdadeiro, especialmente se obtiver o endereço da autoridade através de terceiros (por exemplo, através de um desafio 401). Isto serve para proteger aplicações e utilizadores de serem redirecionados para endpoints maliciosos para introduzirem as suas credenciais.

Que sobrecarga de AcquireToken devo utilizar?

Depende do tipo de aplicação cliente que usas e do cenário para o qual precisas de um token. Consulte as orientações documentadas em Adquirir Tokens.

Debugging

Quais são as razões mais comuns para o fracasso na utilização do MSAL?

Os problemas no MSAL podem ter várias razões. Estes são os culpados comuns:

  1. A tua máquina tem problemas de ligação.
  2. As suas aplicações/utilizadores não estão devidamente configurados no Microsoft Entra ID ou ADFS.
  3. Está a usar uma API incorreta para a sua tarefa (o MSAL tem várias sobrecargas semelhantes para o método AcquireToken).
  4. Há um bug no MSAL! Sim, isso é sempre possível. Se tem a certeza de que nenhum dos itens acima é a razão da falha, por favor reporte-nos e iremos investigar e corrigir o bug caso exista.

Que ferramentas posso usar para diagnosticar um problema na ADAL?

Existem várias ferramentas de diagnóstico que pode usar:

  1. Exemplos de MSAL: A primeira melhor ferramenta é o conjunto de exemplos publicados juntamente com o MSAL (dentro do repositório da biblioteca, bem como os exemplos disponíveis na organização AzureSamples GitHub). Tenta encontrar o exemplo mais próximo da tua aplicação e descarrega-o e executa-o na tua máquina. Se o exemplo funcionar corretamente, tens de seguir os mesmos passos da aplicação de exemplo na tua candidatura.
  2. Registos de diagnóstico MSAL: Pode ativar o registo. Isto irá escrever alguns registos com informação sobre os passos internos do MSAL. Pode analisar os registos para encontrar o problema. Além disso, caso contacte a equipa MSAL, precisa de enviar os registos para ajudar na análise. Podes encontrar as instruções sobre como ativar os registos MSAL na documentação oficial
  3. Rastreios de rede: Use uma ferramenta como o Fiddler para gravar todas as comunicações http que o MSAL faz com o servidor. Usar o Fiddler é especialmente fácil em computadores de ambiente de trabalho com Windows. Por favor, partilhe o ficheiro de rastreamento de rede com a equipa MSAL caso estejamos envolvidos no diagnóstico do seu problema.

Que tipo de erros são devolvidos pelo MSAL como exceção e que tipo é reportado ao utilizador?

A maioria dos erros é devolvida pelo MSAL sob a forma de uma exceção; no entanto, há poucos casos em que o MSAL mostra o erro no controlo do navegador. Estes casos acontecem principalmente quando o cliente não pode ser validado ou o servidor de autoridade não pode ser contactado.

O MSAL tem alguma lógica de repetição incorporada?

Não. Se uma operação falhar, o MSAL reporta um erro através de uma exceção. A exceção inclui um código de erro e também um código de estado caso o erro seja devolvido pela autoridade. Nesses casos, cabe ao programador examinar o código de estado (que reflete maioritariamente o código de estado http da resposta) na exceção e decidir se tenta novamente ou não. O 502 é normalmente o código de estado que justifica uma nova tentativa.

Modelo de Lançamento MSAL

Com que frequência a MSAL lança uma nova versão?

Não existe um calendário pré-determinado. Tentamos publicar versões de manutenção com muita regularidade para corrigir bugs e desbloquear clientes. Os lançamentos principais normalmente demoram mais e lançamos várias versões de pré-visualização antes da disponibilidade geral de uma versão principal.

Qual é o modelo de compatibilidade das versões MSAL?

O objetivo é manter a retrocompatibilidade dentro de uma versão principal. Para isso, tentamos corrigir apenas bugs ou adicionar novas funcionalidades nas versões de manutenção (que aumentam a versão menor). No entanto, não há garantia de compatibilidade entre as versões principais. Podemos adicionar ou remover suporte para certas plataformas ou cenários, por isso, recomenda-se que compreenda totalmente o alcance das alterações e teste totalmente a nova versão antes de a mudar no seu código de produção.