Interpretare una richiesta di Microsoft Graph
Questa procedura dettagliata illustra come un'applicazione Web Java può leggere il profilo dell'utente connesso da Microsoft Graph. La richiesta, Java frammento e la risposta seguenti sono esempi illustrativi con spiegazioni, non un lab o un requisito per inviare una richiesta API reale.
Mettere in relazione la configurazione, gli ambiti e il consenso
L'esempio di servlet di riferimento usa l'oggetto delegato User.Read. La aad.scopes proprietà di configurazione fornisce tale valore a Config.SCOPES, che il codice di autenticazione richiede durante l'accesso.
L'elenco delle autorizzazioni API di registrazione dell'app descrive le autorizzazioni configurate. Lo screenshot seguente è un esempio di tale visualizzazione, non un'istruzione per modificare una registrazione.
Tre fatti spiegano il contesto di autorizzazione:
- Il codice richiede autorizzazioni delegate
User.Readper Microsoft Graph. - Il consenso può provenire dall'utente o da un amministratore autorizzato, a seconda dei criteri del tenant e delle concessioni esistenti.
- L'aggiunta di un'autorizzazione alla registrazione non concede il consenso o modifica gli ambiti richiesti dal codice.
L'esempio richiede questa autorizzazione durante l'accesso, quindi non esiste un presupposto separato che ogni richiesta Graph visualizzi una richiesta di consenso.
Leggere la richiesta HTTP
L'esempio HTTP seguente illustra le parti essenziali di una richiesta di profilo.
<graph-access-token> è un segnaposto esplicativo, non un token da ottenere o incollare in uno strumento.
GET /v1.0/me HTTP/1.1
Host: graph.microsoft.com
Authorization: Bearer <graph-access-token>
La richiesta usa HTTPS per raggiungere https://graph.microsoft.com/v1.0/me.
/me identifica l'utente connesso in un contesto delegato. LAuthorization'intestazione contiene un token di accesso destinato a Microsoft Graph; non contiene il token ID dell'applicazione, un codice di autorizzazione o un segreto client.
User.Read è sufficiente per l'operazione illustrata della lettura del profilo dell'utente connesso. Non autorizza l'accesso arbitrario alle informazioni di altri utenti. Il riferimento all'API Ottenere un utente descrive l'endpoint e le autorizzazioni.
Leggere l'equivalente di Java SDK
Il CallGraphServlet dell'esempio storico gestisce la propria route /call_graph e utilizza l'SDK di Microsoft Graph per effettuare la richiesta all'API. Il frammento seguente illustra che la chiamata dopo l'acquisizione del token è riuscita.
User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();
GraphHelper è un helper definito dall'esempio, non un'API MSAL4J predefinita. Crea un oggetto GraphServiceClient il cui provider di autenticazione fornisce il token di accesso a Graph dell'utente autenticato nel contesto autenticato dell'esempio.
contextAdapter connette la richiesta corrente al contesto dell'applicazione.
In questa versione me() dell'SDK seleziona l'endpoint utente connesso, buildRequest() crea la richiesta e lo invia e get() deserializza la risposta in un modello di Microsoft GraphUser. Il frammento omette il servlet circostante, le importazioni, la gestione delle sessioni e l'elaborazione degli errori; non è un'applicazione completa.
Note
Questo frammento riflette la sintassi di Microsoft Graph SDK per Java 5.5.0 dell'esempio storico. L'SDK v6 modifica il modello di richiesta, la costruzione client, l'integrazione dell'autenticazione e l'accesso al modello. La guida all'aggiornamento di Microsoft Graph Java SDK v6 illustra queste differenze. Un'espressione della richiesta solo per v6 non è compatibile con la dipendenza v5 e il codice di supporto dell'esempio.
Interpretare una risposta illustrativa
Una risposta di esempio abbreviata può contenere i campi del profilo seguenti. I valori sono fittizi e non costituiscono un output che il discente deve riprodurre.
{
"displayName": "Avery Rivera",
"jobTitle": "Service specialist",
"mail": "avery@example.com"
}
L'applicazione può usare questi campi per presentare informazioni sul profilo. I valori effettivi dipendono dal profilo della directory dell'utente e i campi possono essere assenti o null. Un campo profilo non è una prova di impiego o un sostituto dei criteri di autorizzazione dell'applicazione.
La divisione complessiva delle responsabilità è importante: Microsoft Entra ID rilascia un token nelle regole di autorizzazione e consenso applicabili, MSAL4J acquisisce tale token e Graph SDK o un client HTTP lo usa per richiedere i dati. La semplice costruzione di un client Graph non concede l'accesso.