Condividi tramite


Guida introduttiva: Chiamare un'API Web protetta da Microsoft Identity Platform

si applica a: cerchio verde con un segno di spunta bianco. inquilini della forza lavoro cerchio verde con un segno di spunta bianco. inquilini esterni (scopri di più)

In questa guida introduttiva si usa un'app Web di esempio per illustrare come proteggere un'API Web ASP.NET usando Microsoft Identity Platform. L'esempio usa Microsoft Authentication Library (MSAL) per gestire l'autenticazione e l'autorizzazione.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. Creare un account gratuito.
  • Registrare una nuova app nell'interfaccia di amministrazione di Microsoft Entra e registrarne gli identificatori dalla pagina Panoramica dell'app. Per delle altre informazioni, vedere la sezione Registrazione di un'applicazione.
    • Nome: NewWebAPI1
    • Tipi di account supportati: Account esclusivamente in questa directory organizzativa (singolo tenant)

Rendere disponibile l'API

Dopo aver registrato l'API, è possibile configurarne l'autorizzazione definendo gli ambiti esposti dall'API alle applicazioni client. Le applicazioni client richiedono l'autorizzazione per eseguire operazioni passando un token di accesso insieme alle relative richieste all'API Web protetta. L'API Web esegue quindi l'operazione richiesta solo se il token di accesso ricevuto contiene gli ambiti necessari.

  1. In Gestisci selezionare Esporre un'API>Aggiungi un ambito. Accettare l'URI dell'ID applicazione proposto (api://{clientId}) selezionando Salva e continua, quindi immettere le informazioni seguenti:

    1. Per Nome ambito, inserire access_as_user.
    2. Per Utenti che possono fornire il consenso assicurarsi che sia selezionata l'opzione Amministratori e utenti.
    3. Nella casella Nome visualizzato per il consenso dell'amministratore immettere Access TodoListService as a user.
    4. Nella casella di Descrizione del consenso amministratore immettere Accesses the TodoListService web API as a user.
    5. Nella casella Nome visualizzato del consenso utente immettere Access TodoListService as a user.
    6. Nella casella di Descrizione del consenso utente immettere Accesses the TodoListService web API as a user.
    7. Per Stato lasciare Abilitato.
  2. Seleziona Aggiungi ambito.

Clonare o scaricare l'applicazione di esempio

Per ottenere l'applicazione di esempio, è possibile clonarla da GitHub o scaricarla come file .zip.

git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git

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

Configurare l'applicazione di esempio

Configurare l'esempio di codice in modo che corrisponda all'API Web registrata.

  1. Aprire la soluzione in Visual Studio e quindi aprire il file appsettings.json nella radice del progetto TodoListService.

  2. Sostituire il valore del Enter_the_Application_Id_here con il valore ID client (ID applicazione) dell'applicazione registrata nel portale di Registrazioni app sia nella proprietà ClientID sia in quella Audience.

Aggiungere il nuovo ambito al file app.config

Per aggiungere il nuovo ambito al file di app.config TodoListClient, seguire questa procedura:

  1. Nella cartella radice del progetto TodoListClient aprire il file app.config.

  2. Incollare l'ID dell'applicazione registrata per il progetto TodoListService nel parametro TodoListServiceScope, sostituendo la stringa {Enter the Application ID of your TodoListService from the app registration portal}.

Annotazioni

Assicurarsi che l'ID applicazione usi il formato seguente: api://{TodoListService-Application-ID}/access_as_user (dove {TodoListService-Application-ID} è il GUID che rappresenta l'ID applicazione per l'app TodoListService).

Registrare l'app Web (TodoListClient)

Registrare l'app TodoListClient nelle registrazioni dell'app nell'interfaccia di amministrazione di Microsoft Entra e quindi configurare il codice nel progetto TodoListClient. Se il client e il server sono considerati la stessa applicazione, è possibile riutilizzare l'applicazione registrata nel passaggio 2. Usare la stessa applicazione per consentire agli utenti di accedere con un account Microsoft personale.

Registrare l'app

Per registrare l'app TodoListClient, seguire questa procedura:

  1. Accedi al Microsoft Entra admin center come almeno un amministratore di applicazioni cloud.

  2. Passare aRegistrazioni appEntra ID> e selezionare Nuova registrazione.

  3. Seleziona Nuova registrazione.

  4. Nella pagina Registra un'applicazione visualizzata immettere le informazioni di registrazione dell'applicazione:

    1. Nella sezione Nome immettere un nome significativo che verrà visualizzato agli utenti dell'app, ad esempio NativeClient-DotNet-TodoListClient.
    2. Per Tipi di account supportati selezionare Account in qualsiasi directory dell'organizzazione.
    3. Selezionare Registra per creare l'applicazione.

    Annotazioni

    Nel file app.config del progetto TodoListClient il valore predefinito di ida:Tenant è impostato su common. I valori possibili sono:

    • common: è possibile accedere usando un account aziendale o dell'istituto di istruzione o un account Microsoft personale (perché è stato selezionato Account in qualsiasi directory organizzativa in un passaggio precedente).
    • organizations: è possibile accedere usando un account aziendale o dell'istituto di istruzione.
    • consumers: è possibile accedere solo usando un account Microsoft personale.
  5. Nella pagina Panoramica dell'app selezionare Autenticazione e quindi completare questi passaggi per aggiungere una piattaforma:

    1. In Configurazioni della piattaforma selezionare il pulsante Aggiungi una piattaforma.
    2. Per Applicazioni per dispositivi mobili e desktop selezionare Applicazioni per dispositivi mobili e desktop.
    3. Per URI di reindirizzamento, selezionare la casella di controllo https://login.microsoftonline.com/common/oauth2/nativeclient.
    4. Seleziona Configura.
  6. Selezionare autorizzazioni API e quindi completare questi passaggi per aggiungere autorizzazioni:

    1. Selezionare il pulsante Aggiungi un'autorizzazione.
    2. Selezionare la scheda Le mie API.
    3. Nell'elenco delle API selezionare AppModelv2-NativeClient-DotNet-TodoListService API o il nome immesso per l'API Web.
    4. Selezionare la casella di controllo dell'autorizzazione access_as_user se non è già selezionata. Se necessario, usare la casella di ricerca.
    5. Selezionare il pulsante Aggiungi autorizzazioni.

Configurare il progetto

Configurare il progetto TodoListClient aggiungendo l'ID applicazione al file app.config.

  1. Nel portale Registrazioni app, nella pagina Panoramica, copiare il valore dell'Identificativo dell'applicazione (client).

  2. Nella cartella radice del progetto TodoListClient aprire il file app.config e quindi incollare il valore di ID applicazione nel parametro ida:ClientId.

Eseguire l'applicazione di esempio

Avviare entrambi i progetti. Per gli utenti di Visual Studio;

  1. Fare clic con il pulsante destro del mouse sulla soluzione Visual Studio e selezionare Proprietà

  2. In Proprietà comuni selezionare Progetto di avvio e quindi Più progetti di avvio.

  3. Per entrambi i progetti scegliere Avvia come azione

  4. Assicurarsi che il servizio TodoListService venga avviato per primo spostandolo alla prima posizione nell'elenco, usando la freccia su.

Accedere per eseguire il progetto TodoListClient.

  1. Premere F5 per avviare i progetti. Viene visualizzata la pagina del servizio, nonché l'applicazione desktop.

  2. In TodoListClient, in alto a destra selezionare Accedi e quindi accedere con le stesse credenziali usate per registrare l'applicazione oppure come utente della stessa directory.

    Se si accede per la prima volta, potrebbe essere richiesto di fornire il consenso all'API Web TodoListService.

    Per facilitare l'accesso all'API Web TodoListService e manipolare l'elenco To-Do, viene anche richiesto un token di accesso per l'ambito access_as_user.

Pre-autorizza l'applicazione client

È possibile consentire agli utenti di altre directory di accedere all'API Web preautorizzando l'applicazione client per accedere all'API Web. A tale scopo, aggiungere l'ID applicazione dall'app client all'elenco di applicazioni pre-autorizzate per l'API Web. Aggiungendo un client pre-autorizzato, si consente agli utenti di accedere all'API Web senza dover fornire il consenso.

  1. Nel portale Registrazioni app aprire le proprietà dell'app TodoListService.
  2. Nella sezione Esporre un'API selezionare Aggiungi applicazione client in Applicazioni client autorizzate.
  3. Nella casella ID client incollare l'ID applicazione dell'app TodoListClient.
  4. Nella sezione Ambiti autorizzati selezionare l'ambito per l'API Web api://<Application ID>/access_as_user.
  5. Seleziona Aggiungi applicazione.

Esegui il tuo progetto

  1. Premere F5 per eseguire il progetto. L'app TodoListClient si apre.
  2. In alto a destra selezionare Accedi e quindi accedere usando un account Microsoft personale, come account live.com o hotmail.com, oppure un account aziendale o dell'istituto di istruzione.

Facoltativo: limitare l'accesso a determinati utenti

Per impostazione predefinita, qualsiasi account personale, come outlook.com o live.com, oppure qualsiasi account aziendale o dell'istituto di istruzione di un'organizzazione che abbia eseguito l'integrazione con Microsoft Entra ID può richiedere i token e accedere all'API Web.

Per specificare chi può accedere all'applicazione, modificando la proprietà TenantId nel file appsettings.json.

Passaggi successivi

Informazioni su come proteggere un'API Web di ASP.NET Core con Microsoft Identity Platform.