Входящий трафик, управляемый API, с помощью Azure Logic Apps
В этом руководстве описывается, как использовать рабочий процесс Azure Logic Apps для реализации api идентификатора Microsoft Entra, управляемого входящего трафика. Выполнив действия, описанные в этом руководстве, можно преобразовать CSV-файл, содержащий данные отдела кадров, в полезные данные массового запроса и отправить его в конечную точку API подготовки /bulkUpload API Microsoft Entra. В этой статье также приводятся рекомендации по использованию одного и того же шаблона интеграции с любой системой записи.
Система записей периодически создает экспорт CSV-файла, содержащего рабочие данные. Вы хотите реализовать интеграцию, которая считывает данные из CSV-файла и автоматически подготавливает учетные записи пользователей в целевом каталоге (локальная служба Active Directory для гибридных пользователей и идентификатора Microsoft Entra для облачных пользователей).
С точки зрения реализации:
- Вы хотите использовать рабочий процесс Azure Logic Apps для чтения данных из CSV-файла, доступного в общей папке Azure, и отправить его в конечную точку API подготовки для входящего трафика.
- В рабочем процессе Azure Logic Apps вы не хотите реализовать сложную логику сравнения данных идентификации между системой записей и целевым каталогом.
- Вы хотите использовать службу подготовки Microsoft Entra для применения правил управляемой ит-подготовки для автоматического создания и обновления или включения и отключения учетных записей в целевом каталоге (локальная служба Active Directory или идентификатора Microsoft Entra).
Хотя в этом руководстве в качестве системы записей используется CSV-файл, можно настроить пример рабочего процесса Azure Logic Apps для чтения данных из любой системы записей. Azure Logic Apps предоставляет широкий спектр встроенных соединителей и управляемых соединителей с предварительно созданными триггерами и действиями, которые можно использовать в рабочем процессе интеграции.
Ниже приведен список вариантов сценариев корпоративной интеграции, в которых входящий трафик api можно реализовать с помощью рабочего процесса Logic Apps.
# | Система записей | Руководство по интеграции с использованием Logic Apps для чтения исходных данных |
---|---|---|
1 | Файлы, хранящиеся на сервере SFTP | Используйте встроенный соединитель SFTP или управляемый соединитель SFTP SSH для чтения данных из файлов, хранящихся на сервере SFTP. |
2 | Таблица базы данных | Если вы используете сервер SQL Azure или локальный СЕРВЕР SQL Server, используйте соединитель SQL Server для чтения данных таблицы. Если вы используете базу данных Oracle, используйте соединитель базы данных Oracle для чтения данных таблицы. |
3 | Локальные и размещенные в облаке SAP S/4 HANA или Классические локальные системы SAP, такие как R/3 и ECC |
Используйте соединитель SAP для получения данных удостоверения из системы SAP. Примеры настройки этого соединителя см. в распространенных сценариях интеграции SAP с помощью Azure Logic Apps и соединителя SAP. |
4 | IBM MQ | Используйте соединитель IBM MQ для получения сообщений о подготовке из очереди. |
5 | Dynamics 365 Human Resources | Используйте соединитель Dataverse для чтения данных из таблиц Dataverse, используемых корпорацией Майкрософт Dynamics 365 персоналом. |
6 | Любая система, которая предоставляет ИНТЕРФЕЙСы REST API | Если вы не найдете соединитель для системы записей в библиотеке соединителей Logic Apps, можно создать собственный настраиваемый соединитель для чтения данных из системы записей. |
После чтения исходных данных примените правила предварительной обработки и преобразуйте выходные данные из системы записей в массовый запрос, который можно отправить в конечную точку API подготовки Microsoft Entra bulkUpload .
Маңызды
Если вы хотите предоставить общий доступ к рабочему процессу подготовки на основе API и интеграции Logic Apps с сообществом, создайте шаблон приложения логики, задокументируйте инструкции по его использованию и отправьте запрос на включение в репозиторий entra-id-inbound-provisioning
GitHub.
Шаблон развертывания Logic Apps, опубликованный в репозитории GitHub для входящего трафика Microsoft Entra, автоматизирует несколько задач. Она также имеет логику обработки больших CSV-файлов и блокирования массового запроса для отправки 50 записей в каждом запросе. Ниже описано, как протестировать его и настроить его в соответствии с требованиями интеграции.
Ескерім
Пример рабочего процесса Azure Logic Apps предоставляется "как есть" для ссылки на реализацию. Если у вас есть вопросы или вы хотите улучшить его, используйте репозиторий проектов GitHub.
# | Задача автоматизации | Методические указания по внедрению | Расширенная настройка |
---|---|---|---|
1 | Чтение рабочих данных из CSV-файла. | Рабочий процесс Logic Apps использует функцию Azure для чтения CSV-файла, хранящегося в общей папке Azure. Функция Azure преобразует данные CSV в формат JSON. Если формат CSV-файла отличается, обновите шаг рабочего процесса "Анализ JSON" и "Конструктор SCIMUser". | Если система записей отличается, ознакомьтесь с рекомендациями, приведенными в разделе "Варианты сценария интеграции" по настройке рабочего процесса Logic Apps с помощью соответствующего соединителя. |
2 | Предварительно обработайте и преобразуйте данные в формат SCIM. | По умолчанию рабочий процесс Logic Apps преобразует каждую запись в CSV-файле в представление scIM Core User + Enterprise User. Если вы планируете использовать пользовательские расширения схемы SCIM, обновите шаг "Конструктор SCIMUser", чтобы включить пользовательские расширения схемы SCIM. | Если вы хотите запустить код C# для расширенного форматирования и проверки данных, используйте настраиваемые Функции Azure. |
3 | Использование правильного метода проверки подлинности | Вы можете использовать субъект-службу или использовать управляемое удостоверение для доступа к API подготовки входящего трафика. Обновите шаг "Отправить SCIMBulkPayload в конечную точку API" с помощью правильного метода проверки подлинности. | - |
4 | Подготовка учетных записей в локальная служба Active Directory или идентификаторе Microsoft Entra. | Настройте приложение подготовки на основе API, управляемое входящего трафика. Это создает уникальную конечную точку API /bulkUpload . Обновите шаг "Отправить SCIMBulkPayload в конечную точку API", чтобы использовать правильную конечную точку API bulkUpload. | Если вы планируете использовать массовый запрос с пользовательской схемой SCIM, расширьте схему приложения подготовки, чтобы включить настраиваемые атрибуты схемы SCIM. |
5 | Проверьте журналы подготовки и повторите подготовку для неудачных записей. | Эта автоматизация еще не реализована в примере рабочего процесса Logic Apps. Чтобы реализовать его, обратитесь к API Graph для подготовки журналов. | - |
6 | Разверните автоматизацию на основе Logic Apps в рабочей среде. | После проверки потока подготовки на основе API и настройки рабочего процесса Logic Apps в соответствии с вашими требованиями разверните автоматизацию в вашей среде. | - |
Действия, описанные в этом разделе, являются необязательными. Если у вас уже есть учетная запись хранения или вы хотите прочитать CSV-файл из другого источника, например сайта SharePoint или хранилища BLOB-объектов, обновите приложение логики, чтобы использовать выбранный соединитель.
- Войдите в портал Azure как минимум администратор приложения.
- Найдите "Учетные записи хранения" и создайте новую учетную запись хранения.
- Назначьте группу ресурсов и присвойте ей имя.
- После создания учетной записи хранения перейдите к ресурсу.
- Выберите пункт меню "Общая папка" и создайте общую папку.
- Убедитесь, что создание общей папки выполнено успешно.
- Отправьте пример CSV-файла в общую папку с помощью параметра отправки.
- Ниже приведен снимок экрана столбцов в CSV-файле.
В браузере, связанном с портал Azure, откройте URL-адрес репозитория GitHub . https://github.com/joelbyford/CSVtoJSONcore
Щелкните ссылку "Развернуть в Azure", чтобы развернуть эту функцию Azure в клиенте Azure.
Укажите группу ресурсов, в которой будет развернута эта функция Azure.
Если вы получите сообщение об ошибке "Этот регион имеет квоту 0 экземпляров", попробуйте выбрать другой регион.
Убедитесь, что развертывание функции Azure в качестве Служба приложений успешно выполнено.
Перейдите в группу ресурсов и откройте конфигурацию WebApp. Убедитесь, что он находится в состоянии "Выполнение". Скопируйте доменное имя по умолчанию, связанное с веб-приложением.
Выполните следующий скрипт PowerShell, чтобы проверить, работает ли конечная точка CSVtoJSON должным образом. Задайте правильные значения переменных
$csvFilePath
и$uri
в скрипте.# Step 1: Read the CSV file $csvFilePath = "C:\Path-to-CSV-file\hr-user-data.csv" $csvContent = Get-Content -Path $csvFilePath # Step 2: Set up the request $uri = "https://az-function-webapp-your-domain/csvtojson" $headers = @{ "Content-Type" = "text/csv" } $body = $csvContent -join "`n" # Join the CSV lines into a single string # Step 3: Send the POST request $response = Invoke-WebRequest -Uri $uri -Method POST -Headers $headers -Body $body # Output and format the JSON response $response.Content | ConvertFrom-JSON | ConvertTo-JSON
Если развертывание функции Azure выполнено успешно, последняя строка скрипта выводит версию JSON CSV-файла.
Чтобы разрешить Logic Apps вызывать эту функцию Azure, в параметре CORS для WebApp введите звездочку (*) и "Сохранить" конфигурацию.
- Настройте подготовку входящих пользователей на основе API.
Нажмите кнопку ниже, чтобы развернуть шаблон Azure Resource Manager для рабочего процесса CSV2SCIMBulkUpload Logic Apps.
В разделе сведений об экземпляре обновите выделенные элементы, вставляя значения копирования из предыдущих шагов.
Azurefile_access Key
Для параметра откройте учетную запись хранения файлов Azure и скопируйте ключ доступа, представленный в разделе "Безопасность и сеть".
Нажмите кнопку "Рецензирование и создание", чтобы начать развертывание.
После завершения развертывания появится следующее сообщение.
- Перейдите в колонку "Параметры—> удостоверение" рабочего процесса Logic Apps.
- Включите управляемое удостоверение, назначаемое системой.
- Появится запрос на подтверждение использования управляемого удостоверения. Нажмите кнопку "Да".
- Предоставьте разрешения управляемого удостоверения для выполнения массовой отправки.
Проверьте конфигурацию каждого шага в рабочем процессе, чтобы убедиться, что это правильно.
Откройте шаг "Получить содержимое файла с помощью пути" и исправьте его, чтобы перейти к хранилищу файлов Azure в клиенте.
При необходимости обновите подключение.
Убедитесь, что шаг "Преобразовать CSV в JSON" указывает на правильный экземпляр веб-приложения функции Azure.
Если содержимое CSV-файла и заголовки отличаются, обновите шаг "Анализ JSON" с выходными данными JSON, которые можно получить из вызова API функции Azure. Используйте выходные данные PowerShell из шага 2.
На шаге "Конструктор SCIMUser" убедитесь, что поля CSV соответствуют атрибутам SCIM, которые будут использоваться для обработки.
На шаге "Отправка SCIMBulkPayload в конечную точку API" убедитесь, что вы используете правильную конечную точку API и механизм проверки подлинности.
- В версии конструктора Logic Apps щелкните "Запустить триггер", чтобы вручную выполнить рабочий процесс.
- После завершения выполнения просмотрите действие Logic Apps, выполняемого в каждой итерации.
- В окончательной итерации вы увидите, как Logic Apps отправляет данные в конечную точку API подготовки для входящего трафика.
202 Accept
Найдите код состояния. Вы можете скопировать и проверить запрос массовой отправки.