Share via


Aprovisionamiento de entrada controlado por API con Azure Logic Apps

En este tutorial se describe cómo usar el flujo de trabajo de Azure Logic Apps para implementar el aprovisionamiento de entrada controlado por API de Microsoft Entra ID. Siguiendo los pasos de este tutorial, puede convertir un archivo CSV que contenga datos de RRHH en una carga útil de solicitud masiva y enviarla al punto final de la API /bulkUpload de aprovisionamiento de Microsoft Entra. En el artículo también se proporcionan instrucciones sobre cómo se puede usar el mismo patrón de integración con cualquier sistema de registro.

Escenario de integración

Requisitos empresariales

El sistema de registro genera exportaciones periódicas de archivos CSV que contienen datos de trabajo. Quiere implementar una integración que lea datos del archivo CSV y aprovisione automáticamente cuentas de usuario en el directorio de destino (Active Directory local para usuarios híbridos y Microsoft Entra ID para usuarios solo en la nube).

Requisito de implementación

Desde una perspectiva de implementación:

  • Quiere usar un flujo de trabajo de Azure Logic Apps para leer datos de las exportaciones de archivos CSV disponibles en un recurso compartido de archivos de Azure y enviarlos al punto de conexión de la API de aprovisionamiento de entrada.
  • En el flujo de trabajo de Azure Logic Apps, no quiere implementar la lógica compleja de comparar los datos de identidad entre el sistema de registro y el directorio de destino.
  • Desea utilizar el servicio de aprovisionamiento de Microsoft Entra para aplicar sus reglas de aprovisionamiento gestionadas por TI para crear/actualizar/habilitar/deshabilitar automáticamente cuentas en el directorio de destino (Active Directory local o Microsoft Entra ID).

Graphic of Azure Logic Apps-based integration.

Variaciones del escenario de integración

Aunque en este tutorial se usa un archivo CSV como sistema de registro, puede personalizar el flujo de trabajo de Azure Logic Apps de ejemplo para leer datos de cualquier sistema de registro. Azure Logic Apps proporciona una amplia gama de conectores integrados y conectores administrados con desencadenadores y acciones pregenerados que puede usar en el flujo de trabajo de integración.

Esta es una lista de variaciones de escenarios de integración empresarial, donde el aprovisionamiento entrante controlado por API se puede implementar con un flujo de trabajo de Logic Apps.

# Sistema de registro Guía de integración sobre el uso de Logic Apps para leer datos de origen
1 Archivos almacenados en un servidor SFTP Use el conector SFTP integrado o el conector SSH de SFTP administrado para leer datos de los archivos almacenados en el servidor SFTP.
2 Tabla de base de datos Si usa un servidor de Azure SQL o un SQL Server local, use el conector SQL Server para leer los datos de la tabla.
Si usa una base de datos de Oracle, use el conector de base de datos de Oracle para leer los datos de la tabla.
3 SAP S/4 HANA local y hospedado en la nube o
Sistemas SAP clásicos locales, como R/3 y ECC
Use el conector de SAP para recuperar datos de identidad del sistema SAP. Para obtener ejemplos sobre cómo configurar este conector, consulte escenarios comunes de integración de SAP mediante Azure Logic Apps y el conector de SAP.
4 IBM MQ Use el conector IBM MQ para recibir mensajes de aprovisionamiento de la cola.
5 Dynamics 365 Human Resources Use el conector de Dataverse para leer datos de tablas de Dataverse usadas por Dynamics 365 Human Resources.
6 Cualquier sistema que exponga las API de REST Si no encuentra un conector para el sistema de registro en la biblioteca de conectores de Logic Apps, puede crear su propio conector personalizado para leer datos del sistema de registro.

Después de leer los datos de origen, aplique las reglas de preprocesamiento y convierta la salida del sistema de registro en una solicitud masiva que se pueda enviar al punto de conexión de API bulkUpload de aprovisionamiento de Microsoft Entra.

Importante

Si quiere compartir el flujo de trabajo de integración de aprovisionamiento de entrada controlado por API y Logic Apps con la comunidad, cree una plantilla de aplicación lógica, siga los pasos para usarla y envíe una solicitud de incorporación de cambios para su inclusión en el repositorio de GitHubentra-id-inbound-provisioning.

Cómo usar este tutorial

La plantilla de implementación de Logic Apps publicada en el repositorio GitHub de aprovisionamiento entrante de Microsoft Entra automatiza varias tareas. También tiene lógica para controlar archivos CSV grandes y fragmentar la solicitud masiva para enviar 50 registros en cada solicitud. Aquí se muestra cómo puede probarla y personalizarla según sus requisitos de integración.

Nota

El flujo de trabajo de Azure Logic Apps de ejemplo se proporciona "tal cual" como referencia de implementación. Si tiene preguntas relacionadas con él o si quiere mejorarlo, use el repositorio de proyectos de GitHub.

# Tarea de automatización Guía de implementación Personalización avanzada
1 Lee los datos de trabajo del archivo CSV. El flujo de trabajo de Logic Apps usa una función de Azure para leer el archivo CSV almacenado en un recurso compartido de archivos de Azure. La función de Azure convierte los datos CSV en formato JSON. Si el formato de archivo CSV es diferente, actualice el paso de flujo de trabajo "Analizar JSON" y "Construir SCIMUser". Si el sistema de registros es diferente, consulte las instrucciones proporcionadas en la sección Variaciones del escenario de integración sobre cómo personalizar el flujo de trabajo de Logic Apps mediante un conector adecuado.
2 Preprocesar y convertir datos a formato SCIM. De forma predeterminada, el flujo de trabajo de Logic Apps convierte cada registro del archivo CSV en una representación de usuario de SCIM Core + Usuario de empresa. Si tiene previsto usar extensiones del esquema SCIM personalizadas, actualice el paso "Construir SCIMUser" para incluir las extensiones del esquema SCIM personalizadas. Si quiere ejecutar código C# para la aplicación de formato avanzada de formato y la validación de datos, use Azure Functions personalizados.
3 Usar el método de autenticación adecuado Puede usar una entidad de servicio o usar una identidad administrada para acceder a la API de aprovisionamiento de entrada. Actualice el paso "Enviar SCIMBulkPayload al punto de conexión de la API" con el método de autenticación correcto. -
4 Aprovisione cuentas en Active Directory local o en Microsoft Entra ID. Configure la aplicación de aprovisionamiento de entrada controlada por API. Esto generará un único punto de conexión de API /bulkUpload. Actualice el paso "Enviar SCIMBulkPayload al punto de conexión de la API" para usar el punto de conexión de la API bulkUpload correcto. Si tiene previsto usar una solicitud masiva con el esquema SCIM personalizado, amplíe el esquema de la aplicación de aprovisionamiento para incluir los atributos del esquema SCIM personalizados.
5 Examine los registros de aprovisionamiento y vuelva a intentar el aprovisionamiento de registros con errores. Esta automatización aún no se ha implementado en el flujo de trabajo de Logic Apps de ejemplo. Para implementarlo, consulte la Graph API de los registros de aprovisionamiento. -
6 Implemente la automatización basada en Logic Apps en producción. Una vez que haya comprobado el flujo de aprovisionamiento controlado por la API y haya personalizado el flujo de trabajo de Logic Apps para satisfacer sus requisitos, implemente la automatización en su entorno. -

Paso 1: Creación de una cuenta de Azure Storage para hospedar el archivo CSV

Los pasos documentados en esta sección son opcionales. Si ya tiene una cuenta de almacenamiento existente o desea leer el archivo CSV desde otro origen, como el sitio de SharePoint o Blob Storage, actualice la aplicación lógica para usar el conector que prefiera.

  1. Inicie sesión en el Azure portal como Administrador de aplicaciones.
  2. Busque "Cuentas de almacenamiento" y cree una nueva cuenta de almacenamiento. Screenshot of creating new storage account.
  3. Asigne un grupo de recursos y asígnele un nombre. Screenshot of resource group assignment.
  4. Después de que se cree la cuenta de almacenamiento, vaya al recurso.
  5. Haga clic en la opción de menú "Recurso compartido de archivos" y cree un nuevo recurso compartido de archivos. Screenshot of creating new file share.
  6. Compruebe que la creación del recurso compartido de archivos se ha realizado correctamente. Screenshot of file share created.
  7. Cargue un archivo CSV de ejemplo en el recurso compartido de archivos mediante la opción de carga.
  8. Esta es una captura de pantalla de las columnas del archivo CSV. Screenshot of columns in Excel.

Paso 2: Configuración del convertidor CSV2JSON de la función de Azure

  1. En el navegador asociado a su Azure portal, abra la URL del repositorio GitHub - https://github.com/joelbyford/CSVtoJSONcore.

  2. Haga clic en el vínculo "Implementar en Azure" para implementar esta función de Azure en el inquilino de Azure. Screenshot of deploying Azure Function.

  3. Especifique el grupo de recursos en el que se va a implementar esta función de Azure. Screenshot of configuring Azure Function resource group.

    Si recibe el error "Esta región tiene cuota de 0 instancias", pruebe a seleccionar otra región.

  4. Asegúrese de que la implementación de la función de Azure como App Service sea correcta.

  5. Vaya al grupo de recursos y abra la configuración de la aplicación web. Asegúrese de que está en estado "En ejecución". Copie el nombre de dominio predeterminado asociado a la aplicación web. Screenshot of Azure Function Web App domain name.

  6. Abra el cliente de Postman para probar si el punto de conexión de CSVtoJSON funciona según lo previsto. Pegue el nombre de dominio copiado del paso anterior. Use el tipo de contenido "text/csv" y publique un archivo CSV en el cuerpo en la solicitud del punto de conexión: https://[your-domain-name]/csvtojsonScreenshot of Postman client calling the Azure Function.

  7. Si la implementación de la función de Azure se realiza correctamente, en la respuesta obtendrá una versión JSON del archivo CSV con el estado 200 Correcto.

    Screenshot of Azure Function response.

  8. Para permitir que Logic Apps invoque esta función de Azure, en la configuración de CORS de la aplicación web escriba asterisco (*) y guarde la configuración. Screenshot of Azure Function CORS setting.

Paso 3: Configuración del aprovisionamiento entrante de usuarios controlado por API

Paso 4: Configuración del flujo de trabajo de Azure Logic Apps

  1. Haga clic en el botón siguiente para implementar la plantilla de Azure Resource Manager para el flujo de trabajo CSV2SCIMBulkUpload de Logic Apps.

    Deploy to Azure

  2. En los detalles de la instancia, actualice los elementos resaltados copiando y pegando los valores de los pasos anteriores. Screenshot of Azure Logic Apps instance details.

  3. Para el parámetro Azurefile_access Key, abra la cuenta de almacenamiento de archivos de Azure y copie la clave de acceso que aparece en "Seguridad y redes".
    Screenshot of Azure File access keys.

  4. Haga clic en la opción "Revisar y crear" para iniciar la implementación.

  5. Una vez que haya completado la implementación, verá el mensaje siguiente. Screenshot of Azure Logic Apps deployment complete.

Paso 5: Configuración de una identidad administrada asignada por el sistema

  1. Visite la configuración:> hoja Identidad del flujo de trabajo de Logic Apps.
  2. Habilite Identidad administrada asignada por el sistema. Screenshot of enabling managed identity.
  3. Recibirá un mensaje para confirmar el uso de la identidad administrada. Haga clic en .
  4. Conceda a la identidad administrada permisos para realizar la carga masiva.

Paso 6: Revisión y ajuste de los pasos del flujo de trabajo

  1. Abra la aplicación lógica en la vista de diseñador. Screenshot of Azure Logic Apps designer view.

  2. Revise la configuración de cada paso del flujo de trabajo para asegurarse de que es correcta.

  3. Abra el paso "Obtener contenido de archivo mediante la ruta de acceso" y corríjalo para ir al almacenamiento de archivos de Azure en su inquilino. Screenshot of get file content.

  4. Actualice la conexión si es necesario.

  5. Asegúrese de que el paso "Convertir CSV a JSON" apunta a la instancia correcta de la aplicación web de la función de Azure. Screenshot of Azure Function call invocation to convert from CSV to JSON.

  6. Si el contenido o los encabezados del archivo CSV son diferentes, actualice el paso "Analizar JSON" con la salida de JSON que puede recuperar de la llamada API a la función de Azure. Use la salida de Postman del paso 2. Screenshot of Parse JSON step.

  7. En el paso "Construir SCIMUser", asegúrese de que los campos CSV se asignan correctamente a los atributos SCIM que se usarán para el procesamiento.

    Screenshot of Construct SCIM user step.

  8. En el paso "Enviar SCIMBulkPayload al punto de conexión de API", asegúrese de que usa el punto de conexión de API y el mecanismo de autenticación correctos.

    Screenshot of invoking bulk upload API with managed identity.

Paso 7: Ejecución del desencadenador y prueba del flujo de trabajo de Logic Apps

  1. En la versión "Disponible con carácter general" del diseñador de Logic Apps, haga clic en Ejecutar desencadenador para ejecutar manualmente el flujo de trabajo. Screenshot of running the Logic App.
  2. Una vez completada la ejecución, revise la acción que Logic Apps realizó en cada iteración.
  3. En la iteración final, debería ver que Logic Apps carga datos en el punto de conexión de la API de aprovisionamiento de entrada. Busque el código de estado 202 Accept. Puede copiar y pegar y comprobar la solicitud de carga masiva. Screenshot of the Logic Apps execution result.

Pasos siguientes