Guida introduttiva: App console .NET che accede a un'API Web protetta
Questa guida introduttiva usa un'applicazione console .NET di esempio per accedere a un'API Web protetta come propria identità usando Microsoft Authentication Library (MSAL) per .NET. L'applicazione è un'applicazione daemon, che è un'applicazione client riservata e usa il flusso OAuth delle credenziali client per ottenere un token di accesso per chiamare l'API Microsoft Graph.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Se non si ha un account, Crearne uno gratuito.
- Requisito minimo di .NET 6.0 SDK
- Visual Studio 2022 o Visual Studio Code
Registrare l'applicazione e gli identificatori del record
Per completare la registrazione indicare il nome dell'applicazione e specificare i tipi di account supportati. Dopo la registrazione, nel riquadro Panoramica dell'applicazione vengono visualizzati gli identificatori necessari nel codice sorgente dell'applicazione.
Accedi 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 a Identità>Applicazioni>Registrazioni app e selezionare Nuova registrazione.
Immettere un Name per l'applicazione, ad esempio identity-client-daemon-app.
Per Tipi di account supportati selezionare Account solo in questa directory dell'organizzazione. Per informazioni sui diversi tipi di account selezionare l'opzione Suggerimenti per la scelta.
Selezionare Registra.
Al termine della registrazione viene visualizzato il riquadro Panoramica dell'applicazione. Registrare l'ID directory (tenant), l'ID applicazione (client) e l’ID oggetto da usare nel codice sorgente dell'applicazione.
Nota
I Tipi di account supportati possono essere modificati facendo riferimento a Modificare gli account supportati da un'applicazione.
Creare un segreto client
- Nell'interfaccia di amministrazione di Microsoft Entra passare a Identità>Applicazioni>Registrazioni app.
- Selezionare l'applicazione registrata in precedenza.
- Nel riquadro Panoramica dell'applicazione selezionare Certificati e segreti>Nuovo segreto client.
- Immettere una descrizione per il segreto nel campo Descrizione.
- Selezionare un periodo di scadenza per il segreto.
- Selezionare Aggiungi.
- Registrare il Valore del segreto client. Il valore viene visualizzato una sola volta, quindi assicurarsi di registrarlo.
Clonare o scaricare l'applicazione di esempio
Per ottenere l'applicazione di esempio, è possibile clonarla da GitHub o scaricarla come file .zip.
Per clonare l'esempio, aprire un prompt dei comandi, passare alla posizione in cui si vuole creare il progetto e immettere il comando seguente:
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
Scaricare il file .zip. Estrarlo in un percorso di file in cui la lunghezza del nome è inferiore a 260 caratteri.
Configurare il progetto
Nell'IDE aprire la cartella del progetto ms-identity-docs-code-dotnet/console-daemon, contenente l'esempio.
Aprire Program.cs e sostituire il contenuto del file con il frammento di codice seguente;
// Full directory URL, in the form of https://login.microsoftonline.com/<tenant_id> Authority = " https://login.microsoftonline.com/Enter_the_tenant_ID_obtained_from_the_Microsoft_Entra_admin_center", // 'Enter the client ID obtained from the Microsoft Entra admin center ClientId = "Enter the client ID obtained from the Microsoft Entra admin center", // Client secret 'Value' (not its ID) from 'Client secrets' in the Microsoft Entra admin center ClientSecret = "Enter the client secret value obtained from the Microsoft Entra admin center", // Client 'Object ID' of app registration in Microsoft Entra admin center - this value is a GUID ClientObjectId = "Enter the client Object ID obtained from the Microsoft Entra admin center"
Authority
- L'autorità è un URL che indica una directory da cui MSAL può richiedere token. Sostituire Enter_the_tenant_ID con il valore ID directory (tenant) registrato in precedenza.ClientId
- L’identificatore dell'applicazione, detto anche client. Sostituire il testo tra virgolette con il valoreApplication (client) ID
registrato in precedenza dalla pagina di panoramica dell'applicazione registrata.ClientSecret
- Il segreto client creato per l'applicazione nell'interfaccia di amministrazione di Microsoft Entra. Immettere il valore del segreto client.ClientObjectId
- ID dell’oggetto dell'applicazione client. Sostituire il testo tra virgolette con il valoreObject ID
registrato in precedenza dalla pagina di panoramica dell'applicazione registrata.
Eseguire l'applicazione
In un terminale passare alla directory del progetto ms-identity-docs-code-dotnet/console-daemon.
Eseguire il comando seguente per compilare ed eseguire l'applicazione:
dotnet run
L'applicazione viene eseguita e visualizza una risposta simile alla seguente (abbreviata per brevità):
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications/$entity", "id": "00001111-aaaa-2222-bbbb-3333cccc4444", "deletedDateTime": null, "appId": "00001111-aaaa-2222-bbbb-3333cccc4444", "applicationTemplateId": null, "disabledByMicrosoftStatus": null, "createdDateTime": "2021-01-17T15:30:55Z", "displayName": "identity-dotnet-console-app", "description": null, "groupMembershipClaims": null, ... }
Contenuto correlato
- Per informazioni, creare questa app Web ASP.NET con la serie Esercitazione: Registrare un'applicazione con Microsoft Identity Platform.
- Guida introduttiva: Proteggere un'API Web ASP.NET Core con Microsoft Identity Platform.
- Guida introduttiva: Implementare un'app Web ASP.NET su Servizio app di Azure