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).
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
- Toegang tot de GitHub-opslagplaats
entra-id-inbound-provisioning
. - Gebruik de optie Code ->Clone of Code ->Download ZIP om de inhoud van deze opslagplaats naar uw lokale map te kopiëren.
- 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.)
- Src
- Download en installeer de nieuwste versie van PowerShell.
- Voer de opdracht uit om uitvoering van externe ondertekende scripts in te schakelen:
set-executionpolicy remotesigned
- 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.csv
gebruiken om de procedure te illustreren.
Open het CSV-bestand
Samples/csv-with-2-records.csv
in Kladblok++ of Excel om de kolommen in het bestand te controleren.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' } } }
Open PowerShell en ga naar de map CSV2SCIM\src.
Voer de volgende opdracht uit om de
AttributeMapping
variabele te initialiseren.$AttributeMapping = Import-PowerShellDataFile '..\Samples\AttributeMapping.psd1'
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
Stel dat het
AttributeMapping
bestand een ongeldig SCIM-kenmerk heeft met de naam userId, waarna deValidateAttributeMapping
modus de volgende fout weergeeft.Nadat u hebt gecontroleerd of het
AttributeMapping
bestand geldig is, voert u de volgende opdracht uit om een bulkaanvraag te genereren in het bestandBulkRequestPayload.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
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 bestandAttributeMapping.psd1
is gedefinieerd.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:
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.
- 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.
Het gegenereerde certificaat wordt opgeslagen Huidige gebruiker\Persoonlijk\Certificaten. U kunt deze bekijken met behulp van de optie Configuratiescherm ->Gebruikerscertificaten beheren.$ClientCertificate = New-SelfSignedCertificate -Subject 'CN=CSV2SCIM' -KeyExportPolicy 'NonExportable' -CertStoreLocation Cert:\CurrentUser\My $ThumbPrint = $ClientCertificate.ThumbPrint
- Als u dit certificaat wilt koppelen aan een geldige service-principal, meldt u zich als toepassingsbeheerder aan bij uw Microsoft Entra-beheercentrum.
- Open de service-principal die u hebt geconfigureerd onder App-registraties.
- 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>
. - Voer de volgende opdracht uit om uw certificaat te uploaden naar de geregistreerde service-principal.
U ziet het certificaat op de blade Certificaten en geheimen van uw geregistreerde app.Connect-MgGraph -Scopes "Application.ReadWrite.All" Update-MgApplication -ApplicationId '<AppObjectId>' -KeyCredentials @{ Type = "AsymmetricX509Cert" Usage = "Verify" Key = $ClientCertificate.RawData }
- 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 opJobId
te 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.
Open de apigestuurde inrichtings-app die u hebt geconfigureerd. Kopieer de
ServicePrincipalId
gekoppelde app uit de object-id van het inrichtings-app-eigenschappenobject>>.Voer de volgende opdracht uit door de juiste waarden op te geven voor
ServicePrincipalId
,ClientId
enTenantId
.$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)
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.
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.Open PowerShell en ga naar de map CSV2SCIM\src.
Voer de volgende opdracht uit om de
AttributeMapping
variabele te initialiseren.$AttributeMapping = Import-PowerShellDataFile '..\Samples\AttributeMapping.psd1'
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
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.
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 .
Open het CSV-bestand
Samples/csv-with-2-records.csv
in een Kladblok, Excel of TextPad om de kolommen in het bestand te controleren.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"
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.
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.
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
Notitie
NumberOfCycles is standaard 1. Geef een getal op om meer synchronisatiecycli op te halen.
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
ServicePrincipalId
enClientId
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]
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
We kunnen de specifieke door de gebruiker beïnvloede eigenschappen zien op het kenmerk ModifiedProperties .
$user.ProvisioningLogs.ModifiedProperties
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.
@{
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'
}
}
}