Delen via


API-gestuurde binnenkomende inrichting met PowerShell-script

In deze zelfstudie wordt beschreven hoe u een PowerShell-script gebruikt voor het implementeren van api-gestuurde microsoft-id's voor inkomend verkeer. Met behulp van de stappen in deze zelfstudie kunt u een CSV-bestand met HR-gegevens converteren naar een nettolading voor bulkaanvragen en deze verzenden naar het Microsoft Entra-inrichtings -/bulkUpload-API-eindpunt . Het artikel bevat ook richtlijnen over hoe hetzelfde integratiepatroon kan worden gebruikt met elk recordsysteem.

Integratiescenario

Bedrijfsvereiste

Uw systeem van record genereert periodiek CSV-bestandsexports met werkrolgegevens. U wilt een integratie implementeren die gegevens uit het CSV-bestand leest en automatisch gebruikersaccounts in uw doelmap in richt (on-premises Active Directory voor hybride gebruikers en Microsoft Entra-id voor cloudgebruikers).

Implementatievereiste

Vanuit het perspectief van de implementatie:

  • U wilt een PowerShell-script zonder toezicht gebruiken om gegevens uit het CSV-bestand te lezen en naar het eindpunt van de inkomende inrichtings-API te verzenden.
  • In uw PowerShell-script wilt u de complexe logica voor het vergelijken van identiteitsgegevens tussen uw systeem van record en doelmap niet implementeren.
  • U wilt de Microsoft Entra-inrichtingsservice gebruiken om uw door IT beheerde inrichtingsregels toe te passen om automatisch accounts te maken/bij te werken/in te schakelen/in te schakelen in de doelmap (on-premises Active Directory of Microsoft Entra-id).

Afbeelding van integratie op basis van PowerShell.

Variaties in integratiescenario's

Hoewel in deze zelfstudie een CSV-bestand wordt gebruikt als een recordsysteem, kunt u het PowerShell-voorbeeldscript aanpassen om gegevens uit elk recordsysteem te lezen. Hier volgt een lijst met variaties in bedrijfsintegratiescenario's, waarbij API-gestuurde binnenkomende inrichting kan worden geïmplementeerd met een PowerShell-script.

# Registratiesysteem Integratierichtlijnen voor het gebruik van PowerShell om brongegevens te lezen
1 Databasetabel Als u een Azure SQL-database of een on-premises SQL Server gebruikt, kunt u de cmdlet Read-SqlTableData gebruiken om gegevens te lezen die zijn opgeslagen in een tabel van een SQL-database. U kunt de cmdlet Invoke-SqlCmd gebruiken om Transact-SQL- of XQuery-scripts uit te voeren.
Als u een Oracle/MySQL/Postgres-database gebruikt, kunt u een PowerShell-module vinden die is gepubliceerd door de leverancier of beschikbaar is in de PowerShell Gallery. Gebruik de module om gegevens uit uw databasetabel te lezen.
2 LDAP-server Gebruik de System.DirectoryServices.Protocols .NET API of een van de LDAP-modules die beschikbaar zijn in de PowerShell Gallery om een query uit te voeren op uw LDAP-server. Informatie over het LDAP-schema en de hiërarchie voor het ophalen van gebruikersgegevens van de LDAP-server.
3 Elk systeem dat REST API's beschikbaar maakt Als u gegevens wilt lezen uit een REST API-eindpunt met behulp van PowerShell, kunt u de cmdlet Invoke-RestMethod uit de Microsoft.PowerShell.Utility module gebruiken. Bekijk de documentatie van uw REST API en ontdek welke parameters en headers deze verwacht, welke indeling deze retourneert en welke verificatiemethode wordt gebruikt. Vervolgens kunt u de Invoke-RestMethod opdracht dienovereenkomstig aanpassen.
4 Elk systeem dat SOAP-API's beschikbaar maakt Als u gegevens wilt lezen uit een SOAP API-eindpunt met behulp van PowerShell, kunt u de cmdlet New-WebServiceProxy uit de Microsoft.PowerShell.Management module gebruiken. Bekijk de documentatie van uw SOAP-API en ontdek welke parameters en headers deze verwacht, welke indeling deze retourneert en welke verificatiemethode wordt gebruikt. Vervolgens kunt u de New-WebServiceProxy opdracht dienovereenkomstig aanpassen.

Nadat u de brongegevens hebt gelezen, past u uw voorverwerkingsregels toe en converteert u de uitvoer van uw systeem van record naar een bulkaanvraag die kan worden verzonden naar het Microsoft Entra-inrichtingseindpunt voor bulkUpload-API .

Belangrijk

Als u uw PowerShell-integratiescript wilt delen met de community, publiceert u het in PowerShell Gallery en meldt u ons op de GitHub-opslagplaats entra-id-inbound-provisioning, zodat we er een verwijzing naar kunnen toevoegen.

Deze zelfstudie gebruiken

Het PowerShell-voorbeeldscript dat is gepubliceerd in de GitHub-opslagplaats voor binnenkomend verkeer van Microsoft Entra, automatiseert verschillende taken. Het heeft logica voor het verwerken van grote CSV-bestanden en het segmenteren van de bulkaanvraag voor het verzenden van 50 records in elke aanvraag. U kunt het als volgt testen en aanpassen aan uw integratievereisten.

Notitie

Het PowerShell-voorbeeldscript wordt 'as-is' opgegeven voor implementatieverwijzing. Als u vragen hebt met betrekking tot het script of als u het wilt verbeteren, gebruikt u de GitHub-projectopslagplaats.

# Automatiseringstaak Implementatierichtlijnen Geavanceerde aanpassing
1 Werkrolgegevens lezen uit het CSV-bestand. Download het PowerShell-script. Het bevat out-of-the-box-logica om gegevens uit een CSV-bestand te lezen. Raadpleeg CSV2SCIM PowerShell-gebruiksgegevens om vertrouwd te raken met de verschillende uitvoeringsmodi van dit script. Als uw systeem van record anders is, raadpleegt u de richtlijnen in de sectie Integratiescenariovariaties over hoe u het PowerShell-script kunt aanpassen.
2 Gegevens vooraf verwerken en converteren naar SCIM-indeling. Standaard converteert het PowerShell-script elke record in het CSV-bestand naar een SCIM Core User + Enterprise-gebruikersweergave. Volg de stappen in de sectie Payload voor bulkaanvragen genereren met een standaardschema om vertrouwd te raken met dit proces. Als uw CSV-bestand verschillende velden heeft, past u het AttributeMapping.psd-bestand aan om een geldige SCIM-gebruiker te genereren. U kunt ook bulkaanvragen genereren met een aangepast SCIM-schema. Werk het PowerShell-script bij om aangepaste CSV-gegevensvalidatielogica op te nemen.
3 Gebruik een certificaat voor verificatie bij Microsoft Entra-id. Maak een service-principal die toegang heeft tot de inkomende inrichtings-API. Raadpleeg de stappen in de sectie Clientcertificaat configureren voor service-principal-verificatie voor meer informatie over het gebruik van clientcertificaat voor verificatie. Als u beheerde identiteit wilt gebruiken in plaats van een service-principal voor verificatie, controleert u het gebruik van Connect-MgGraph in het voorbeeldscript en werkt u deze bij om beheerde identiteiten te gebruiken.
4 Accounts inrichten in on-premises Active Directory of Microsoft Entra-id. Configureer de API-gestuurde inkomende inrichtings-app. Hiermee wordt een uniek /bulkUpload-API-eindpunt gegenereerd. Als u het script wilt uitvoeren met behulp van een service-principal met verificatie op basis van certificaten, raadpleegt u de stappen in de sectie Bulkaanvraagpayload uploaden met behulp van clientcertificaatverificatie. Valideer de kenmerkstroom en pas de kenmerktoewijzingen aan volgens uw integratievereisten. Als u van plan bent om bulkaanvragen te gebruiken met een aangepast SCIM-schema, kunt u het schema van de inrichtings-app uitbreiden om uw aangepaste SCIM-schema-elementen op te nemen.
5 Scan de inrichtingslogboeken en probeer het opnieuw in te richten op mislukte records. Raadpleeg de stappen in de sectie Inrichtingslogboeken ophalen van de meest recente synchronisatiecycli voor informatie over het ophalen en analyseren van inrichtingslogboekgegevens. Identificeer mislukte gebruikersrecords en neem deze op in de volgende uploadcyclus. -
6 Implementeer uw op PowerShell gebaseerde automatisering in productie. Zodra u uw API-gestuurde inrichtingsstroom hebt geverifieerd en het PowerShell-script hebt aangepast om aan uw vereisten te voldoen, kunt u de automatisering implementeren als een PowerShell Workflow-runbook in Azure Automation of als een serverproces dat is gepland voor uitvoering op een Windows-server. -

Het PowerShell-script downloaden

  1. Toegang tot de GitHub-opslagplaats entra-id-inbound-provisioning.
  2. Gebruik de optie Code ->Clone of Code ->Download ZIP om de inhoud van deze opslagplaats naar uw lokale map te kopiëren.
  3. Navigeer naar de map PowerShell/CSV2SCIM. De map heeft de volgende mapstructuur:
    • Src
      • CSV2SCIM.ps1 (hoofdscript)
      • ScimSchemaRepresentations (map met standaard SCIM-schemadefinities voor het valideren van AttributeMapping.psd1-bestanden)
        • EnterpriseUser.json, Group.json, Schema.json, User.json
    • Monsters
      • AttributeMapping.psd1 (voorbeeldtoewijzing van kolommen in CSV-bestand naar standaard SCIM-kenmerken)
      • csv-with-2-records.csv (csv-voorbeeldbestand met twee records)
      • csv-with-1000-records.csv (csv-voorbeeldbestand met 1000 records)
      • Test-ScriptCommands.ps1 (voorbeeld van gebruiksopdrachten)
      • UseClientCertificate.ps1 (script voor het genereren van zelfondertekend certificaat en upload het als service-principalreferentie voor gebruik in OAuth-stroom)
      • Sample1 (map met meer voorbeelden van hoe CSV-bestandskolommen kunnen worden toegewezen aan SCIM-standaardkenmerken. Als u verschillende CSV-bestanden krijgt voor werknemers, aannemers, stagiairs, kunt u een afzonderlijk AttributeMapping.psd1-bestand maken voor elke entiteit.)
  4. Download en installeer de nieuwste versie van PowerShell.
  5. Voer de opdracht uit om uitvoering van externe ondertekende scripts in te schakelen:
    set-executionpolicy remotesigned
    
  6. Installeer de volgende vereiste modules:
    Install-Module -Name Microsoft.Graph.Applications,Microsoft.Graph.Reports
    

Nettolading voor bulkaanvragen genereren met standaardschema

In deze sectie wordt uitgelegd hoe u een nettolading voor bulkaanvragen genereert met standaard-SCIM Core User- en Enterprise-gebruikerskenmerken uit een CSV-bestand. Laten we het CSV-bestand Samples/csv-with-2-records.csvgebruiken om de procedure te illustreren.

  1. Open het CSV-bestand Samples/csv-with-2-records.csv in Kladblok++ of Excel om de kolommen in het bestand te controleren. Schermopname van kolommen in Excel.

  2. Open in Kladblok++ of een broncode-editor zoals Visual Studio Code het PowerShell-gegevensbestand Samples/AttributeMapping.psd1 waarmee de toewijzing van CSV-bestandkolommen aan standaardschemakenmerken van SCIM mogelijk is. Het bestand dat out-of-the-box wordt verzonden, heeft al vooraf geconfigureerde toewijzing van CSV-bestandskolommen aan bijbehorende SCIM-schemakenmerken.

        @{
        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. Open PowerShell en ga naar de map CSV2SCIM\src.

  4. Voer de volgende opdracht uit om de AttributeMapping variabele te initialiseren.

    $AttributeMapping = Import-PowerShellDataFile '..\Samples\AttributeMapping.psd1'
    
  5. Voer de volgende opdracht uit om te controleren of het AttributeMapping bestand geldige SCIM-schemakenmerken heeft. Met deze opdracht wordt Waar geretourneerd als de validatie is geslaagd.

    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -ValidateAttributeMapping
    
  6. Stel dat het AttributeMapping bestand een ongeldig SCIM-kenmerk heeft met de naam userId, waarna de ValidateAttributeMapping modus de volgende fout weergeeft.

    Schermopname van een toewijzingsfout.

  7. Nadat u hebt gecontroleerd of het AttributeMapping bestand geldig is, voert u de volgende opdracht uit om een bulkaanvraag te genereren in het bestand BulkRequestPayload.json dat de twee records bevat die aanwezig zijn in het CSV-bestand.

    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping > BulkRequestPayload.json
    
  8. U kunt de inhoud van het bestand BulkRequestPayload.json openen om te controleren of de SCIM-kenmerken zijn ingesteld volgens de toewijzing die in het bestand AttributeMapping.psd1is gedefinieerd.

  9. U kunt het hierboven gegenereerde bestand posten naar het /bulkUpload-API-eindpunt dat is gekoppeld aan uw inrichtings-app met behulp van Graph Explorer of cURL. Naslaginformatie:

  10. Als u de gegenereerde nettolading rechtstreeks wilt uploaden naar het API-eindpunt met hetzelfde PowerShell-script, raadpleegt u de volgende sectie.

Clientcertificaat configureren voor service-principal-verificatie

Notitie

In de instructies ziet u hoe u een zelfondertekend certificaat genereert. Zelfondertekende certificaten worden niet standaard vertrouwd en kunnen moeilijk te onderhouden zijn. Ze kunnen ook verouderde hash- en coderingssuites gebruiken die mogelijk niet sterk zijn. Koop voor betere beveiliging een certificaat dat is ondertekend door een bekende certificeringsinstantie.

  1. Voer het volgende PowerShell-script uit om een nieuw zelfondertekend certificaat te genereren. U kunt deze stap overslaan als u een certificaat hebt gekocht dat is ondertekend door een bekende certificeringsinstantie.
    $ClientCertificate = New-SelfSignedCertificate -Subject 'CN=CSV2SCIM' -KeyExportPolicy 'NonExportable' -CertStoreLocation Cert:\CurrentUser\My
    $ThumbPrint = $ClientCertificate.ThumbPrint
    
    Het gegenereerde certificaat wordt opgeslagen Huidige gebruiker\Persoonlijk\Certificaten. U kunt deze bekijken met behulp van de optie Configuratiescherm ->Gebruikerscertificaten beheren.
  2. Als u dit certificaat wilt koppelen aan een geldige service-principal, meldt u zich als toepassingsbeheerder aan bij uw Microsoft Entra-beheercentrum.
  3. Open de service-principal die u hebt geconfigureerd onder App-registraties.
  4. Kopieer de object-id op de blade Overzicht. Gebruik de waarde om de tekenreeks <AppObjectId>te vervangen. Kopieer de toepassings-id (client). We gebruiken het later en het wordt verwezen als <AppClientId>.
  5. Voer de volgende opdracht uit om uw certificaat te uploaden naar de geregistreerde service-principal.
    Connect-MgGraph -Scopes "Application.ReadWrite.All"
    Update-MgApplication -ApplicationId '<AppObjectId>' -KeyCredentials @{
       Type = "AsymmetricX509Cert"
       Usage = "Verify"
       Key = $ClientCertificate.RawData
    }
    
    U ziet het certificaat op de blade Certificaten en geheimen van uw geregistreerde app. Schermopname van clientcertificaat.
  6. Voeg de volgende twee toepassingsmachtigingsbereiken toe aan de service-principal-app: Application.Read.All en Synchronization.Read.All. Deze zijn vereist voor het PowerShell-script om de inrichtings-app ServicePrincipalId op te zoeken en de inrichting op JobIdte halen.

Payload voor bulkaanvragen uploaden met clientcertificaatverificatie

In deze sectie wordt uitgelegd hoe u de nettolading van de gegenereerde bulkaanvraag verzendt naar uw binnenkomende inrichtings-API-eindpunt met behulp van een vertrouwd clientcertificaat.

  1. Open de apigestuurde inrichtings-app die u hebt geconfigureerd. Kopieer de ServicePrincipalId gekoppelde app uit de object-id van het inrichtings-app-eigenschappenobject>>.

    Schermopname van de object-id.

  2. Voer de volgende opdracht uit door de juiste waarden op te geven voor ServicePrincipalId, ClientId en 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. Ga naar de blade Inrichtingslogboeken van uw inrichtings-app om de verwerking van de bovenstaande aanvraag te controleren.

Bulkaanvraag genereren met aangepast SCIM-schema

In deze sectie wordt beschreven hoe u een bulkaanvraag genereert met een aangepaste SCIM-schemanaamruimte die bestaat uit velden in het CSV-bestand.

  1. Open in Kladblok++ of een broncode-editor zoals Visual Studio Code het PowerShell-gegevensbestand Samples/AttributeMapping.psd1 waarmee de toewijzing van CSV-bestandkolommen aan standaardschemakenmerken van SCIM mogelijk is. Het bestand dat out-of-the-box wordt verzonden, heeft al vooraf geconfigureerde toewijzing van CSV-bestandskolommen aan bijbehorende SCIM-schemakenmerken.

  2. Open PowerShell en ga naar de map CSV2SCIM\src.

  3. Voer de volgende opdracht uit om de AttributeMapping variabele te initialiseren.

    $AttributeMapping = Import-PowerShellDataFile '..\Samples\AttributeMapping.psd1'
    
  4. Voer de volgende opdracht uit om te controleren of het AttributeMapping bestand geldige SCIM-schemakenmerken heeft. Met deze opdracht wordt Waar geretourneerd als de validatie is geslaagd.

    .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -ValidateAttributeMapping
    
  5. Voer naast de kenmerken SCIM Core User en Enterprise User een platte lijst op van alle CSV-velden onder een aangepaste SCIM-schemanaamruimte urn:ietf:params:scim:schemas:extension:contoso:1.0:User. Voer de volgende opdracht uit.

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

    De CSV-velden worden weergegeven onder de aangepaste SCIM-schemanaamruimte. Schermopname van gebruikersgegevens onder aangepast schema.

Schema van inrichtingstaak uitbreiden

Het gegevensbestand dat door HR-teams wordt verzonden, bevat vaak meer kenmerken die geen directe weergave hebben in het standaard SCIM-schema. Als u dergelijke kenmerken wilt weergeven, raden we u aan een SCIM-extensieschema te maken en kenmerken toe te voegen onder deze naamruimte.

Het CSV2SCIM script biedt een uitvoeringsmodus UpdateSchema die alle kolommen in het CSV-bestand leest, deze toevoegt onder een extensieschemanaamruimte en het schema van de inrichtings-app bijwerkt.

Notitie

Als de kenmerkextensies al aanwezig zijn in het schema van de inrichtings-app, wordt in deze modus alleen een waarschuwing verzonden dat de kenmerkextensie al bestaat. Er is dus geen probleem met het uitvoeren van het CSV2SCIM script in de UpdateSchema-modus als er nieuwe velden aan het CSV-bestand worden toegevoegd en u deze als extensie wilt toevoegen.

Ter illustratie van de procedure gebruiken we het CSV-bestand Samples/csv-with-2-records.csv dat aanwezig is in de map CSV2SCIM .

  1. Open het CSV-bestand Samples/csv-with-2-records.csv in een Kladblok, Excel of TextPad om de kolommen in het bestand te controleren.

    Schermopname van het controleren van CSV-kolommen.

  2. Voer de volgende opdracht uit:

    .\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. U kunt de update van uw inrichtings-app-schema controleren door de pagina Kenmerktoewijzing te openen en toegang te krijgen tot de lijst Kenmerken bewerken voor DE API-optie onder Geavanceerde opties.

  4. De lijst met kenmerken bevat kenmerken onder de nieuwe naamruimte.

Inrichtingslogboeken van de meest recente synchronisatiecycli ophalen

Nadat u de bulkaanvraag hebt verzonden, kunt u query's uitvoeren op de logboeken van de meest recente synchronisatiecycli die door Microsoft Entra-id zijn verwerkt. U kunt de synchronisatiestatistieken en verwerkingsdetails ophalen met het PowerShell-script en deze opslaan voor analyse.

  1. Voer de volgende opdracht uit om de logboekdetails en synchronisatiestatistieken op de console weer te geven:

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

    Schermopname van synchronisatiestatistieken.

    Notitie

    NumberOfCycles is standaard 1. Geef een getal op om meer synchronisatiecycli op te halen.

  2. Voer de volgende opdracht uit om synchronisatiestatistieken op de console weer te geven en de logboekgegevens op te slaan in een variabele:

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

    Als u de opdracht wilt uitvoeren met clientcertificaatverificatie, voert u de opdracht uit door de juiste waarden op te geven voor ServicePrincipalIden ClientId TenantId:

    $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
    
    • Als u de details van een specifieke record wilt bekijken, kunt u een lus maken in de verzameling of een specifieke index selecteren, bijvoorbeeld: $logs[0]

      Schermopname van een geselecteerde index.

    • We kunnen de where-object instructie ook gebruiken om te zoeken naar een specifieke record met behulp van de sourceID of DisplayName. In de eigenschap ProvisioningLogs vindt u alle details van de bewerking die voor die specifieke record is uitgevoerd.

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

      Schermopname van het inrichten van logboeken.

    • We kunnen de specifieke door de gebruiker beïnvloede eigenschappen zien op het kenmerk ModifiedProperties . $user.ProvisioningLogs.ModifiedProperties

      Schermopname van eigenschappen.

Bijlage

CSV2SCIM PowerShell-gebruiksgegevens

Hier volgt een lijst met opdrachtregelparameters die worden geaccepteerd door het CSV2SCIM PowerShell-script.

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

Notitie

De AttributeMapping parameters en ValidateAttributeMapping opdrachtregels verwijzen naar de toewijzing van CSV-kolomkenmerken aan de standaard SCIM-schema-elementen. Het verwijst niet naar de kenmerktoewijzingen die u uitvoert in de inrichtings-app van het Microsoft Entra-beheercentrum tussen bron-SCIM-schema-elementen en doelkenmerken van Microsoft Entra/on-premises Active Directory.

Parameter Description Opmerkingen verwerken
Pad Het volledige of relatieve pad naar het CSV-bestand. Bijvoorbeeld: .\Samples\csv-with-1000-records.csv Verplicht: Ja
ScimSchemaNamespace De aangepaste SCIM-schemanaamruimte die moet worden gebruikt om alle kolommen in het CSV-bestand te verzenden als aangepaste SCIM-kenmerken die behoren tot een specifieke naamruimte. Bijvoorbeeld urn:ietf:params:scim:schemas:extension:csv:1.0:User Verplicht: Alleen wanneer u het schema van de inrichtings-app wilt
bijwerken of
wanneer u aangepaste SCIM-kenmerken in de nettolading wilt opnemen.
AttributeMapping Verwijst naar een PowerShell Data-bestand (.psd1-extensie) dat kolommen in het CSV-bestand toe wijst aan de kenmerken SCIM Core User en Enterprise User.
Zie het voorbeeld: AttributeMapping.psd bestand voor CSV2SCIM script.
Bijvoorbeeld: powershell $AttributeMapping = Import-PowerShellDataFile '.\Samples\AttributeMapping.psd1'`-AttributeMapping $AttributeMapping
Verplicht: Ja
het enige scenario wanneer u dit niet hoeft op te geven, is wanneer u de UpdateSchema schakeloptie gebruikt.
ValidateAttributeMapping Gebruik deze switchvlag om te controleren of het AttributeMapping-bestand kenmerken bevat die voldoen aan het SCIM Core- en Enterprise-gebruikersschema. Verplicht: Geen
aanbeveling om deze te gebruiken om naleving te garanderen.
ServicePrincipalId De GUID-waarde van de service-principal-id van uw inrichtings-app die u kunt ophalen uit de object-id van de inrichtings-app-eigenschappen>> Verplicht: alleen als u wilt:
- Werk het schema van de inrichtings-app bij of
verzend de gegenereerde bulkaanvraag naar het API-eindpunt.
UpdateSchema Gebruik deze schakeloptie om het script te instrueren om de CSV-kolommen te lezen en toe te voegen als aangepaste SCIM-kenmerken in het schema van de inrichtings-app.
ClientId De client-id van een geregistreerde Microsoft Entra-app voor OAuth-verificatiestroom. Deze app moet geldige certificaatreferenties hebben. Verplicht: alleen bij het uitvoeren van verificatie op basis van certificaten.
ClientCertificate Het clientverificatiecertificaat dat moet worden gebruikt tijdens de OAuth-stroom. Verplicht: alleen bij het uitvoeren van verificatie op basis van certificaten.
GetPreviousCycleLogs De inrichtingslogboeken van de meest recente synchronisatiecycli ophalen.
NumberOfCycles Als u wilt opgeven hoeveel synchronisatiecycli moeten worden opgehaald. Deze waarde is standaard 1.
RestartService Met deze optie onderbreekt het script de inrichtingstaak tijdelijk voordat de gegevens worden geüpload, worden de gegevens geüpload en wordt de taak opnieuw gestart om ervoor te zorgen dat de nettolading onmiddellijk wordt verwerkt. Gebruik deze optie alleen tijdens het testen.

AttributeMapping.psd-bestand

Dit bestand wordt gebruikt om kolommen in het CSV-bestand toe te wijzen aan standaard schema-elementen van SCIM Core User en Enterprise User. Het bestand genereert ook een juiste weergave van de inhoud van het CSV-bestand als een nettolading voor bulkaanvragen.

In het volgende voorbeeld hebben we de volgende kolommen in het CSV-bestand toegewezen aan de kenmerken SCIM Core User en Enterprise User.

Schermopname van CSV-kolommen voor toegewezen kenmerken.

    @{
    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'
        }
    }
}

Volgende stappen