Поделиться через


Входящий трафик, управляемый API, с помощью скрипта PowerShell

В этом руководстве описывается, как использовать скрипт PowerShell для реализации входящего подготовки API идентификатора Microsoft Entra. Выполнив действия, описанные в этом руководстве, можно преобразовать CSV-файл, содержащий данные отдела кадров, в полезные данные массового запроса и отправить его в конечную точку API подготовки /bulkUpload API Microsoft Entra. В этой статье также приводятся рекомендации по использованию одного и того же шаблона интеграции с любой системой записи.

Сценарий интеграции

Бизнес-требование

Система записей периодически создает экспорт CSV-файла, содержащего рабочие данные. Вы хотите реализовать интеграцию, которая считывает данные из CSV-файла и автоматически подготавливает учетные записи пользователей в целевом каталоге (локальная служба Active Directory для гибридных пользователей и идентификатора Microsoft Entra для облачных пользователей).

Требование к реализации

С точки зрения реализации:

  • Вы хотите использовать автоматический скрипт PowerShell для чтения данных из экспорта CSV-файла и отправки его в конечную точку API подготовки для входящего трафика.
  • В скрипте PowerShell не требуется реализовать сложную логику сравнения данных идентификации между системой записей и целевым каталогом.
  • Вы хотите использовать службу подготовки Microsoft Entra для применения правил управляемой ит-подготовки для автоматического создания и обновления или включения и отключения учетных записей в целевом каталоге (локальная служба Active Directory или идентификатора Microsoft Entra).

Рисунок интеграции на основе PowerShell.

Варианты сценария интеграции

Хотя в этом руководстве в качестве системы записей используется CSV-файл, можно настроить пример скрипта PowerShell для чтения данных из любой системы записей. Ниже приведен список вариантов сценариев корпоративной интеграции, в которых можно реализовать встроенную подготовку API с помощью скрипта PowerShell.

# Система записей Руководство по интеграции с помощью PowerShell для чтения исходных данных
1 Таблица базы данных Если вы используете базу данных SQL Azure или локальный SQL Server, можно использовать командлет Read-SqlTableData для чтения данных, хранящихся в таблице базы данных SQL. Командлет Invoke-SqlCmd можно использовать для выполнения скриптов Transact-SQL или XQuery.
Если вы используете базу данных Oracle/ MySQL или Postgres, вы можете найти модуль PowerShell, опубликованный поставщиком или доступным в коллекция PowerShell. Используйте модуль для чтения данных из таблицы базы данных.
2 Сервер LDAP System.DirectoryServices.Protocols Используйте API .NET или один из модулей LDAP, доступных в коллекция PowerShell для запроса сервера LDAP. Сведения о схеме и иерархии LDAP для получения пользовательских данных с сервера LDAP.
3 Любая система, которая предоставляет ИНТЕРФЕЙСы REST API Для чтения данных из конечной точки REST API с помощью PowerShell можно использовать командлет Invoke-RestMethod из Microsoft.PowerShell.Utility модуля. Ознакомьтесь с документацией по REST API и узнайте, какие параметры и заголовки он ожидает, какой формат он возвращает, и какой метод проверки подлинности он использует. Затем можно соответствующим образом настроить Invoke-RestMethod команду.
4 Любая система, которая предоставляет API SOAP Для чтения данных из конечной точки API SOAP с помощью PowerShell можно использовать командлет New-WebServiceProxy из Microsoft.PowerShell.Management модуля. Ознакомьтесь с документацией по API SOAP и узнайте, какие параметры и заголовки он ожидает, какой формат он возвращает, и какой метод проверки подлинности он использует. Затем можно соответствующим образом настроить New-WebServiceProxy команду.

После чтения исходных данных примените правила предварительной обработки и преобразуйте выходные данные из системы записей в массовый запрос, который можно отправить в конечную точку API подготовки Microsoft Entra bulkUpload .

Внимание

Если вы хотите поделиться скриптом интеграции PowerShell с сообществом, опубликуйте его на коллекция PowerShell и уведомите нас о репозитории entra-id-inbound-provisioningGitHub, чтобы добавить ссылку на нее.

Как использовать это руководство

Пример сценария PowerShell, опубликованный в репозитории GitHub для входящего трафика Microsoft Entra, автоматизирует несколько задач. Она имеет логику обработки больших CSV-файлов и блокирования массового запроса для отправки 50 записей в каждом запросе. Ниже описано, как протестировать его и настроить его в соответствии с требованиями интеграции.

Примечание.

Пример скрипта PowerShell предоставляется "как есть" для ссылки на реализацию. Если у вас есть вопросы, связанные с скриптом или если вы хотите улучшить его, используйте репозиторий проектов GitHub.

# Задача автоматизации Методические указания по внедрению Расширенная настройка
1 Чтение рабочих данных из CSV-файла. Скачайте сценарий PowerShell. В ней есть внестандартная логика для чтения данных из любого CSV-файла. Сведения об использовании PowerShell см. в CSV2SCIM, чтобы ознакомиться с различными режимами выполнения этого скрипта. Если система записей отличается, ознакомьтесь с рекомендациями, приведенными в разделе "Варианты сценария интеграции" по настройке скрипта PowerShell.
2 Предварительно обработайте и преобразуйте данные в формат SCIM. По умолчанию скрипт PowerShell преобразует каждую запись в CSV-файле в представление пользователя SCIM Core и корпоративного пользователя. Выполните действия, описанные в разделе "Создание полезных данных массового запроса" со стандартной схемой , чтобы ознакомиться с этим процессом. Если CSV-файл имеет разные поля, настройте AttributeMapping.psd-файл , чтобы создать допустимого пользователя SCIM. Вы также можете создать массовый запрос с помощью пользовательской схемы SCIM. Обновите скрипт PowerShell, чтобы включить любую пользовательскую логику проверки данных CSV.
3 Используйте сертификат для проверки подлинности с идентификатором Microsoft Entra. Создайте субъект-службу, который может получить доступ к API подготовки входящего трафика. Ознакомьтесь с инструкциями в разделе "Настройка сертификата клиента для проверки подлинности субъекта-службы", чтобы узнать, как использовать сертификат клиента для проверки подлинности. Если вы хотите использовать управляемое удостоверение вместо субъекта-службы для проверки подлинности, просмотрите использование Connect-MgGraph в примере сценария и обновите его для использования управляемых удостоверений.
4 Подготовка учетных записей в локальная служба Active Directory или идентификаторе Microsoft Entra. Настройте приложение подготовки на основе API, управляемое входящего трафика. Это создает уникальную конечную точку API /bulkUpload . Чтобы запустить скрипт с помощью субъекта-службы с проверкой подлинности на основе сертификатов, ознакомьтесь с инструкциями в разделе "Отправка полезных данных массового запроса с помощью проверки подлинности сертификата клиента". Проверьте поток атрибутов и настройте сопоставления атрибутов в соответствии с требованиями интеграции. Если вы планируете использовать массовый запрос с пользовательской схемой SCIM, расширьте схему приложения подготовки, чтобы включить пользовательские элементы схемы SCIM.
5 Проверьте журналы подготовки и повторите подготовку для неудачных записей. Сведения о получении и анализе данных журнала подготовки см. в разделе "Получение журналов подготовки" последних циклов синхронизации. Определите неудачные записи пользователей и включите их в следующий цикл отправки. -
6 Разверните автоматизацию на основе PowerShell в рабочей среде. После проверки потока подготовки на основе API и настройки скрипта PowerShell в соответствии с вашими требованиями можно развернуть автоматизацию в качестве модуля Runbook рабочего процесса PowerShell в служба автоматизации Azure или как серверный процесс, запланированный для запуска на сервере Windows. -

Скачивание скрипта PowerShell

  1. Доступ к репозиторию entra-id-inbound-provisioningGitHub.
  2. Используйте параметр Code ->Clone или Code ->Download ZIP, чтобы скопировать содержимое этого репозитория в локальную папку.
  3. Перейдите к папке PowerShell/CSV2SCIM. Она имеет следующую структуру каталогов:
    • src
      • CSV2SCIM.ps1 (основной скрипт)
      • ScimSchemaRepresentations (папка, содержащая стандартные определения схемы SCIM для проверки файлов AttributeMapping.psd1)
        • EnterpriseUser.json, Group.json, Schema.json, User.json
    • Образцы
      • AttributeMapping.psd1 (пример сопоставления столбцов в CSV-файле со стандартными атрибутами SCIM)
      • csv-with-2-records.csv (пример CSV-файла с двумя записями)
      • csv-with-1000-records.csv (пример CSV-файла с 1000 записями)
      • Test-ScriptCommands.ps1 (примеры команд использования)
      • UseClientCertificate.ps1 (скрипт для создания самозаверяющего сертификата и отправки его в качестве учетных данных субъекта-службы для использования в потоке OAuth)
      • Sample1 (папка с дополнительными примерами того, как столбцы CSV-файла можно сопоставить со стандартными атрибутами SCIM. Если вы получаете разные CSV-файлы для сотрудников, подрядчиков, интернов, можно создать отдельный файл AttributeMapping.psd1 для каждой сущности.)
  4. Скачайте и установите последнюю версию PowerShell.
  5. Выполните команду, чтобы включить выполнение удаленных подписанных скриптов:
    set-executionpolicy remotesigned
    
  6. Установите следующие необходимые модули:
    Install-Module -Name Microsoft.Graph.Applications,Microsoft.Graph.Reports
    

Создание полезных данных массового запроса с помощью стандартной схемы

В этом разделе объясняется, как создать полезные данные массового запроса с использованием стандартных атрибутов пользователя SCIM Core и корпоративных пользователей из CSV-файла. Чтобы проиллюстрировать процедуру, давайте будем использовать CSV-файл Samples/csv-with-2-records.csv.

  1. Откройте CSV-файл Samples/csv-with-2-records.csv в Блокноте++ или Excel, чтобы проверить столбцы, представленные в файле. Снимок экрана: столбцы в Excel.

  2. В Блокноте++ или редакторе исходного кода, например Visual Studio Code, откройте файл Samples/AttributeMapping.psd1 данных PowerShell, который позволяет сопоставлять столбцы CSV-файла с атрибутами стандартной схемы SCIM. Файл, который поставляется вне коробки, уже имеет предварительно настроенное сопоставление столбцов CSV-файлов с соответствующими атрибутами схемы SCIM.

        @{
        externalId   = 'WorkerID'
        name         = @{
            familyName = 'LastName'
            givenName  = 'FirstName'
        }
        active       = { $_.'WorkerStatus' -eq 'Active' }
        userName     = 'UserID'
        displayName  = 'FullName'
        nickName     = 'UserID'
        userType     = 'WorkerType'
        title        = 'JobTitle'
        addresses    = @(
            @{
                type          = { 'work' }
                streetAddress = 'StreetAddress'
                locality      = 'City'
                postalCode    = 'ZipCode'
                country       = 'CountryCode'
            }
        )
        phoneNumbers = @(
            @{
                type  = { 'work' }
                value = 'OfficePhone'
            }
        )
        "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" = @{
            employeeNumber = 'WorkerID'
            costCenter     = 'CostCenter'
            organization   = 'Company'
            division       = 'Division'
            department     = 'Department'
            manager        = @{
                value = 'ManagerID'
            }
        }
    }
    
  3. Откройте PowerShell и перейдите в каталог CSV2SCIM\src.

  4. Выполните следующую команду, чтобы инициализировать AttributeMapping переменную.

    $AttributeMapping = Import-PowerShellDataFile '..\Samples\AttributeMapping.psd1'
    
  5. Выполните следующую команду, чтобы проверить, имеет ли AttributeMapping файл допустимые атрибуты схемы SCIM. Эта команда возвращает значение True , если проверка выполнена успешно.

    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -ValidateAttributeMapping
    
  6. Предположим AttributeMapping , что файл имеет недопустимый атрибут SCIM с именем userId, а в режиме ValidateAttributeMapping отображается следующая ошибка.

    Снимок экрана: ошибка сопоставления.

  7. Убедившись, что AttributeMapping файл действителен, выполните следующую команду, чтобы создать массовый запрос в файле BulkRequestPayload.json , который содержит две записи, присутствующих в CSV-файле.

    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping > BulkRequestPayload.json
    
  8. Вы можете открыть содержимое файла BulkRequestPayload.json , чтобы проверить, заданы ли атрибуты SCIM в соответствии с сопоставлением, определенным в файле AttributeMapping.psd1.

  9. Файл, созданный выше , можно опубликовать в конечной точке API /bulkUpload , связанной с приложением подготовки, с помощью обозревателя Graph или cURL. Справка:

  10. Чтобы напрямую отправить созданные полезные данные в конечную точку API с помощью того же скрипта PowerShell, обратитесь к следующему разделу.

Настройка сертификата клиента для проверки подлинности субъекта-службы

Примечание.

В приведенных ниже инструкциях показано, как создать самозаверяющий сертификат. Самозаверяющие сертификаты не являются доверенными по умолчанию и могут быть сложными в обслуживании. Кроме того, они могут использовать устаревшие хэши и комплекты шифров, которые могут быть ненадежными. Для повышения безопасности приобретите сертификат, подписанный известным центром сертификации.

  1. Выполните следующий скрипт PowerShell, чтобы создать самозаверяющий сертификат. Этот шаг можно пропустить, если вы приобрели сертификат, подписанный известным центром сертификации.
    $ClientCertificate = New-SelfSignedCertificate -Subject 'CN=CSV2SCIM' -KeyExportPolicy 'NonExportable' -CertStoreLocation Cert:\CurrentUser\My
    $ThumbPrint = $ClientCertificate.ThumbPrint
    
    Созданный сертификат хранится в текущем пользователе\Personal\Certificates. Его можно просмотреть с помощью параметра панель управления —>Управление сертификатами пользователей.
  2. Чтобы связать этот сертификат с допустимым субъектом-службой, войдите в центр администрирования Microsoft Entra от имени администратора приложений.
  3. Откройте субъект-службу, настроенный в разделе "Регистрация приложений".
  4. Скопируйте идентификатор объекта из колонки "Обзор". Используйте значение для замены строки <AppObjectId>. Скопируйте идентификатор приложения (клиента). Мы будем использовать его позже, и он ссылается на него.<AppClientId>
  5. Выполните следующую команду, чтобы отправить сертификат в зарегистрированный субъект-службу.
    Connect-MgGraph -Scopes "Application.ReadWrite.All"
    Update-MgApplication -ApplicationId '<AppObjectId>' -KeyCredentials @{
       Type = "AsymmetricX509Cert"
       Usage = "Verify"
       Key = $ClientCertificate.RawData
    }
    
    Сертификат должен отображаться в колонке "Сертификаты и секреты " зарегистрированного приложения. Снимок экрана: сертификат клиента.
  6. Добавьте следующие две области разрешений приложения в приложение субъекта-службы: Application.Read.All и Synchronization.Read.All. Они необходимы для скрипта PowerShell для поиска приложения ServicePrincipalId подготовки и получения подготовки JobId.

Отправка полезных данных массового запроса с помощью проверки подлинности сертификата клиента

В этом разделе объясняется, как отправлять полезные данные с созданным массовым запросом в конечную точку API подготовки для входящего трафика с помощью доверенного сертификата клиента.

  1. Откройте настроенное приложение подготовки на основе API. Скопируйте связанный ServicePrincipalId с приложением подготовки приложение из идентификатора объекта свойств>приложения>подготовки.

    Снимок экрана: идентификатор объекта.

  2. Выполните следующую команду, указав правильные значения для ServicePrincipalIdи ClientId TenantId.

    $ClientCertificate = Get-ChildItem -Path cert:\CurrentUser\my\ | Where-Object {$_.Subject -eq "CN=CSV2SCIM"}  
    $ThumbPrint = $ClientCertificate.ThumbPrint
    
    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -TenantId "contoso.onmicrosoft.com" -ServicePrincipalId "<ProvisioningAppObjectId>" -ClientId "<AppClientId>" -ClientCertificate (Get-ChildItem Cert:\CurrentUser\My\$ThumbPrint)
    
  3. Перейдите в колонку журналов подготовки приложения подготовки, чтобы проверить обработку приведенного выше запроса.

Создание массового запроса с помощью пользовательской схемы SCIM

В этом разделе описывается, как создать массовый запрос с пользовательским пространством имен схемы SCIM, состоящим из полей в CSV-файле.

  1. В Блокноте++ или редакторе исходного кода, например Visual Studio Code, откройте файл Samples/AttributeMapping.psd1 данных PowerShell, который позволяет сопоставлять столбцы CSV-файла с атрибутами стандартной схемы SCIM. Файл, который поставляется вне коробки, уже имеет предварительно настроенное сопоставление столбцов CSV-файлов с соответствующими атрибутами схемы SCIM.

  2. Откройте PowerShell и перейдите в каталог CSV2SCIM\src.

  3. Выполните следующую команду, чтобы инициализировать AttributeMapping переменную.

    $AttributeMapping = Import-PowerShellDataFile '..\Samples\AttributeMapping.psd1'
    
  4. Выполните следующую команду, чтобы проверить, имеет ли AttributeMapping файл допустимые атрибуты схемы SCIM. Эта команда возвращает значение True , если проверка выполнена успешно.

    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -ValidateAttributeMapping
    
  5. Помимо атрибутов пользователя SCIM Core и корпоративного пользователя, чтобы получить неструктурированный список всех полей CSV в пользовательском пространстве urn:ietf:params:scim:schemas:extension:contoso:1.0:Userимен схемы SCIM, выполните следующую команду.

     .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -ScimSchemaNamespace "urn:ietf:params:scim:schemas:extension:contoso:1.0:User"  > BulkRequestPayloadWithCustomNamespace.json
    

    Поля CSV будут отображаться в пользовательском пространстве имен схемы SCIM. Снимок экрана: сведения о пользователе в пользовательской схеме.

Расширение схемы задания подготовки

Часто файл данных, отправленный командами отдела кадров, содержит больше атрибутов, которые не имеют прямого представления в стандартной схеме SCIM. Для представления таких атрибутов рекомендуется создать схему расширения SCIM и добавить атрибуты в это пространство имен.

Скрипт CSV2SCIM предоставляет режим выполнения, который UpdateSchema считывает все столбцы в CSV-файле, добавляет их в пространство имен схемы расширения и обновляет схему приложения подготовки.

Примечание.

Если расширения атрибутов уже присутствуют в схеме приложения подготовки, этот режим выдает предупреждение о том, что расширение атрибута уже существует. Таким образом, нет проблем с запуском скрипта CSV2SCIM в режиме UpdateSchema, если новые поля добавляются в CSV-файл, и вы хотите добавить их в качестве расширения.

Чтобы проиллюстрировать процедуру, мы будем использовать CSV-файл Samples/csv-with-2-records.csv , представленный в папке CSV2SCIM .

  1. Откройте CSV-файл Samples/csv-with-2-records.csv в Блокноте, Excel или TextPad, чтобы проверить столбцы, присутствующих в файле.

    Снимок экрана: проверка столбцов CSV.

  2. Выполните следующую команду:

    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -UpdateSchema -ServicePrincipalId <servicePrincipalId> -TenantId "contoso.onmicrosoft.com" -ScimSchemaNamespace "urn:ietf:params:scim:schemas:extension:contoso:1.0:User"
    
  3. Чтобы проверить обновление схемы приложения подготовки, откройте страницу сопоставления атрибутов и перейдите к списку атрибутов "Изменить" для параметра API в разделе "Дополнительные параметры".

  4. Список атрибутов отображает атрибуты в новом пространстве имен.

Получение журналов подготовки последних циклов синхронизации

После отправки массового запроса можно запросить журналы последних циклов синхронизации, обработанных идентификатором Microsoft Entra. Вы можете получить статистику синхронизации и сведения об обработке с помощью скрипта PowerShell и сохранить его для анализа.

  1. Чтобы просмотреть сведения о журнале и синхронизировать статистику в консоли, выполните следующую команду:

    .\CSV2SCIM.ps1 -ServicePrincipalId <servicePrincipalId> -TenantId "contoso.onmicrosoft.com" -GetPreviousCycleLogs -NumberOfCycles 1
    

    Снимок экрана: статистика синхронизации.

    Примечание.

    ЧислоOfCycles по умолчанию равно 1. Укажите число для получения дополнительных циклов синхронизации.

  2. Чтобы просмотреть статистику синхронизации в консоли и сохранить сведения о журналах в переменную, выполните следующую команду:

    $logs=.\CSV2SCIM.ps1 -ServicePrincipalId <servicePrincipalId> -TenantId "contoso.onmicrosoft.com" -GetPreviousCycleLogs
    

    Чтобы выполнить команду с помощью проверки подлинности сертификата клиента, выполните команду, указав правильные значения для ServicePrincipalIdиTenantIdClientId:

    $ClientCertificate = Get-ChildItem -Path cert:\CurrentUser\my\ | Where-Object {$_.Subject -eq "CN=CSV2SCIM"}  
    $ThumbPrint = $ClientCertificate.ThumbPrint
    
    $logs=.\CSV2SCIM.ps1 -ServicePrincipalId "<ProvisioningAppObjectId>" -TenantId "contoso.onmicrosoft.com" -ClientId "<AppClientId>" -ClientCertificate (Get-ChildItem Cert:\CurrentUser\My\$ThumbPrint) -GetPreviousCycleLogs -NumberOfCycles 1
    
    • Чтобы просмотреть сведения о конкретной записи, можно выполнить цикл в коллекцию или выбрать определенный индекс, например: $logs[0]

      Снимок экрана: выбранный индекс.

    • Можно также использовать инструкцию where-object для поиска определенной записи с помощью sourceID или DisplayName. В свойстве ProvisioningLogs можно найти все сведения об операции, выполненной для этой конкретной записи.

      $user = $logs | where sourceId -eq '1222'
      $user.ProvisioningLogs | fl
      

      Снимок экрана: журналы подготовки.

    • В атрибуте ModifiedProperties отображаются определенные затронутые пользователем свойства. $user.ProvisioningLogs.ModifiedProperties

      Снимок экрана: свойства.

Приложение

сведения об использовании PowerShell CSV2SCIM

Ниже приведен список параметров командной строки, принятых скриптом PowerShell CSV2SCIM.

PS > CSV2SCIM.ps1 -Path <path-to-csv-file> 
[-ScimSchemaNamespace <customSCIMSchemaNamespace>] 
[-AttributeMapping $AttributeMapping] 
[-ServicePrincipalId <spn-guid>] 
[-ValidateAttributeMapping]
[-UpdateSchema]
[-ClientId <client-id>]
[-ClientCertificate <certificate-object>]
[-RestartService]

Примечание.

Параметры AttributeMapping командной ValidateAttributeMapping строки ссылаются на сопоставление атрибутов столбцов CSV со стандартными элементами схемы SCIM. Он не ссылается на сопоставления атрибутов, выполняемые в приложении подготовки Центра администрирования Microsoft Entra между элементами схемы SCIM источника и целевыми атрибутами Microsoft Entra /локальная служба Active Directory.

Параметр Описание Обработка примечаний
Путь Полный или относительный путь к CSV-файлу. Например: .\Samples\csv-with-1000-records.csv Обязательный: Да
ScimSchemaNamespace Пользовательское пространство имен схемы SCIM, используемое для отправки всех столбцов в CSV-файле в качестве настраиваемых атрибутов SCIM, относящихся к конкретному пространству имен. Например: urn:ietf:params:scim:schemas:extension:csv:1.0:User Обязательный: только если требуется:
- обновите схему приложения подготовки или
если требуется включить настраиваемые атрибуты SCIM в полезные данные.
AttributeMapping Указывает на файл данных PowerShell (PSD1), который сопоставляет столбцы в CSV-файле с атрибутами пользователя SCIM Core и корпоративного пользователя.
См. пример: файл AttributeMapping.psd для скрипта CSV2SCIM.
Например: powershell $AttributeMapping = Import-PowerShellDataFile '.\Samples\AttributeMapping.psd1'`-AttributeMapping $AttributeMapping
Обязательный: Да
, единственный сценарий, если не нужно указывать это при использовании коммутатора UpdateSchema .
ValidateAttributeMapping Используйте этот флаг switch, чтобы проверить, содержит ли файл AttributeMapping атрибуты, соответствующие схеме пользователя SCIM Core и Enterprise. Обязательный: не
рекомендуется использовать его для обеспечения соответствия требованиям.
ServicePrincipalId Значение GUID субъекта-службы приложения подготовки, которое можно получить из идентификатора объекта свойств>приложения подготовки.> Обязательный: только если требуется:
— обновите схему приложения подготовки или
отправьте созданный массовый запрос в конечную точку API.
UpdateSchema Используйте этот параметр, чтобы указать скрипту читать столбцы CSV и добавлять их в качестве настраиваемых атрибутов SCIM в схеме приложения подготовки.
ClientId Идентификатор клиента зарегистрированного приложения Microsoft Entra, используемого для потока проверки подлинности OAuth. Это приложение должно иметь допустимые учетные данные сертификата. Обязательно. Только при выполнении проверки подлинности на основе сертификатов.
ClientCertificate Сертификат проверки подлинности клиента, используемый во время потока OAuth. Обязательно. Только при выполнении проверки подлинности на основе сертификатов.
GetPreviousCycleLogs Получение журналов подготовки последних циклов синхронизации.
NumberOfCycles Чтобы указать количество циклов синхронизации, которые необходимо извлечь. Это значение по умолчанию равно 1.
RestartService С помощью этого параметра скрипт временно приостанавливает задание подготовки перед отправкой данных, отправляет данные, а затем снова запускает задание, чтобы обеспечить немедленную обработку полезных данных. Используйте этот параметр только во время тестирования.

файл AttributeMapping.psd

Этот файл используется для сопоставления столбцов в CSV-файле со стандартными элементами схемы атрибутов SCIM Core User и Enterprise User. Файл также создает соответствующее представление содержимого CSV-файла в виде полезных данных массового запроса.

В следующем примере мы сопоставили следующие столбцы в CSV-файле со своими собственными атрибутами SCIM Core User и Enterprise User.

Снимок экрана: столбцы CSV для сопоставленных атрибутов.

    @{
    externalId   = 'WorkerID'
    name         = @{
        familyName = 'LastName'
        givenName  = 'FirstName'
    }
    active       = { $_.'WorkerStatus' -eq 'Active' }
    userName     = 'UserID'
    displayName  = 'FullName'
    nickName     = 'UserID'
    userType     = 'WorkerType'
    title        = 'JobTitle'
    addresses    = @(
        @{
            type          = { 'work' }
            streetAddress = 'StreetAddress'
            locality      = 'City'
            postalCode    = 'ZipCode'
            country       = 'CountryCode'
        }
    )
    phoneNumbers = @(
        @{
            type  = { 'work' }
            value = 'OfficePhone'
        }
    )
    "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" = @{
        employeeNumber = 'WorkerID'
        costCenter     = 'CostCenter'
        organization   = 'Company'
        division       = 'Division'
        department     = 'Department'
        manager        = @{
            value = 'ManagerID'
        }
    }
}

Следующие шаги