Crear un conector personalizado para una API web

Este tutorial le muestra cómo comenzar a construir una API web ASP.NET, hospedarla en la característica Azure Web Apps de Azure App Service habilitar la autenticación de Microsoft Entra ID y luego registrar la API web ASP.NET en Power Automate. Una vez registrada la API, puede conectarse a ella y llamarla desde el flujo. También puede registrar la API y llamarla desde Power Apps o Azure Logic Apps.

Requisitos previos

Crear y desplegar una aplicación web ASP.NET en Azure

Para este tutorial, cree una aplicación web ASP.NET en Visual C#.

  1. Abra Visual Studio y luego seleccione Archivo > Nuevo proyecto.

    1. Expanda Instalado, vaya a Plantillas > Visual C# > Web y luego seleccione Aplicación web ASP.NET.

    2. Introduzca un nombre de proyecto, ubicación y nombre de solución para su aplicación y luego seleccione Aceptar.

    Captura de pantalla que muestra una nueva aplicación web Visual C# ASP.NET.

  2. En el cuadro Nueva aplicación web ASP.NET, seleccione la plantilla API web, asegúrese de que la casilla Alojar en la nube está seleccionada y, a continuación, seleccione Cambiar autenticación.

    Captura de pantalla que muestra el cuadro de diálogo Nueva aplicación web ASP.NET.

  3. Seleccione Sin autenticación y, a continuación, seleccione Aceptar. Puede configurar la autenticación más tarde.

    Seleccione Sin autenticación.

  4. Cuando reaparezca el cuadro Nueva aplicación web ASP.NET, seleccione Aceptar.

  5. En el cuadro Crear servicio de aplicaciones, revise la configuración de alojamiento que se describe en la tabla siguiente, realice los cambios que desee y seleccione Crear.

    Un plan de App Service representa una colección de recursos físicos utilizados para alojar aplicaciones en su suscripción de Azure. Aprenda sobre App Service.

    Crear una instancia de App Service.

    Ajuste Valor sugerido Descripción
    Su cuenta profesional o educativa de Azure o su cuenta personal de Microsoft your-user-account Seleccione su cuenta de usuario.
    Nombre de la aplicación web custom-web-api-app-name o el nombre predeterminado Ingrese el nombre de la aplicación API web, que se utiliza en la URL de la aplicación, por ejemplo: http://web-api-app-name.
    Suscripción Azure-subscription-name Seleccione la suscripción de Azure que quiera usar.
    Grupo de recursos Azure-resource-group-name Seleccione un grupo de recursos de Azure existente o, si aún no lo ha hecho, cree un grupo de recursos.

    Nota: Un grupo de recursos de Azure organiza los recursos de Azure en una suscripción de Azure.

    Plan de App Service App-Service-plan-name Seleccione un plan de App Service existente o, si aún no lo ha hecho, cree un plan.

    Si crea un plan de App Service, especifique lo siguiente.

    Ajuste Valor sugerido Descripción
    Location deployment-region Seleccione la región para implementar su aplicación.
    Size App-Service-plan-size Seleccione el tamaño de su plan, que determina el costo y la capacidad de recursos informáticos para su plan de servicio.

    Para configurar cualquier otro recurso requerido por su aplicación, seleccione Explore servicios adicionales de Azure.

    Ajuste Valor sugerido Descripción
    Tipo de recurso Azure-resource-type Seleccione y configure cualquier recurso adicional requerido por su aplicación.
  6. Después de que Visual Studio implementa el proyecto, crea el código para la aplicación.

Crear un archivo de OpenAPI (Swagger) que describe su API web

Para conectar la aplicación de API Web a Power Automate, Power Apps o Logic Apps, necesita un archivo de OpenAPI (anteriormente Swagger) que describa las operaciones de la API. Puede escribir su propia definición de OpenAPI para su API con el Editor en línea Swagger, pero este tutorial usa una herramienta de código abierto llamada Swashbuckle.

  1. Si aún no lo ha hecho, instale el paquete NuGet Swashbuckle en su proyecto de Visual Studio:

    1. En Visual Studio, seleccione Herramientas > Administrador de paquetes NuGet > Consola de administrador de paquetes.

    2. En la Consola del administrador de paquetes, vaya al directorio de proyectos de su aplicación si aún no está allí (ejecute Set-Location "project-path") y ejecute este cmdlet de PowerShell:

      Install-Package Swashbuckle

      Captura de pantalla que muestra Swashbuckle instalado mediante Package Manager Console.

    Sugerencia

    Si ejecuta su aplicación después de instalar Swashbuckle, Swashbuckle genera un archivo de OpenAPI en esta URL:

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

    Swashbuckle también genera una interfaz de usuario en esta URL:

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

  2. Cuando esté listo, publique la aplicación API web en Azure. Para publicar desde Visual Studio, haga clic con el botón derecho en su proyecto web en el Explorador de soluciones, seleccione Publicar... y siga las indicaciones.

    Importante

    Si un documento OpenAPI contiene id de operación duplicados, no será válido. La plantilla de ejemplo de C# repite el ID de la operación, Values_Get.

    Si usó la plantilla de ejemplo de C#, puede solucionar este problema cambiando una instancia de ID de operación a Value_Get y volviendo a publicarlo.

  3. Consiga el documento de OpenAPI navegando a esta ubicación:

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

    También puede descargar un documento de OpenAPI de ejemplo desde este tutorial. Asegúrese de eliminar los comentarios, que comienzan con //, antes de utilizar el documento.

  4. Guarde el contenido como archivo JSON. Según el explorador, es posible que tenga que copiar y pegar el texto en un archivo de texto vacío.

Configurar la autenticación de Microsoft Entra ID

Ahora creará dos aplicaciones Microsoft Entra ID en Azure. Para obtener más información, vaya a Integrar aplicaciones con Microsoft Entra ID.

Importante

Ambas deben estar en el mismo directorio.

Primera aplicación de Microsoft Entra ID: protección de la API web

La primera aplicación de Microsoft Entra ID se usa para proteger la API Web. Asígnele el nombre webAPI. Puede habilitar la autenticación Microsoft Entra ID en su API web siguiendo estos pasos con los siguientes valores:

  • Dirección URL de inicio de sesión: https://login.windows.net
  • Dirección URL de respuesta: https://<your-root-url>/.auth/login/aad/callback
  • No necesita una clave de cliente.
  • No es necesario delegar los permisos.
  • Copie el id. de aplicación; lo necesitará más adelante.

Segunda aplicación de Microsoft Entra ID: protección del conector personalizado y acceso delegado

La segunda aplicación de Microsoft Entra ID se usa para proteger el registro de conectores personalizados y adquirir acceso delegado a la API Web protegida por la primera aplicación. Asígnele el nombre de webAPI-customAPI.

  • Dirección URL de inicio de sesión: https://login.windows.net
  • Dirección URL de respuesta: https://msmanaged-na.consent.azure-apim.net/redirect
  • Agregue permisos para tener acceso delegado a la API Web.
  • Copie el id. de aplicación; lo necesitará más adelante.
  • Genere una clave de cliente y cópiela, porque la necesita más tarde.

Incorporación de autenticación a Azure Web App

  1. Inicie sesión en Azure Portal y, a continuación, busque la aplicación web que implementó en la primera sección.

  2. Seleccione Configuración y, a continuación, seleccione Autenticación/autorización.

  3. Active Autenticación de App Service y luego seleccione Azure Active Directory. En la siguiente hoja, seleccione Express.

  4. Seleccione Seleccionar aplicación de AD existente y seleccione la aplicación webAPI de la aplicación Microsoft Entra ID que creó anteriormente.

Ahora debería poder usar Microsoft Entra ID para autenticar la aplicación web.

Agregar el conector personalizado a Power Automate

  1. Modifique su OpenAPI para agregar el objeto securityDefintions y la autenticación de Microsoft Entra ID usada para la aplicación web. La sección del archivo OpenAPI con la propiedad anfitrión debería tener este aspecto:
// 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. Vaya a Power Automate y agregue un conector personalizado como se describe en Uso de conectores personalizados en Power Automate.

  2. Tras cargar su OpenAPI, el asistente detecta automáticamente que está usando la autenticación de Microsoft Entra ID para la Web API.

  3. Configure la autenticación de Microsoft Entra ID para el conector personalizado.

  • Id. de cliente: el identificador de cliente de webAPI-CustomAPI
  • Secreto: la clave de cliente de webAPI-CustomAPI
  • Dirección URL de inicio de sesión: https://login.windows.net
  • ResourceUri: identificador de cliente de webAPI
  1. Seleccione Crear para crear una conexión con el conector personalizado.

Consulte también

Más información sobre la autenticación de Microsoft Entra ID

Proporcionar comentarios

Agradecemos enormemente los comentarios sobre problemas con nuestra plataforma de conectores o nuevas ideas de características. Para enviar comentarios, vaya a Enviar problemas u obtener ayuda con los conectores y seleccione el tipo de comentario.