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
- Visual Studio con il carico di lavoro di sviluppo della Piattaforma Universale Windows (UWP) installato
Registrare e scaricare l'app di avvio rapido
Sono disponibili due opzioni per avviare l'applicazione di avvio rapido:
- [Express] opzione 1: Registrare e configurare automaticamente l'app e quindi scaricare il codice di esempio
- [Manuale] opzione 2: Registrare e configurare manualmente l'applicazione e l'esempio di codice
Opzione 1: Registrare e configurare automaticamente l'app e quindi scaricare l'esempio di codice
- Vai al centro di amministrazione di Microsoft Entra -esperienza di avvio rapido di Registrazioni per le app.
- Inserisci un nome per l'applicazione e seleziona Registra.
- 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:
- Accedi al centro di amministrazione di Microsoft Entra.
- 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.
- Passare a Identity>Applications>App registrations, selezionare Nuova registrazione.
- 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. - Nella sezione Tipi di account supportati selezionare account in qualsiasi directory organizzativa e account Microsoft personali (ad esempio Skype, Xbox Outlook.com).
- Selezionare Registra per creare l'applicazione.
- In Gestisci, selezionare Autenticazione.
- Selezionare Aggiungi una piattaforma>Applicazioni per dispositivi mobili e desktop.
- Nella sezione URI di reindirizzamento, selezionare
https://login.microsoftonline.com/common/oauth2/nativeclient
e in URI di reindirizzamento personalizzati aggiungerems-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 controllomsal{client_id}://auth
). - 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
Estrarre il file ZIP in una cartella locale vicina alla radice del disco, ad esempio C:\Azure-Samples.
Aprire il progetto in Visual Studio.
Modificare App.Xaml.cs e sostituire i valori dei campi
ClientId
eTenant
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
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.