Guida introduttiva: Acquisire un token e chiamare l'API Microsoft Graph da un'applicazione desktop di Windows

Benvenuto! Questa probabilmente non è la pagina che ti aspettavi. Mentre si lavora su una correzione, questo collegamento dovrebbe portare all'articolo corretto:

Guida introduttiva: Accedere agli utenti e chiamare Microsoft Graph in un'app desktop di Windows

Ci scusiamo per l'inconveniente e apprezziamo la vostra pazienza mentre lavoriamo per risolvere questo problema.

In questa guida introduttiva si scarica ed esegue un esempio di codice che illustra come un'applicazione Windows Presentation Foundation (WPF) può accedere agli utenti e ottenere un token di accesso per chiamare l'API Microsoft Graph.

Per un'illustrazione, vedere Funzionamento dell'esempio.

Passaggio 1: Configurare l'applicazione nel portale di Azure

Per il corretto funzionamento dell'esempio di codice in questa guida introduttiva, aggiungere un URI di reindirizzamento di https://login.microsoftonline.com/common/oauth2/nativeclient e ms-appx-web://microsoft.aad.brokerplugin/{client_id}.

Already configured L'applicazione è configurata con questi attributi.

Passaggio 2: Scaricare il progetto di Visual Studio

Eseguire il progetto con Visual Studio 2019.

Suggerimento

Per evitare errori causati da limitazioni di lunghezza del percorso in Windows, è consigliabile estrarre l'archivio o clonare il repository in una directory vicina alla radice dell'unità.

Passaggio 3: L'app è configurata e pronta per l'esecuzione

Il progetto è stato configurato con i valori delle proprietà dell'app ed è pronto per essere eseguito.

Nota

Enter_the_Supported_Account_Info_Here

Ulteriori informazioni

Funzionamento dell'esempio

Shows how the sample app generated by this quickstart works

MSAL.NET

MSAL (Microsoft.Identity.Client) è la libreria usata per concedere l'accesso agli utenti e richiedere i token usati per accedere a un'API protetta da Microsoft Identity Platform. È possibile installare MSAL eseguendo questo comando in Console di Gestione pacchetti in Visual Studio:

Install-Package Microsoft.Identity.Client -IncludePrerelease

Inizializzazione della libreria MSAL

È possibile aggiungere il riferimento per la libreria MSAL aggiungendo il codice seguente:

using Microsoft.Identity.Client;

Inizializzare quindi la libreria MSAL usando il codice seguente:

IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
                .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
                .WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
                .Build();
Dove: Descrizione
ClientId ID applicazione (client) dell'applicazione registrata nel portale di Azure. Questo valore è riportato nella pagina Panoramica dell'app nel portale di Azure.

Richiesta di token

In MSAL sono disponibili due metodi per acquisire i token: AcquireTokenInteractive e AcquireTokenSilent.

Ottenere un token utente in modo interattivo

Alcune situazioni richiedono l'uso forzato dell'interazione degli utenti con Microsoft Identity Platform tramite una finestra popup per convalidare le proprie credenziali o per fornire il consenso. Alcuni esempi includono:

  • La prima volta che gli utenti accedono all'applicazione
  • Quando gli utenti devono immettere nuovamente le credenziali perché la password è scaduta
  • Quando l'applicazione richiede l'accesso a una risorsa per cui è necessario il consenso dell'utente
  • Quando è necessaria l'autenticazione a due fattori
authResult = await App.PublicClientApp.AcquireTokenInteractive(_scopes)
                                      .ExecuteAsync();
Dove: Descrizione
_scopes Contiene gli ambiti richiesti, ad esempio { "user.read" } per Microsoft Graph o { "api://<Application ID>/access_as_user" } per le API Web personalizzate.

Ottenere un token utente in modo automatico

Non si desidera richiedere all'utente di convalidare le proprie credenziali ogni volta che deve accedere a una risorsa. La maggior parte delle volte si desidera che le acquisizioni e i rinnovi dei token avvengano senza alcuna interazione da parte dell'utente. È possibile usare il metodo AcquireTokenSilent per ottenere i token per accedere alle risorse protette dopo il metodo AcquireTokenInteractive iniziale:

var accounts = await App.PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await App.PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
                                      .ExecuteAsync();
Dove: Descrizione
scopes Contiene gli ambiti richiesti, ad esempio { "user.read" } per Microsoft Graph o { "api://<Application ID>/access_as_user" } per le API Web personalizzate.
firstAccount Specifica il primo utente nella cache (MSAL supporta più utenti in una singola app).

Assistenza e supporto

Se è necessaria assistenza, si vuole segnalare un problema o si vogliono ottenere informazioni sulle opzioni di supporto, vedere Assistenza e supporto per gli sviluppatori.

Passaggi successivi

Provare l'esercitazione di Windows Desktop per una guida dettagliata completa sulla creazione di applicazioni e di nuove funzionalità, tra cui una spiegazione completa di questa guida introduttiva.