Hallo zusammen,
Ich habe kürzlich von einem Kunden die Anforderung erhalten, Sync Rules für AAD connect zu erstellen, welche das Setting vom Active Directory in einen vom Azure Active Directory unterstützten wert übersetzt.
Dies war die Ausgangslage beim Kunden
Active Directory |
Azure Active Directory |
DE |
ch-DE |
EN |
en-US |
BE |
nl-BE |
Ich schaue mir mal meinen Testuser im Azure Active Directory an
Get-MsolUser -UserPrincipalName m.muster@icewolf.ch | fl *lang*, *loc*
Get-AzureADUser -SearchString m.muster@icewolf.ch | fl *lang*, *loc*
Auf dem lokalen User im Active Directory ist nichts gesetzt.
Passe ich mal auf "BE" an
Auf dem AAD Connect Server stosse ich einen Delta Sync an
Import-Module ADSync
Start-ADSyncSyncCycle -PolicyType Delta
Get-MsolUser -UserPrincipalName m.muster@icewolf.ch | fl *lang*, *loc*
Get-AzureADUser -SearchString m.muster@icewolf.ch | fl *lang*, *loc*
Standardmässig synchronisiert der AAD connect also das Attribut nach Azure AD. Genau so wie es halt auch im Active Directory steht.
Beim Anpassen von Synchronization Rules, wird empfohlen den AAD Sync zu stoppen
Set-ADSyncScheduler -SyncCycleEnabled $false
C:\Program Files\Microsoft Azure AD Sync\UIShell\SyncRulesEditor.exe
Ich schaue mir mal an, bei welchen Inbound Rules vom Active Directory das Attribut benutzt wird
Ich schaue mir an, bei welchen Outbound Rules von Azure Active Directory das Attribut benutzt wird.
Nun erstelle ich eine neue Synchronization Rule
Name: Out to Azure AD – User preferredLanguageBE
Connected System: Azure AD
Connected System Object Type: user
Metaverse Object Type: person
Link Type: Join
Precedence: 1 (Regeln 1 bis 99 sind für Custom Rules reserviert)
Beim Scoping Filter gebe ich die Objekte an, auf die die Regel angewendet werden soll
Scoping Filter:
sourceObjectType EQUAL User
cloudMastered NOTEQUAL True
preferredLanguage EQUAL BE
Die Join rules lasse ich so stehen
Bei den Transformations konfiguriere ich, was rauskommen soll
Transformations:
Constant preferredLanguage nl-BE Update
Set-ADSyncScheduler -SyncCycleEnabled $true
Start-ADSyncSyncCycle -PolicyType Delta
Dann warte ich ab, bis der Sync abgeschlossen ist
C:\Program Files\Microsoft Azure AD Sync\UIShell\miisclient.exe
Ein Update hat es gegeben auf diesem Objekt (doppelklicken)
Und ich sehe, dass meine Sync Rule gezogen hat
Get-MsolUser -UserPrincipalName m.muster@icewolf.ch | fl *lang*, *loc*
Get-AzureADUser -SearchString t.turner@icewolf.ch | fl *lang*, *loc*
Das hat also geklappt und nun kann ich die Regel auch für die anderen zwei Sprachen einrichten.
Erst noch wieder den AAD Sync Sheduler stoppen
Set-ADSyncScheduler -SyncCycleEnabled $false
Bei den folgenden Regeln dann einfach bei der Precedence (Reihenfolge 2 und 3) eingeben
In der Übersicht sehe ich nun die Regeln 1 bis 3 welche von mir erstellt wurden
Testing:
Set-ADSyncScheduler -SyncCycleEnabled $true
Start-ADSyncSyncCycle -PolicyType Delta
Start-ADSyncSyncCycle -PolicyType Delta
Liebe Grüsse
Andres Bohren