Creación de un conector para aplicaciones de funciones de Azure protegidas por Microsoft Entra ID
Un principio clave de los conectores de Microsoft Power Apps que usan Microsoft Entra ID para la autenticación es que no proporcionan a los usuarios acceso a ningún dato al que no tengan acceso ya. Esto se debe a que la llamada API al servicio protegido de Microsoft Entra ID–se ejecuta con la identidad de usuario que se utilizó para iniciar sesión en el conector. Por lo tanto, el servicio de destino es el responsable de aplicar lo que se permite al usuario autenticado.
En este tutorial se muestra cómo usar Azure Functions para compilar una API REST, habilitar la autenticación de Microsoft Entra ID y, a continuación, ponerla a disposición de Power Apps como un conector personalizado.
Crear aplicaciones de función de Azure usando Visual Studio Code
Con Azure Functions, tiene muchas opciones que hay que tener en cuenta, entre las que se incluyen las opciones de hospedaje, elección del lenguaje y las opciones de creación como el uso de Azure Portal, Visual Studio Code o Visual Studio. En este tutorial, se utilizará C# y Visual Studio Code. Para completar este tutorial, primero debe completar el tutorial Inicio rápido: crear una función C# en Azure con Visual Studio Code. Anote el nombre que proporcionó para la aplicación de funciones en el paso Crear la aplicación de función en Azure.
Importante
No complete la sección Limpieza de recursos en el Inicio rápido. Deberá conservar todos los recursos para crear a partir de lo que ya tiene hecho.
Protección de llamadas a aplicaciones de función de Azure mediante Microsoft Entra ID
Busque su aplicación de funciones en Azure Portal. Seleccione el nombre de la aplicación de funciones en la lista.
Seleccione la pestaña Características de plataforma.
En el grupo Redes, seleccione el vínculo Autenticación/autorización.
En la hoja Autorización de autenticación, active Autenticación del servicio de aplicaciones.
En la lista desplegable Acción a realizar cuando no se autentique la solicitud, cambie el valor a Iniciar sesión con Azure Active Directory. Esta opción garantiza que no se permitirán las solicitudes anónimas a la API.
A continuación, en la lista de proveedores de autenticación, seleccione Azure Active Directory.
En la hoja Configuración de Azure Active Directory, establezca la opción Modo de administración en Rápido. Establezca la segunda opción de Modo de administración en Crear nueva aplicación de AD.
Importante
Antes de continuar, copie el valor del campo Crear aplicación y péguelo en algún lugar para más adelante. Este valor representa el nombre de la aplicación de Microsoft Entra ID que se usará para proteger la API. Usará este valor más adelante cuando configure el conector personalizado.
Seleccione Aceptar para confirmar su selección.
De nuevo en la hoja Autenticación/autorización, seleccione Guardar para actualizar la configuración de la aplicación de funciones.
Después de guardar, seleccione Azure Active Directory en la sección Proveedores de autenticación.
Seleccione la Aplicación de Azure AD y luego copie el valor del Id. de cliente y péguelo en algún lugar para utilizarlo más adelante.
Para confirmar que la API está protegida correctamente, abra una nueva ventana del explorador en modo privado y vaya hasta la API. La dirección URL de la aplicación de funciones se puede encontrar en la sección Información general de la hoja Aplicación de funciones. Si la configuración de autenticación se ha aplicado correctamente, debe redirigirse a la página de inicio de sesión de Microsoft Entra ID.
Creación de un conector personalizado para la aplicación de funciones de Azure
Para crear un conector personalizado que use autenticación de Microsoft Entra ID, debe crear un registro de aplicación de Microsoft Entra ID para proteger el conector personalizado y adquirir acceso delegado a la función de aplicación de Azure protegida por el registro de aplicación de Microsoft Entra ID que creó en la sección Protección de llamadas a aplicaciones de función de Azure mediante Microsoft Entra ID.
Creación de un registro de aplicación para el conector personalizado en Microsoft Entra ID
En primer lugar, cree una aplicación de Microsoft Entra ID para el conector personalizado. Esto es necesario para conceder al conector personalizado permiso para llamar a la aplicación de funciones de Azure.
Vaya a la página Registros de aplicaciones en Azure Portal.
En la lista de aplicaciones registradas, seleccione Nuevo registro.
Escriba un nombre para la aplicación, seleccione los tipos de cuenta y la configuración de plataforma admitidos (opcional) y, a continuación, seleccione Registrar.
Nota
Para obtener más información sobre las opciones de registro de la aplicación, vaya a Inicio rápido: registrar una aplicación con la plataforma de identidad de Microsoft.
Después de seleccionar el botón Registrar, aparecerán los permisos de API para el registro de la aplicación.
Seleccione Agregar permiso.
Seleccione la pestaña API usadas en mi organización, después, busque el nombre de la aplicación en el paso 7 de la sección Protección de llamadas a funciones de aplicación de Azure mediante Microsoft Entra ID. Cuando lo encuentre, seleccione el nombre de la aplicación.
Importante
El nombre de la aplicación será diferente del que aparece en la captura de pantalla.
Seleccione la casilla user_impersonation y seleccione Agregar permisos.
Nota
Para más información sobre los permisos, vaya a Permisos y consentimiento en el punto de conexión de la Plataforma de identidad de Microsoft.
Seleccione Certificados y secretos y seleccione Nuevo secretos de cliente.
Escriba una descripción para el secreto, seleccione un período de expiración y seleccione Agregar.
Se muestra el nuevo secreto. Copie y pegue el valor en alguna parte. Lo necesitará más adelante.
Seleccione Información general y, después, copie y pegue el valor del Id. de aplicación (cliente) en algún lugar. Lo necesitará más adelante.
Mantenga esta página abierta para que pueda volver a ella. Hay un paso más en Azure Portal, pero primero debe crear un conector personalizado.
Creación de un conector personalizado
Ahora que está configurada la aplicación de Microsoft Entra ID, cree el conector personalizado. Para crear un conector personalizado debe describir la API a la que desea conectarse, de forma que el conector conozca las operaciones y las estructuras de datos de la API. Al crear funciones de aplicación de Azure para conectores personalizados, a menudo creará el conector de forma iterativa repitiendo los pasos siguientes:
- Creación, prueba y depuración de la aplicación de función de Azure localmente con Visual Studio Code.
- Implementación de la aplicación de funciones en Azure.
- Actualización de la configuración del conector personalizado para que se reflejen los cambios de la aplicación de funciones.
Postman es una herramienta popular para probar las API web. A menudo se usa para probar aplicaciones de funciones de Azure. En este artículo, creará un conector personalizado a partir de una colección de Postman. Se le proporcionará la colección de Postman.
Nota
Vaya al tema Creación de una colección de Postman para un conector personalizado para aprender a crear la suya propia. El uso de Postman para crear un conector personalizado es solo una opción. Vaya al tema Descripción de la API y definición del conector personalizado para conocer otras opciones.
En una nueva pestaña del navegador, inicie sesión en Power Apps o Power Automate.
Copie el código siguiente. Con el editor de texto que prefiera, cree un nuevo archivo y pegue el código como contenido del archivo. Guarde el archivo. Puede asignarle el nombre que prefiera, pero recuérdelo (por ejemplo, tutorial-custom-connector.json). Tendrá que utilizar este archivo en los pasos siguientes.
{ "id": "c4b5deba-f97b-47d0-82a5-a2b32561fb01", "name": "Custom Connector", "description": null, "auth": null, "events": null, "variables": [], "order": [ "374365a1-ede5-4ead-8068-d878085dad26" ], "folders_order": [], "protocolProfileBehavior": {}, "folders": [], "requests": [ { "id": "374365a1-ede5-4ead-8068-d878085dad26", "name": "Hello", "url": "http://localhost:7071/api/Hello", "description": "", "data": [], "dataOptions": { "raw": { "language": "json" } }, "dataMode": "raw", "headerData": [ { "key": "Content-Type", "name": "Content-Type", "value": "application/json", "description": "", "type": "text" } ], "method": "POST", "pathVariableData": [], "queryParams": [], "auth": null, "events": null, "folder": null, "responses": [ { "id": "46baba58-7b85-4a2e-8c7d-303080e08ba9", "name": "Hello", "status": null, "mime": null, "language": "plain", "text": "Hello, Marc. This HTTP triggered function executed successfully.", "responseCode": { "code": 200, "name": "OK" }, "requestObject": { "data": [], "dataMode": "raw", "dataOptions": { "raw": { "language": "json" } }, "headerData": [ { "key": "Content-Type", "name": "Content-Type", "value": "application/json", "description": "", "type": "text" } ], "method": "POST", "pathVariableData": [], "queryParams": [], "url": "http://localhost:7071/api/Hello", "rawModeData": "{\n\t\"name\": \"Marc\"\n}" }, "headers": [ { "key": "Date", "value": "Wed, 04 Mar 2020 22:32:06 GMT" }, { "key": "Content-Type", "value": "text/plain; charset=utf-8" }, { "key": "Server", "value": "Kestrel" }, { "key": "Transfer-Encoding", "value": "chunked" } ], "cookies": null, "request": "374365a1-ede5-4ead-8068-d878085dad26", "collection": "c4b5deba-f97b-47d0-82a5-a2b32561fb01" } ], "rawModeData": "{\n\t\"name\": \"Marc\"\n}", "headers": "Content-Type: application/json\n", "pathVariables": {} } ] }
Expanda Datos en el panel izquierdo y luego seleccione Conectores personalizados.
En la esquina superior derecha, seleccione Nuevo conector personalizado y, a continuación, seleccione Importar una colección de Postman.
Escriba un nombre para el conector, seleccione el botón Importar, busque el archivo que creó en el paso 2 y, a continuación, seleccione Continuar.
Se abrirá la página General. Cambie el esquema a HTTPS, reemplace el valor de Host por el dominio de la aplicación de funciones y, finalmente, avance en el asistente hasta la página Seguridad.
En la página Seguridad, especifique la información de Microsoft Entra ID de la aplicación:
En Id. de cliente, escriba el valor del Id. de aplicación (cliente) que copió en el paso 11 de Creación de un registro de aplicación para el conector personalizado en Microsoft Entra ID.
En Secreto de cliente, escriba el valor del secreto que copió en el paso 11 de Creación de un registro de aplicación para el conector personalizado en Microsoft Entra ID.
Como URL de recursos, escriba la dirección URL de la aplicación de funciones. Tendrá el formato
https://[function-app-name].azurewebsites.net
.
Después de especificar la información de seguridad, seleccione el botón Actualizar conector para crear el conector personalizado.
En la página Seguridad, el campo Redireccionar URL ahora contiene información. Copie esta URL para poder usarla en la siguiente sección de este tutorial.
Nota
Puede que tenga que desplazarse hacia abajo para ver la URL de redireccionamiento.
En otra pestaña del navegador, regrese al registro de la aplicación que creó en la sección Creación de un registro de aplicación para el conector personalizado en Microsoft Entra ID. Compruebe que está en la sección Información general y, después, seleccione Agregar un URI de redirección.
Seleccione Agregar una plataforma.
En el panel Configurar plataformas, seleccione Web.
En el panel Configurar Web pegue el valor de URL de redireccionamiento del paso 7 y, a continuación, seleccione Configurar.
Vuelva a la pestaña del explorador que contiene la configuración del conector personalizado. Debe estar en la página Seguridad del asistente.
Para avanzar a la página Definición del asistente, seleccione la palabra Definición y revise.
Nota
La definición procede de la colección de Postman que importó. Si cambió el código en el tutorial Inicio rápido: crear una función de C# en Azure con Visual Studio Code, el archivo de importación podría no coincidir con la forma de su API. Tendrá que crear una nueva colección de Postman o ajustar manualmente la acción en el conector personalizado. Para crear una nueva colección de Postman, use los vínculos compartidos anteriormente en este tutorial que puede encontrar aquí. Para ajustar manualmente la acción, puede revisar la sección Creación de la definición del conector del tutorial Creación de un conector personalizado desde cero.
Prueba del conector
Ahora que ha creado el conector, puede probarlo para asegurarse de que funciona correctamente. Actualmente, las pruebas solo están disponibles en Power Automate y Power Apps.
Para pasar a la página Prueba del asistente, seleccione la palabra Prueba.
En la página Prueba, seleccione Nueva conexión.
Seleccione Crear y luego inicie sesión con su usuario de Microsoft Entra ID.
Vuelva a la página Prueba y realice una de las siguientes acciones:
En Power Automate, regresará a la página Prueba. Seleccione el icono de actualización para asegurarse de que se actualiza la información de la conexión.
En Power Apps, accede a la lista de conexiones disponibles en el entorno actual. En el panel izquierdo, seleccione Conectores personalizados. Busque su conector personalizado y luego seleccione el icono de edición.
Vuela a la página Prueba, escriba un valor en el campo nombre y, a continuación, seleccione Operación de prueba.
Revise la solicitud y la respuesta.
Pasos siguientes
Ahora que ha creado un conector personalizado y ha definido su comportamiento, puede usar el conector.
- Uso de un conector personalizado desde un flujo
- Usar un conector personalizado a partir de una aplicación
- Uso de un conector personalizado de una aplicación lógica
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.