Condividi tramite


Creare un connettore personalizzato per un'API Web

Questa esercitazione illustra come iniziare a creare una ASP.NET Web API, ospitarla nella funzionalità di Azure Web Apps di Azure App Service, abilitare l'autenticazione Microsoft Entra ID e quindi registrare il ASP.NET Web API in Power Automate. Dopo aver registrato l'API, puoi connetterti a essa e chiamarla dal flusso. È inoltre possibile:

Prerequisiti

Creare e effettuare il deployment di un'app Web ASP.NET in Azure

Per questo tutorial, crea un'app web Visual C# ASP.NET.

  1. Aprire Visual Studio e quindi selezionare File>Nuovo progetto.

    1. Espandere Installato, passare a Templates>Visual C#>Web e quindi selezionare ASP.NET Applicazione Web.

    2. Immetti il nome del progetto, la posizione e il nome della soluzione per la tua app, quindi seleziona OK.

    Screenshot che mostra una nuova applicazione Web di Visual C# ASP.NET.

  2. Nella casella Nuova applicazione Web ASP.NET, Selezionare il modello ApiWeb, assicurarsi che la casella di controllo Host nel cloud sia selezionata e quindi selezionare Change Authentication.

    Screenshot che mostra la finestra di dialogo Nuova applicazione Web ASP.NET.

  3. Seleziona Nessuna autenticazione, quindi seleziona OK. Puoi impostare l'autenticazione in un secondo momento.

    Seleziona Nessuna autenticazione.

  4. Quando viene visualizzata nuovamente la casella Nuova applicazione Web ASP.NET, selezionare OK.

  5. Nella casella Crea servizio app, rivedi le impostazioni di hosting descritte nella tabella seguente, apporta le modifiche desiderate e seleziona Crea.

    Un piano di servizio App rappresenta una raccolta di risorse fisiche usate per l'hosting di app nella sottoscrizione Azure. Informazioni sul servizio app.

    Crea un servizio app.

    Impostazione Valore suggerito Descrzione
    Il Azure account aziendale o dell'istituto di istruzione o l'account Microsoft personale your-user-account Seleziona il tuo account utente.
    Nome Applicazione Web custom-web-api-app-name o il nome predefinito Immetti il nome per l'app API Web che viene utilizzato nell'URL dell'app, ad esempio: http://web-api-app-name.
    Abbonamento Nome-dell'abbonamento-Azure Selezionare la sottoscrizione Azure da usare.
    Gruppo di risorse Azure-resource-group-name Selezionare un gruppo di risorse Azure esistente oppure, se non è già stato fatto, creare un gruppo di risorse.

    Note: un gruppo di risorse Azure organizza le risorse Azure nella sottoscrizione Azure.

    Piano di servizio app App-Service-plan-name Seleziona un piano di servizio app esistente o, se non lo hai già fatto, crea un piano.

    Se crei un piano di servizio app, specifica quanto segue.

    Impostazione Valore suggerito Descrzione
    Ubicazione deployment-region Seleziona la regione per distribuire la tua app.
    Dimensione App-Service-plan-size Seleziona la dimensione del tuo piano, che determina il costo e la capacità delle risorse di calcolo per il tuo piano di servizio.

    Per configurare qualsiasi altra risorsa richiesta dall'app, selezionare Explore altri servizi di Azure.

    Impostazione Valore suggerito Descrzione
    Tipo di risorsa Azure-resource-type Seleziona e configura eventuali risorse aggiuntive richieste dalla tua app.
  6. Dopo che Visual Studio distribuisce il progetto, costruire il codice della tua app.

Creare un file OpenAPI (Swagger) che descrive l'API Web

Per connettere l'app per le API Web a Power Automate, Power Apps o App per la logica, è necessario un file OpenAPI (in precedenza Swagger che descrive le operazioni dell'API. Puoi scrivere la definizione OpenAPI per la tua API con l'editor online Swagger, ma questo tutorial utilizza uno strumento open source denominato Swashbuckle.

  1. Se non è già stato fatto, installare il pacchetto Nuget Swashbuckle nel progetto Visual Studio:

    1. In Visual Studio selezionare Tools>NuGet Package Manager>Package Manager Console.

    2. Nella Package Manager Console, passa alla directory del progetto della tua app se non ci sei già (esegui Set-Location "project-path") ed esegui questo cmdlet di PowerShell:

      Install-Package Swashbuckle

      Screenshot che mostra Swashbuckle installato usando Package Manager Console.

    Suggerimento

    Se esegui la tua app dopo aver installato Swashbuckle, Swashbuckle genera un file OpenAPI a questo URL:

      http://{your-web-api-app-root-URL}/swagger/docs/v1

    Swashbuckle genera anche un'interfaccia utente a questo URL:

      http://{your-web-api-app-root-URL}/swagger

  2. Quando si è pronti, pubblicare l'app per le API Web in Azure. Per pubblicare da Visual Studio, fare clic con il pulsante destro del mouse sul progetto Web in Solution Explorer, selezionare Publish e seguire le istruzioni.

    Importante

    Se un documento OpenAPI contiene ID operazione duplicata, non sarà valido. Il modello C# di esempio ripete l'ID operazione, Values_Get.

    Se hai usato il modello C# di esempio, puoi risolvere questo problema modificando un'istanza dell'ID operazione in Value_Get e ripubblicandolo.

  3. Recupera il documento OpenAPI navigando in questa posizione:

    http://{your-web-api-app-root-URL}/swagger/docs/v1

    È anche possibile scaricare un documento OpenAPI di esempio da questa esercitazione. Assicurati di rimuovere i commenti, che iniziano con //, prima di utilizzare il documento.

  4. Salva il contenuto come file JSON. A seconda del browser, potrebbe essere necessario copiare e incollare il testo in un file di testo vuoto.

Configurare l'autenticazione Microsoft Entra ID

Ora si creano due applicazioni Microsoft Entra ID in Azure. Per altre informazioni, vedere Integrating applications with Microsoft Entra ID (Integrazione delle applicazioni con Microsoft Entra ID

Importante

Entrambe le app devono essere nella stessa directory.

Prima applicazione Microsoft Entra ID: Protezione dell'API Web

La prima applicazione Microsoft Entra ID viene usata per proteggere l'API Web. Nominalo webAPI. È possibile abilitare l'autenticazione Microsoft Entra ID nell'API Web seguendo passaggi con i valori seguenti:

  • URL di accesso: https://login.windows.net
  • URL di risposta: https://<your-root-url>/.auth/login/aad/callback
  • Non hai bisogno di una chiave client.
  • Non hai bisogno di delegare alcuna autorizzazione.
  • Copia l'ID applicazione perché ne avrai bisogno in seguito.

Seconda applicazione Microsoft Entra ID: Protezione del connettore personalizzato e dell'accesso delegato

La seconda applicazione Microsoft Entra ID viene usata per proteggere la registrazione del connettore personalizzato e acquisire l'accesso delegato all'API Web protetta dalla prima applicazione. Dai a questo il nome webAPI-customAPI.

  • URL di accesso: https://login.windows.net
  • URL di risposta: https://msmanaged-na.consent.azure-apim.net/redirect
  • Aggiungi le autorizzazioni per disporre dell'accesso delegato all'API Web.
  • Copia l'ID applicazione perché ne avrai bisogno in seguito.
  • Genera una chiave client e copiala perché ne avrai bisogno in seguito.

Aggiungere l'autenticazione all'app Web Azure

  1. Accedere al portale Azure e quindi individuare l'app Web distribuita nella prima sezione.

  2. Seleziona Impostazioni, quindi Autenticazione/Autorizzazione.

  3. Attivare App Service Authentication e quindi selezionare Azure Active Directory. Sulla lama successiva, seleziona Express.

  4. Selezionare Selezionare l'app AD esistente e quindi selezionare l'applicazione webAPI Microsoft Entra ID creata in precedenza.

A questo momento dovrebbe essere possibile usare Microsoft Entra ID per autenticare l'app Web.

Aggiungere il connettore personalizzato a Power Automate

  1. Modificare OpenAPI per aggiungere l'oggetto securityDefintions e l'autenticazione Microsoft Entra ID usata per l'app Web. La sezione del file OpenAPI contenente la proprietà host dovrebbe avere questo aspetto:
// File header should be above here...

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

// The rest of the OpenAPI follows...
  1. Passare a Power Automate e aggiungere un connettore personalizzato come descritto in Usare connettori personalizzati in Power Automate.

  2. Dopo aver caricato OpenAPI, la procedura guidata rileva automaticamente che si sta usando l'autenticazione Microsoft Entra ID per l'API Web.

  3. Configurare l'autenticazione Microsoft Entra ID per il connettore personalizzato.

  • ID client: ID client di webAPI-CustomAPI
  • Segreto Client: Chiave Client di webAPI-CustomAPI
  • URL di accesso: https://login.windows.net
  • ResourceUri: ID client di webAPI
  1. Seleziona Crea per creare una connessione con il connettore personalizzato.

Importante

Se il connettore usa OAuth, è importante monitorare e rinnovare regolarmente l'ID client e le credenziali dei segreti client in scadenza in modo che i clienti possano continuare a usare il connettore. Assicurarsi di inviare l'aggiornamento del connettore un mese prima della data di scadenza dell'ID client e del segreto client.

Altre informazioni sull'autenticazione Microsoft Entra ID

Fornire commenti

L'invio da parte degli utenti di feedback sui problemi riscontrati con la piattaforma di connettori o di idee su nuove funzionalità è molto apprezzato. Per fornire un feedback, vai a Inviare problemi o ottenere assistenza per i connettori e seleziona il tipo di commenti.