Questa esercitazione illustra come iniziare a creare un'API Web ASP.NET, ospitarla nelle app Web di Azure, abilitare l'autenticazione di Azure Active Directory e quindi registrare l'API Web ASP.NET in PowerApps. Dopo aver registrato l'API, è possibile connettersi a essa e chiamarla dall'app.

Prerequisiti

Creare un'API Web ASP.NET e distribuirla in Azure

  1. In Visual Studio fare clic su File > Nuovo progetto per creare una nuova app Web ASP.NET in C#.

    Nuova app Web

  2. Selezionare il modello API Web. Lasciare selezionata l'opzione Ospita nel cloud. Fare clic su Modifica autenticazione.

    Modello di nuovo progetto Web

  3. Selezionare Nessuna autenticazione, quindi fare clic su OK.

    Nessuna autenticazione

  4. Fare clic su OK nella finestra di dialogo Nuovo progetto ASP.NET. Viene visualizzata la finestra di dialogo Configura app Web di Microsoft Azure.

    Configura app Web di Microsoft Azure ]

    Selezionare il proprio account Azure, digitare un nome per l'app Web (o lasciare l'impostazione predefinita) e selezionare la sottoscrizione di Azure. Selezionare o creare un piano di servizio app, ovvero una raccolta di app Web nell'ambito della sottoscrizione. Selezionare o creare un gruppo di risorse, ovvero un raggruppamento di risorse di Azure nell'ambito della sottoscrizione. Selezionare l'area in cui deve essere distribuita l'app Web. Se è necessario per l'API Web, selezionare o creare un server di database di Azure. Infine, fare clic su OK.

  5. Creare la propria API Web.

    Nota: se non si ha già codice pronto per un'API Web, provare l'esercitazione Introduzione all'API Web 2 di ASP.NET (C#).

  6. Per connettere l'API Web a PowerApps, è necessario un file OpenAPI che ne descriva le operazioni. È possibile scrivere un framework OpenAPI usando l'editor online, ma per questa esercitazione si userà uno strumento open source denominato Swashbuckle. Installare il pacchetto NuGet Swashbuckle nel progetto di Visual Studio facendo clic su Strumenti > Gestione pacchetti NuGet > Console di Gestione pacchetti, quindi digitare il comando Install-Package Swashbuckle nella console.

    Install-Package Swashbuckle

    Suggerimento: ora, quando si esegue l'applicazione API Web dopo l'installazione di Swashbuckle, viene generato un file OpenAPI all'URL http://<your root URL>/swagger/docs/v1. È anche disponibile un'interfaccia utente generata all'indirizzo http://<your root URL>/swagger.

  7. Quando l'API Web è pronta, pubblicarla in Azure. Per pubblicarla da Visual Studio, fare clic con il pulsante destro del mouse sul progetto Web in Esplora soluzioni, fare clic su Pubblica... , quindi seguire le istruzioni nella finestra di dialogo Pubblica.

  8. Recuperare il file JSON OpenAPI passando a https://<azure-webapp-url>/swagger/docs/v1. Salvare il contenuto come file JSON. A seconda del browser, può essere necessario copiare e incollare il testo in un file di testo vuoto.

    Importante: un documento OpenAPI con ID operazione duplicati non è valido. Se si usa il modello di esempio di C#, l'ID operazione Values_Get viene ripetuto due volte. È possibile correggere il problema modificando un'istanza in Value_Get e ripetendo la pubblicazione. È anche possibile scaricare un file OpenAPI di esempio da questa esercitazione. Verificare di avere rimosso i commenti (a partire da //) prima di usarlo.

Impostare l'autenticazione di Azure Active Directory

Ora verranno create due applicazioni di Azure Active Directory (AAD) in Azure. Per un esempio di come eseguire questa operazione, vedere l'esercitazione di Azure Resource Manager.

Importante Entrambe le app devono essere nella stessa directory.

Prima applicazione di AAD: proteggere l'API Web

La prima applicazione di AAD viene usata per proteggere l'API Web. Assegnare il nome webAPI all'applicazione. Seguire i passaggi dell'esercitazione menzionata in precedenza (solo la sezione "Abilitare l'autenticazione in Azure Active Directory") con i valori seguenti:

  • URL di accesso: https://login.windows.net
  • URL di risposta: https://<your-root-url>/.auth/login/aad/callback
  • Non è necessaria una chiave client.
  • Non è necessario delegare le autorizzazioni.
  • Importante: prendere nota dell'ID applicazione. Sarà necessario in un secondo tempo.

Seconda applicazione di AAD: proteggere il connettore personalizzato e l'accesso delegato

La seconda applicazione di AAD viene usata per proteggere la registrazione di connettori personalizzato e acquisire l'accesso delegato all'API Web protetta dalla prima applicazione. Assegnare all'applicazione il nome webAPI-customAPI.

  • URL di accesso: https://login.windows.net
  • URL di risposta: https://msmanaged-na.consent.azure-apim.net/redirect
  • Aggiungere le autorizzazioni per l'accesso delegato all'API Web.
  • In seguito sarà necessario anche l'ID applicazione di questa applicazione, quindi annotarlo.
  • Generare una chiave client e archiviarla in un posto sicuro. La sarà necessaria in un secondo momento.

Aggiungere l'autenticazione all'app Web di Azure

  1. Accedere al portale di Azure e individuare l'app Web che distribuita nella prima sezione.
  2. Fare clic su Impostazioni, quindi selezionare Autenticazione/Autorizzazione.
  3. Attivare l'autenticazione del servizio app e quindi selezionare Azure Active Directory. Nel pannello successivo selezionare Express.
  4. Fare clic su Seleziona app AD esistente e selezionare l'applicazione webAPI di AAD creata in precedenza.

Sarà ora possibile usare AAD ad per autenticare l'applicazione Web.

Aggiungere il connettore personalizzato a PowerApps

  1. Modificare il file OpenAPI per aggiungere l'oggetto securityDefintions e l'autenticazione di AAD usata per l'app Web. La sezione del file OpenAPI con la proprietà host deve essere simile al seguente:
// File header should be above here...

"host": "<your-root-url>",
"schemes": [
    "https"      //Make sure this is https!
],
"securityDefinitions": {
    "AAD": {
        "type": "oauth2",
        "flow": "implicit",
        "authorizationUrl": "https://login.windows.net/common/oauth2/authorize",
        "scopes": {}
    }
},

// The rest of the OpenAPI document follows...
  1. Passare a PowerApps e aggiungere un connettore personalizzato come descritto in Registrare e usare i connettori personalizzati in PowerApps.

  2. Dopo aver caricato il file OpenAPI, la procedura guidata rileva automaticamente l'uso dell'autenticazione di AAD ad per l'API Web.

  3. Configurare l'autenticazione di AAD per il connettore personalizzato.

    • ID client: ID client di webAPI-CustomAPI
    • Segreto: chiave client di webAPI-CustomAPI
    • URL di accesso: https://login.windows.net
    • ResourceUri: ID client di webAPI
  4. Fare clic su Crea e creare una connessione al connettore personalizzato.

Fasi successive

Esplorare il connettore personalizzato nell'esercitazione su Azure Resource Manager.