Condividi tramite


Guida introduttiva: Autenticare gli utenti e utilizzare Microsoft Graph in un'app desktop di Windows

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. L'app desktop compilata usa il flusso del codice di autorizzazione associato allo standard PKCE (Proof Key for Code Exchange).

Vedi come funziona l'esempio per un'illustrazione.

Prerequisiti

Registrare e scaricare l'app di avvio rapido

Sono disponibili due opzioni per avviare l'applicazione di avvio rapido:

Opzione 1: Registrare e configurare automaticamente l'app e quindi scaricare l'esempio di codice

  1. Vai al centro di amministrazione di Microsoft Entra -esperienza di avvio rapido di Registrazioni per le app.
  2. Inserisci un nome per l'applicazione e seleziona Registra.
  3. Seguire le istruzioni per scaricare e configurare automaticamente la nuova applicazione con un solo clic.

Opzione 2: Registrare e configurare manualmente l'applicazione e l'esempio di codice

Passaggio 1: Registrare l'applicazione

Per registrare l'applicazione e aggiungere manualmente le informazioni di registrazione dell'app alla soluzione, seguire questa procedura:

  1. Accedi al centro di amministrazione di Microsoft Entra.
  2. Se si ha accesso a più tenant, usare l'icona impostazioni nel menu in alto per passare al tenant in cui si vuole registrare l'applicazione dal menu Directory e sottoscrizioni.
  3. Passare a Identity>Applications>App registrations, selezionare Nuova registrazione.
  4. Immettere un Nome per l'applicazione, ad esempio Win-App-calling-MsGraph. Gli utenti dell'app potrebbero visualizzare questo nome ed è possibile modificarlo in un secondo momento.
  5. Nella sezione Tipi di account supportati selezionare account in qualsiasi directory organizzativa e account Microsoft personali (ad esempio Skype, Xbox Outlook.com).
  6. Selezionare Registra per creare l'applicazione.
  7. In Gestisci, selezionare Autenticazione.
  8. Selezionare Aggiungi una piattaforma>Applicazioni per dispositivi mobili e desktop.
  9. Nella sezione URI di reindirizzamento, selezionare https://login.microsoftonline.com/common/oauth2/nativeclient e in URI di reindirizzamento personalizzati aggiungere ms-appx-web://microsoft.aad.brokerplugin/{client_id} dove {client_id} è l'ID dell'applicazione (client) della tua applicazione (lo stesso GUID visualizzato nella casella di controllo msal{client_id}://auth).
  10. Selezionare Configura.

Passaggio 2: Scaricare il progetto

Scaricare l'applicazione di esempio WPF

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: Configurare il progetto

  1. Estrarre il file ZIP in una cartella locale vicina alla radice del disco, ad esempio C:\Azure-Samples.

  2. Aprire il progetto in Visual Studio.

  3. Modificare App.Xaml.cs e sostituire i valori dei campi ClientId e Tenant con il codice seguente:

    private static string ClientId = "Enter_the_Application_Id_here";
    private static string Tenant = "Enter_the_Tenant_Info_Here";
    

Dove:

  • Enter_the_Application_Id_here: è l'ID applicazione (client) per l'applicazione registrata.

    Per trovare il valore di ID applicazione (client), vai alla pagina Panoramica dell'app nel centro di amministrazione di Microsoft Entra.

  • Enter_the_Tenant_Info_Here : è impostato su una delle opzioni seguenti:

    • Se l'applicazione supporta account in questa directory organizzativa, sostituire questo valore con l'ID tenant o nome del tenant (ad esempio, contoso.microsoft.com)

    • Se l'applicazione supporta gli account in qualsiasi directory organizzativa, sostituisci questo valore con organizations

    • Se l'applicazione supporta account in qualsiasi directory organizzativa e account Microsoft personali, sostituire questo valore con common.

      Per trovare i valori dell'ID Directory (tenant) e dei tipi di account supportati , vai alla pagina Panoramica dell'app nel centro di amministrazione di Microsoft Entra.

Passaggio 4: Eseguire l'applicazione

Per compilare ed eseguire l'applicazione di esempio in Visual Studio, selezionare il menu debug >Avvia debugoppure premere F5. Viene visualizzata la finestra MainWindow dell'applicazione.

Quando viene visualizzata la finestra principale dell'app, selezionare il pulsante Chiama API Microsoft Graph. Verrà richiesto di accedere usando l'account Microsoft Entra (account aziendale o dell'istituto di istruzione) o l'account Microsoft (live.com, outlook.com).

Se si esegue l'applicazione per la prima volta, verrà richiesto di fornire il consenso per consentire all'applicazione di accedere al profilo utente e accedere. Dopo aver fornito il consenso alle autorizzazioni richieste, l'applicazione visualizza che l'accesso è stato eseguito correttamente. Verranno visualizzate alcune informazioni di base sul token e i dati utente ottenuti dalla chiamata all'API Microsoft Graph.

Altre informazioni

Funzionamento dell'esempio

Diagramma che mostra come funziona l'app di esempio generata da questo avvio rapido.

MSAL.NET

MSAL (Microsoft.Identity.Client) è la libreria usata per accedere agli utenti e richiedere token usati per accedere a un'API protetta da Microsoft Identity Platform. È possibile installare MSAL eseguendo il comando seguente nella console di Gestione pacchetti di Visual Studio :

Install-Package Microsoft.Identity.Client -IncludePrerelease

Inizializzazione di MSAL

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

using Microsoft.Identity.Client;

Inizializzare quindi 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 L'ID applicazione (client) per l'applicazione registrata nel centro di amministrazione di Microsoft Entra. È possibile trovare questo valore nella pagina panoramica dell'app nel centro di amministrazione di Microsoft Entra.

Richiesta di token

MSAL include due metodi per l'acquisizione di 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 potrebbero dover immettere nuovamente le credenziali perché la password è scaduta
  • Quando l'applicazione richiede l'accesso a una risorsa a cui l'utente deve fornire il consenso
  • Quando è necessaria l'autenticazione a due fattori
authResult = await app.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 silenzioso

Non si vuole richiedere all'utente di convalidare le proprie credenziali ogni volta che è necessario accedere a una risorsa. Nella maggior parte dei casi si desiderano acquisizioni e rinnovo dei token senza alcuna interazione dell'utente. È possibile usare il metodo AcquireTokenSilent per ottenere token per accedere alle risorse protette dopo il metodo AcquireTokenInteractive iniziale:

var accounts = await app.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.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).

Guida e supporto tecnico

Per assistenza, per segnalare un problema o per informazioni sulle opzioni di supporto, vedere Guida e supporto per gli sviluppatori.

Passaggi successivi

Prova l'esercitazione sul desktop di Windows per una guida dettagliata completa sulla creazione di applicazioni e nuove funzionalità, inclusa una spiegazione dettagliata di questa introduzione rapida.