Informazioni sull'accesso con MSAL4J
MSAL4J connette la configurazione dell'applicazione alle API di autenticazione e acquisizione di token Microsoft Identity Platform. Questa unità illustra un esempio di costruzione client e il ruolo della libreria nel flusso di accesso di un'applicazione Web.
Libreria di autenticazione Microsoft per Java
Il Microsoft Authentication Library per Java (MSAL4J) consente alle applicazioni di eseguire l'autenticazione con identità Microsoft e ottenere token per le API protette. Supporta scenari che coinvolgono Microsoft Entra ID, account Microsoft personali e Azure AD B2C, usando OAuth 2.0 e OpenID Connect.
Note
I clienti di AD B2C esistenti Azure possono continuare a usare il servizio. Non è disponibile per l'acquisto da parte dei nuovi clienti dal 1° maggio 2025 e il supporto continua fino ad almeno maggio 2030. Azure AD B2C P2 è stata ritirata per tutti i clienti il 15 marzo 2026; il supporto continuativo del servizio non copre le funzionalità ritirate disponibili solo in P2.
Per i nuovi progetti di identità dei clienti, usare Microsoft Entra per ID esterno. Lo scenario descritto in questo modulo riguarda un tenant della forza lavoro di Microsoft Entra, non un tenant Azure AD B2C o un tenant esterno External ID. Per informazioni dettagliate, vedere le domande frequenti sulla fine della vendita di AD B2C Azure.
MSAL4J supporta diversi tipi di applicazioni, tra cui applicazioni Web, servizi in background, applicazioni da riga di comando e applicazioni desktop. Il tipo di client appropriato e il flusso di acquisizione dei token dipendono dall'ambiente dell'applicazione.
Un client riservato rappresenta l'applicazione server
MSAL distingue i client pubblici, che non possono mantenere in modo affidabile le credenziali dell'applicazione riservate, dai client riservati, che possono autenticarsi usando credenziali mantenute in modo sicuro. Un'applicazione Web Java lato server è un client riservato.
Il frammento illustrativo seguente costruisce il client. I nomi maiuscoli sono segnaposto di configurazione, non identificatori reali o segreti. Le importazioni, il codice dell'applicazione circostante e la gestione delle eccezioni non vengono visualizzate.
IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication app = ConfidentialClientApplication
.builder(CLIENT_ID, credential)
.authority(AUTHORITY)
.build();
Il frammento collega tre input:
| Input | Meaning |
|---|---|
CLIENT_ID |
Identificatore dell'applicazione dalla registrazione. |
CLIENT_SECRET |
Segnaposto per il materiale segreto fornito al server. Viene illustrata una factory di credenziali, non una richiesta di creazione o incorporamento di un segreto. |
AUTHORITY |
URL del provider di identità e gruppo di destinatari di accesso. Nello scenario a tenant singolo, identifica il tenant Microsoft Entra selezionato. |
ClientCredentialFactory crea un oggetto credenziale e il generatore associa tale credenziale all'ID client e all'autorità dell'applicazione. La chiamata a build() crea il client MSAL; non esegue l'accesso di un utente né reindirizza il browser da nessuna parte.
Ruolo di MSAL nel flusso del codice di autorizzazione
Un client riservato autentica l'applicazione, mentre l'interazione del browser autentica l'utente. L'applicazione coordina queste parti del flusso:
| Phase | MSAL API | Responsabilità dell'applicazione |
|---|---|---|
| Avvia l'accesso nel browser | getAuthorizationRequestUrl |
Costruisci una richiesta di autorizzazione e reindirizza il browser a essa. |
| Riscattare un codice di autorizzazione |
acquireToken con AuthorizationCodeParameters |
Elaborare il callback, convalidare la risposta e scambiare il codice ricevuto per i token. |
| Ottenere un token per una chiamata API successiva |
acquireTokenSilently con SilentParameters |
Specificare l'account e il contesto di cache dei token appropriato e gestire i casi che richiedono l'interazione dell'utente. |
Per questa applicazione Web, il callback riceve un codice di autorizzazione, non il token di accesso Microsoft Graph. Il riscatto del codice avviene tramite una richiesta da server a server all'endpoint del token.
Interpretare il risultato dell'autenticazione
Il riscatto del codice avvenuto correttamente restituisce un IAuthenticationResult. In questo scenario OpenID Connect, il risultato fornisce un token ID per l'applicazione e un token di accesso per l'API richiesta. Fornisce anche informazioni usate per gestire la durata dell'account e del token.
Il token ID contiene attestazioni di identità; il token di accesso abilita una richiesta all'API desiderata. Un token ID non sostituisce un token di accesso Microsoft Graph. MSAL4J acquisisce i token, ma l'applicazione o un SDK specifico dell'API effettua la chiamata api aziendale successiva.
L'unità successiva segue queste responsabilità tramite il codice servlet con annotazioni. La panoramica di MSAL offre un contesto aggiuntivo sugli scenari supportati e sulla gestione dei token.