En este tutorial se muestra cómo crear una instancia de ASP.NET Web API, hospedarla en Azure Web Apps, habilitar la autenticación de Azure Active Directory y registrar la instancia de ASP.NET Web API en PowerApps.

Requisitos previos

Crear una instancia de ASP.NET Web API e implementarla en Azure

  1. En Visual Studio, haga clic en Archivo > Nuevo proyecto para crear una aplicación web ASP.NET de C#.

    Nueva aplicación web

  2. Seleccione la plantilla API web. Deje Host en la nube activada. Haga clic en Cambiar autenticación.

    Plantilla de nuevo proyecto web

  3. Seleccione Sin autenticación y haga clic en Aceptar.

    Sin autenticación

  4. Haga clic en Aceptar en el cuadro de diálogo Nuevo proyecto ASP.NET. Aparece el cuadro de diálogo Configurar aplicación web de Microsoft Azure.

    Configurar aplicación web de Microsoft Azure ]

    Seleccione su cuenta de Azure, escriba un valor en Nombre de la aplicación web (o deje el predeterminado) y seleccione su suscripción de Azure. Seleccione o cree un plan de App Service (una colección de Web Apps dentro de su suscripción). Seleccione o cree un grupo de recursos (una agrupación de recursos de Azure dentro de su suscripción). Seleccione la región donde se debe implementar la aplicación web. Si es necesario para la API web, seleccione o cree un servidor de base de datos de Azure. Por último, haga clic en Aceptar.

  5. Cree su API web.

    Nota:

    Para empezar a trabajar con ASP.NET Web API, puede probar algunos de los tutoriales oficiales.

  6. Para conectar la API web con PowerApps, será necesario un archivo de Swagger que describa sus operaciones. Podría escribir un archivo de Swagger propio con el editor en línea pero, en este tutorial, usará una herramienta de código abierto denominada Swashbuckle. Instale el paquete NuGet de Swashbuckle en el proyecto de Visual Studio; para ello, haga clic en Herramientas > Administrador de paquetes NuGet > Consola del Administrador de paquetes y, en la consola del Administrador de paquetes, escriba el comando Install-Package Swashbuckle.

    Install-Package Swashbuckle

    Sugerencia:

    Cuando ejecute la aplicación de API web después de instalar Swashbuckle, se generará un archivo de Swagger en la dirección URL http://<your root URL>/swagger/docs/v1. También hay disponible una interfaz de usuario generada en http://<your root URL>/swagger.

  7. Cuando la API web esté lista, publíquela en Azure. Para publicarla desde Visual Studio, haga clic con el botón derecho en el proyecto web en el Explorador de soluciones, haga clic en Publicar y siga las indicaciones en el cuadro de diálogo Publicar.

  8. Recupere el código JSON de Swagger en https://<azure-webapp-url>/swagger/docs/v1. 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.

    Importante:

    Un documento de Swagger con identificadores de operación duplicados no es válido. Si usa la plantilla C# de ejemplo, el identificador de operación Values_Get se repite dos veces. Para corregirlo, cambie una instancia a Value_Get y vuelva a publicar.

    También puede descargar un archivo de Swagger de ejemplo de este tutorial. Asegúrese de quitar los comentarios (a partir de //) antes de usarlo.

Configurar la autenticación de Azure Active Directory

Ahora creará algunas aplicaciones de Azure Active Directory (AAD) en Azure. Para ver un ejemplo de cómo hacerlo, consulte el tutorial de Azure Resource Manager. Necesita dos aplicaciones de AAD para este tutorial.

Importante:

Ambas deben estar en el mismo directorio.

Primera aplicación de AAD: protección de la API web

La primera aplicación de AAD se usa para proteger la API web. Asígnele el nombre webAPI. Siga los pasos de tutorial vinculados antes (solo la sección titulada *Habilitar la autenticación en Azure Active Directory) con los siguientes valores:

  • Dirección URL de inicio de sesión: https://login.windows.net
  • URL de respuesta: https://<your-root-url>/.auth/login/aad/callback
  • No se necesita una clave de cliente.
  • No es necesario delegar los permisos.
  • Importante Tome nota del identificador de la aplicación. Lo necesitará más adelante.

Segunda aplicación de AAD: protección de la API personalizada y acceso delegado

La segunda aplicación de AAD se usa para proteger el registro de la API personalizada y para obtener acceso delegado a la API web protegida por la primera aplicación. Asigne a esta el nombre webAPI-customAPI.

  • Dirección URL de inicio de sesión: https://login.windows.net
  • URL de respuesta: https://msmanaged-na.consent.azure-apim.net/redirect
  • Agregue permisos para obtener acceso delegado a la API web.
  • También necesitará el identificador de esta aplicación más adelante, así que anótelo.
  • Genere una clave de cliente y almacénela en un lugar seguro. La necesitará más adelante.

Agregar autenticación a la aplicación web de Azure

  1. Inicie sesión en Azure Portal y busque la aplicación web que ha implementado en la primera sección.
  2. Haga clic en Configuración y seleccione Autenticación/autorización.
  3. Active Autenticación de App Service y seleccione Azure Active Directory. En la siguiente hoja, seleccione Rápido.
  4. Haga clic en Seleccionar aplicación de AD existente y seleccione la aplicación de AAD webAPI que creó antes.

Ahora debería poder usar AAD para autenticar la aplicación web.

Agregar la API personalizada a PowerApps

  1. Modifique el archivo de Swagger para agregar el objeto securityDefintions y la autenticación de AAD usada para la aplicación web. La sección de su archivo de Swagger con la propiedad host debería tener el siguiente aspecto:
// 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 Swagger follows...
  1. Vaya a PowerApps y agregue una API personalizada como se describe en el artículo sobre las API personalizadas.

  2. Una vez que haya cargado el archivo de Swagger, el asistente detecta automáticamente que está usando la autenticación de AAD para la API web.

  3. Configure la autenticación de AAD para la API personalizada.

    • Client ID (Id. de cliente): identificador de cliente de webAPI-CustomAPI
    • Secret (Secreto): clave de cliente de webAPI-CustomAPI
    • Login URL (Dirección URL de inicio de sesión): https://login.windows.net
    • Resource URL (URL de recursos): identificador de cliente de webAPI
  4. Haga clic en Crear para crear una conexión a la API personalizada.

Pasos siguientes

Lleve a cabo el tutorial de Azure Resource Manager con una API personalizada.

Para información más detallada sobre cómo crear una aplicación, consulte Crear una aplicación a partir de datos.

Para información más detallada sobre cómo usar un flujo en una aplicación, consulte Start a flow in an app (Iniciar un flujo en una aplicación).

Para plantear preguntas o hacer comentarios acerca de las API personalizadas, únase a nuestra comunidad.