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.

Per un'illustrazione, vedere Funzionamento dell'esempio.

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. Altre informazioni sulla deprecazione in Annuncio della prossima deprecazione di MSAL.NET per Xamarin e UWP.

Registrare e scaricare l'app della guida introduttiva

Per avviare l'applicazione della guida introduttiva sono disponibili due opzioni:

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

  1. Passare all'esperienza di avvio rapido Interfaccia di amministrazione AMicrosoft Entra - Registrazioni app.
  2. Immettere un nome per l'applicazione e fare clic su 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

Suggerimento

I passaggi descritti in questo articolo possono variare leggermente in base al portale da cui si inizia.

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

  1. Accedi 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 a Identità>Applicazioni>Registrazioni app e selezionare Nuova registrazione.
  4. In Nome 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 il valore di ID applicazione (client), che verrà usato in un passaggio successivo.
  7. In Gestisci selezionare Autenticazione.
  8. Selezionare Aggiungi una piattaforma>Applicazioni per dispositivi mobili e 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 carico di lavoro Sviluppo di app per la piattaforma UWP (Universal Windows Platform) ed eventuali singoli componenti dell'SDK, se richiesto.

  3. Nel file MainPage.Xaml.cs impostare il valore della variabile ClientId sul valore di ID applicazione (client) registrato 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 (Identità>Applicazioni>Registrazioni app>{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 Creazione pacchetto>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 eliminare la finestra di dialogo Scegliere un certificato e quindi verificare di visualizzare 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, quindi nel menu a discesa File di chiave con nome sicuro selezionare il file con estensione pfx creato.

Passaggio 4: Eseguire l'applicazione

Per eseguire l'applicazione di esempio nel computer locale:

  1. Sulla barra degli strumenti di Visual Studio scegliere la piattaforma corretta (probabilmente x64 oppure x86, non ARM). Il dispositivo di destinazione dovrebbe cambiare da Dispositivo a Computer locale.

  2. Selezionare Debug>Avvia senza eseguire debug.

    Se viene richiesto, può essere necessario abilitare prima Modalità sviluppatore e quindi scegliere di nuovo Avvia senza eseguire debug per avviare l'app.

Quando viene visualizzata la finestra dell'app, è possibile selezionare il pulsante per chiamare l'API Microsoft Graph,immettere le credenziali e concedere il consenso per 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 mostra il funzionamento dell'app di esempio generata da questa guida introduttiva.

MSAL.NET

MSAL (Microsoft.Identity.Client) è la libreria usata per concedere l'accesso 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 questo comando in Console di Gestione pacchetti in Visual Studio:

Install-Package Microsoft.Identity.Client

Inizializzazione della libreria 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 automatico

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

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.