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}
.
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
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.