Condividi tramite


Guida introduttiva: Concedere l'accesso agli utenti e chiamare Microsoft Graph in un'app della piattaforma UWP (Universal Windows Platform) | Azure

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

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:

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

  1. Vai all'interfaccia di amministrazione di AMicrosoft Entra - Esperienza iniziale rapida Registrazione app.
  2. Immettere un nome per l'applicazione e selezionare Registra.
  3. 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:

  1. Accedere all'interfaccia 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 aRegistrazioni app> e selezionare Nuova registrazione.
  4. 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.
  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 e quindi registrare l'ID applicazione (client) da usare in un passaggio successivo.
  7. In Gestisci selezionare Autenticazione.
  8. Selezionare Aggiungi una piattaforma>Per dispositivi mobili e applicazioni desktop.
  9. In URI di reindirizzamento selezionare https://login.microsoftonline.com/common/oauth2/nativeclient.
  10. 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

  1. Estrarre l'archivio ZIP in una cartella locale vicina alla radice dell'unità. Ad esempio, in C:\Azure-Samples.

  2. Aprire il progetto in Visual Studio. Installare il pacchetto di sviluppo Universal Windows Platform (UWP) e, se richiesto, tutti i componenti singoli SDK.

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

  4. Creare e quindi selezionare un nuovo certificato di test autofirmato per il pacchetto:

    1. In Esplora soluzioni fare doppio clic sul file Package.appxmanifest .
    2. Selezionare Packaging>Scegli certificato...>Crea....
    3. Immettere una password e quindi selezionare OK. Viene creato un certificato denominato Native_UWP_V2_TemporaryKey.pfx .
    4. 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.
    5. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto Native_UWP_V2 e scegliere Proprietà.
    6. 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:

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

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

Diagramma che illustra il funzionamento dell'app di esempio generata da questa guida introduttiva.

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.