Domande frequenti

Scope di MSAL4J

Qual è la funzionalità principale di MSAL?

Acquisizione di token da un servizio token di sicurezza (STS) per consentire a un'applicazione client di accedere a una risorsa protetta.

Che cos'è MSAL4J?

MSAL è disponibile per molti linguaggi di programmazione e piattaforme. MSAL4J è progettato per essere usato in qualsiasi applicazione eseguita nella macchina virtuale Java.

Quali protocolli standard seguono MSAL per l'acquisizione di token?

MSAL implementa una versione personalizzata del protocollo OAuth2. Inoltre, per alcuni scenari specifici, può usare internamente altri protocolli , ad esempio WS-Trust.

MSAL è una libreria generale per l'acquisizione di token usando il protocollo OAuth2?

No. MSAL è una libreria client per Microsoft Entra ID, Active Directory Federation Services (ADFS) e Azure Active Directory B2C. Esistono alcuni concetti specifici, come “resource”, richiesto da ADAL, che sono considerati estensioni della specifica generale di OAuth2 e non sono supportati da altri STS.

Incremento delle API

È consigliabile disattivare la convalida dell'autorità passando false al costruttore?

Dipende dal tipo di autorità con cui si parla. Se si tratta di ADFS, è necessario passare false perché ADFS non supporta attualmente la convalida dell'autorità. Se si tratta di Microsoft Entra ID, si ha comunque la possibilità di passare `false` come valore, ma si consiglia di impostarlo su `true`, soprattutto se si ottiene l'indirizzo dell'autorità da terze parti (ad esempio tramite una challenge 401). Ciò consente di proteggere le applicazioni e gli utenti dal reindirizzamento a endpoint dannosi per immettere le proprie credenziali.

Quale overload di AcquireToken è necessario chiamare?

Dipende dal tipo di applicazione client usata e dallo scenario per cui è necessario un token. Vedere le linee guida documentate in Acquisire token.

Debugging

Quali sono i motivi comuni per cui si verifica un errore nell'uso di MSAL?

I problemi in MSAL potrebbero avere diversi motivi. Questi sono i responsabili comuni:

  1. Il computer presenta problemi di connessione.
  2. Le applicazioni o gli utenti non sono configurati correttamente in Microsoft Entra ID o ADFS.
  3. Si sta utilizzando un'API errata per questa operazione (MSAL ha diversi overload simili per il metodo AcquireToken).
  4. C'è un bug in MSAL! Sì, è sempre possibile. Se si è certi che nessuno degli elementi sopra indicati sia la causa del problema, si prega di segnalarcelo e lo esamineremo correggendo il bug, se presente.

Quali strumenti è possibile usare per diagnosticare un problema in ADAL?

È possibile usare diversi strumenti di diagnostica:

  1. Esempi MSAL: il primo strumento migliore è il set di esempi pubblicati insieme a MSAL (all'interno del repository di libreria e gli esempi pubblicati nell'organizzazione azureSamples GitHub). Provare a trovare l'esempio più vicino all'applicazione e scaricarlo ed eseguirlo nel computer. Se l'esempio funziona correttamente, è necessario seguire nella propria applicazione gli stessi passaggi dell'app di esempio.
  2. Log di diagnostica MSAL: è possibile abilitare la registrazione. Verranno scritti alcuni log con informazioni sui passaggi interni di MSAL. È possibile analizzare i log per trovare il problema. Inoltre, nel caso in cui si contatta il team MSAL, è necessario inviare i log per facilitare l'analisi. È possibile trovare le istruzioni su come attivare i log MSAL nella documentazione ufficiale
  3. Tracce di rete: usare uno strumento come Fiddler per registrare tutte le comunicazioni HTTP eseguite da MSAL con il server. L'uso di Fiddler è particolarmente facile nei computer desktop Windows. Si prega di condividere il file di traccia di rete con il team MSAL nel caso in cui veniamo coinvolti nella diagnosi del problema.

Quale tipo di errore viene restituito da MSAL come eccezione e quale tipo viene segnalato all'utente?

La maggior parte degli errori viene restituita da MSAL in forma di eccezione; Tuttavia, esistono casi limitati in cui MSAL visualizza l'errore nel controllo browser. Questi casi si verificano principalmente quando il client non può essere convalidato o non è possibile raggiungere il server di autorità.

MSAL ha una qualche logica di retry interna?

No. Se un'operazione ha esito negativo, MSAL segnala un errore tramite un'eccezione. L'eccezione include un codice di errore e anche un codice di stato nel caso in cui l'errore venga restituito dall'autorità. In questi casi, è compito dello sviluppatore esaminare il codice di stato (che riflette principalmente il codice di stato HTTP della risposta) nell'eccezione e decide se riprovare o meno. 502 è in genere il codice di stato che garantisce un nuovo tentativo.

Modello di rilascio di MSAL

Con quale frequenza MSAL rilascia una nuova versione?

Non è prevista alcuna pianificazione pre-determinata. Si tenta di pubblicare versioni di manutenzione molto regolarmente per correggere i bug e sbloccare i clienti. Le versioni principali in genere richiedono più tempo e vengono rilasciate diverse versioni di anteprima prima della disponibilità generale di una versione principale.

Qual è il modello di compatibilità delle versioni msal?

L'obiettivo è mantenere la compatibilità con le versioni precedenti all'interno di una versione principale. A tale scopo, si tenta di correggere solo i bug o aggiungere nuove funzionalità nelle versioni di manutenzione (che aumentano la versione secondaria). Tuttavia, non esiste alcuna garanzia di compatibilità tra le versioni principali. È possibile aggiungere o rimuovere il supporto per determinate piattaforme o scenari, pertanto è consigliabile comprendere completamente l'ambito delle modifiche e testare completamente la nuova versione prima di passare al supporto nel codice di produzione.