Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida di avvio rapido si scarica e si esegue un esempio di codice di un'applicazione della piattaforma UWP (Universal Windows Platform) che consente agli utenti di accedere e ottenere un token di accesso per chiamare l'API Microsoft Graph.
Vedi Come funziona l'esempio per un'illustrazione.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare gratuitamente un account.
- Visual Studio
Nota
MSAL.NET versioni 4.61.0 e successive non forniscono supporto per la piattaforma UWP (Universal Windows Platform), Xamarin Android e Xamarin iOS. Consigliamo di eseguire la migrazione delle applicazioni UWP a framework moderni come WINUI. Leggi di più sulla deprecazione in Annunciare la prossima deprecazione di MSAL.NET per Xamarin e UWP.
Registra e scarica l'app di rapida introduzione
Per avviare la tua applicazione rapida, hai due opzioni:
- [Express] Opzione 1: Registrare e configurare automaticamente l'app e quindi scaricare l'esempio di codice
- [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 all'interfaccia di amministrazione di AMicrosoft Entra - Esperienza iniziale rapida Registrazione app.
- Immettere un nome per l'applicazione e selezionare Registra.
- Seguire le istruzioni per scaricare e configurare automaticamente la nuova applicazione.
Opzione 2: Registrare e configurare manualmente l'applicazione e il codice di esempio
Passaggio 1: Registrare l'applicazione
Per registrare l'applicazione e aggiungere le informazioni di registrazione dell'app alla soluzione, seguire questa procedura:
- Accedere all'interfaccia 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 aRegistrazioni app> e selezionare Nuova registrazione.
- Immettere un nome per l'applicazione, ad esempio
UWP-App-calling-MsGraph
. Tale nome, che potrebbe essere visualizzato dagli utenti dell'app, può essere modificato 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 e quindi registrare l'ID applicazione (client) da usare in un passaggio successivo.
- In Gestisci selezionare Autenticazione.
- Selezionare Aggiungi una piattaforma>Per dispositivi mobili e applicazioni desktop.
- In URI di reindirizzamento selezionare
https://login.microsoftonline.com/common/oauth2/nativeclient
. - Seleziona Configura
Passaggio 2: Scaricare il progetto
Scaricare l'applicazione di esempio UWP
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 l'archivio ZIP in una cartella locale vicina alla radice dell'unità. Ad esempio, in C:\Azure-Samples.
Aprire il progetto in Visual Studio. Installare il pacchetto di sviluppo Universal Windows Platform (UWP) e, se richiesto, tutti i componenti singoli SDK.
In MainPage.Xaml.cs modificare il valore della
ClientId
variabile impostando l'ID applicazione (client) dell'applicazione registrata in precedenza.private const string ClientId = "Enter_the_Application_Id_here";
È possibile trovare l'ID applicazione (client) nel riquadro Panoramica dell'app nell'interfaccia di amministrazione di Microsoft Entra (Registrazioni> dell'app Entra ID>{Registrazione dell'app}).
Creare e quindi selezionare un nuovo certificato di test autofirmato per il pacchetto:
- In Esplora soluzioni fare doppio clic sul file Package.appxmanifest .
- Selezionare Packaging>Scegli certificato...>Crea....
- Immettere una password e quindi selezionare OK. Viene creato un certificato denominato Native_UWP_V2_TemporaryKey.pfx .
- Selezionare OK per chiudere la finestra di dialogo Scegliere un certificato e quindi verificare che venga visualizzato Native_UWP_V2_TemporaryKey.pfx in Esplora soluzioni.
- In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto Native_UWP_V2 e scegliere Proprietà.
- Selezionare Firma e quindi selezionare il file pfx creato nell'elenco a discesa Scegliere un file di chiave con nome sicuro .
Passaggio 4: Eseguire l'applicazione
Per eseguire l'applicazione di esempio nel computer locale:
Nella barra degli strumenti di Visual Studio scegliere la piattaforma corretta (probabilmente x64 o x86, non ARM). Il dispositivo di destinazione deve passare da Dispositivo a Computer locale.
Selezionare Avvia debug>senza eseguire debug.
Se viene richiesto di farlo, potrebbe essere prima necessario abilitare la modalità sviluppatore e quindi avviare di nuovo l'app senza eseguire debug .
Quando viene visualizzata la finestra dell'app, è possibile selezionare il pulsante Chiama l'API Microsoft Graph , immettere le credenziali e fornire il consenso alle autorizzazioni richieste dall'applicazione. Se la procedura riesce, l'applicazione visualizza alcune informazioni sul token e i dati ottenuti dalla chiamata all'API Microsoft Graph.
Funzionamento dell'esempio
MSAL.NET
MSAL (Microsoft.Identity.Client) è la libreria usata per accedere agli utenti e richiedere token di sicurezza. I token di sicurezza vengono 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
Inizializzazione di MSAL
È possibile aggiungere il riferimento per la libreria MSAL aggiungendo il codice seguente:
using Microsoft.Identity.Client;
La libreria MSAL viene quindi inizializzata con il codice seguente:
public static IPublicClientApplication PublicClientApp;
PublicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.Build();
Il valore di ClientId
è l'ID applicazione (client) dell'app registrata nell'interfaccia di amministrazione di Microsoft Entra. È possibile trovare questo valore nella pagina Panoramica dell'app nell'interfaccia di amministrazione di Microsoft Entra.
Richiesta di token
In MSAL sono disponibili due metodi per acquisire i token in un'app UWP: AcquireTokenInteractive
e AcquireTokenSilent
.
Ottenere un token utente in modo interattivo
In alcune situazioni è necessario forzare gli utenti a interagire con Microsoft Identity Platform tramite una finestra popup per convalidare le relative credenziali o per concedere 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 PublicClientApp.AcquireTokenInteractive(scopes)
.ExecuteAsync();
Il parametro 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
Usare il metodo AcquireTokenSilent
per ottenere i token per accedere alle risorse protette dopo il metodo AcquireTokenInteractive
iniziale. 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
var accounts = await PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
-
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 account utente nella cache (MSAL supporta più utenti in una singola app).
Assistenza e supporto
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 del desktop di Windows per una guida dettagliata e completa sulla creazione di applicazioni e nuove funzionalità, inclusa una spiegazione completa di questo quickstart.